![]() | |
Team Foundation Server - Check-in Policy Geliştirme | 28.07.2008 09:44:00 |
| Kategori : Visual Studio ve Araçlar Özet : Bu makalede Team Foundation Server custom check-in policy geliştirmenin nasıl gerçekleştirilmesi gerektiğini aktaracak ve Team Foundation Server Source Control sistemine yapılan her dosya checkininde çalışacak kurallar oluşturabileceğiz. | |
|
Team Foundation
Server - Check-in Policy Geliştirme Bu makalede Team Foundation Server custom check-in policy geliştirmenin nasıl gerçekleştirilmesi gerektiğini aktaracak ve Team Foundation Server Source Control sistemine yapılan her dosya checkininde çalışacak kurallar oluşturabileceğiz. Team Foudation Server checkin policy geliştirmek için PolicyBase sınıfından türeyen bir sınıf oluşturmak ve bu sınıfı Serializable olarak işaretlemek yeterli olacaktır. PolicyBase sınıfından türeyen sınıfımız içerisinde Evaluate methodunu override ederek policy içerisinde çalışmasını istediğimiz kuralı kodlayabiliriz. Custom checkin policyler organizasyonunuzun/kurumunuzun gereksinimlerine göre tasarlayabileceğiniz bileşenlerdir. Yapılan her checkinde yorum girilmesini zorunlu kılan bir checkin policy gerçekleştirelim. Checkin Policy oluşturmak için; 1-
YorumPolicy adında bir classlibray projesi açın,
Projenin referanslarına PolicyBae sınıfını içerisinde yer alan Microsoft.TeamFoundation.VersionControl.Client.dll
assembly dosyasını referans olarak ekleyin. 2- PolicyBase’den türettiğinizde aşağıda gözükmekte olan tüm methodları implemente etmek zorunda olduğunuz anlaşılıyor. Edit seçeneği ile Policy yapılandırması ve konfigurasyonu yapılabiliyor olacak. Bunu daha sonra tekrar detaylandıracağız. using
Microsoft.TeamFoundation.VersionControl.Client; namespace
YorumPolicy { [Serializable] public class YorumPolicy
: PolicyBase { public override string
Description { get
{ return "Yorum
Zorunluluğu Policy"; } } public override bool Edit(IPolicyEditArgs policyEditArgs) { return
true; } public override PolicyFailure[]
Evaluate() { //TODO:
evaluation kodu gelecek. return
null; } public override string Type { get
{ return "YorumPolicy";
} } public override string
TypeDescription { get
{ return "YorumPolicy";
} } } } Type,TypeDescription ve Description propertysi checkin policy ile ilgili tür ve açıklama alanlarıdır. Evaluate methodunu en basit haliyle aşağıdaki şekilde implemente edebiliriz. public override PolicyFailure[]
Evaluate() { string
checkinAciklamasi= this.PendingCheckin.PendingChanges.Comment; if
(String.IsNullOrEmpty(checkinAciklamasi)) { return
new PolicyFailure[]
{ new
PolicyFailure("Lütfen
checkin işlemlerinizde açıklama giriniz.", this), }; } else { return
null; } } Policy’i register etmek için aşağıdaki adımlar takip edilmelidir. Registry Editor (regedit.exe) veya herhangi bir araç ile (bir .reg dosyası vs) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\TeamFoundation\SourceControl\Checkin
Policies lokasyonuna yeni bir String Value (Dize Değeri) oluşturun. Bu string değerine policy dosyasının DLL adını uzantısı olmadan verin. Örneğimizde; YorumPolicy. Dosya adı ve buradaki ismin birebir aynı olması custom policynin çalışması için bir zorunluluktur. Daha sonra policynin çalışıp çalışmadığını test etmek için Team menüsünden Team Project Settings ve Source Control seçilmelidir. Daha sonra yorum yazmadan bir checkin yapmaya çalıştığınızda Error List penceresinde yorum girilmesi gerektiğini bildiren bir hata mesajınızı (Lütfen checkin işlemlerinizde açıklama giriniz.) göreceksiniz. Cengiz Han | |
Yazgelistir.com | |