Erkan Okur Resmi Web Sitesi

  • Increase font size
  • Default font size
  • Decrease font size
Microsoft Visual Studio Team Foundation Server (TFS) | Nasıl Konfigüre Edilir ve Özelleştirilir? PDF Yazdır

Microsoft Visual Studio Team Foundation Server Configure & CustomizeTFS'in genel özelliklerinden ve yeteneklerinden Microsoft Visual Studio Team Foundation Server (TFS) | Nedir? ve Kimler Kullanabilir? yazımda bahsetmiştim. Bu yazımda MS Team Foundation Server'in kurum ihtiyaçlarına göre nasıl konfigüre edilebileceği ve özelleştirilebileceği hakkında genel bilgiler vermeyi amaçlıyorum.

Güçlü bir ALM aracı olmasının yanı sıra, sunmuş olduğu uyarlanabilir, özelleşebilir ve geliştirilebilir mimari altyapı sayesinde TFS; çok farklı ihtiyaç ve beklentilere cevap verebilen bir kurumsal yazılıma dönüşebilmektedir. Üstelik; TFS ile birlikte gelen şablonlar, Microsoft tarafından yayınlanan resmi araçlar ve açık kaynak kodlu olarak geliştirilen pek çok 3rd Party araç sayesinde, ileri seviye bilgisayar veya programlama dili bilgisine gerek kalmadan da bu özelleştirme ve uyarlamaları yapabilirsiniz.

Yazımın devamında, aşağıda belirttiğim temel kavram ve araçlar hakkında detaylı bilgilere ulaşabilirsiniz.

Temel Kavramlar: Collection, Project, Process Template, Process Configuration, Category, Area, Iteration Path, WorkItem Type, Fields, Workflow (States, Transaction), Form (Layout, Group, Tabs, Column, Control)

Temel Araçlar: Microsoft Visual Studio Team Explorer, Microsoft Visual Studio Team Foundation Server Power Tools, TFS witAdmin: Customize and manage objects for tracking work, TFS WitAdminUI 2013/2015, TFS Team Project Manager, Delete TFS Work Items

Microsoft Visual Studio Team Foundation Server Configure & Customize

Temel Kavramlar

1. Collection: TFS mimari hiyerarişisindeki en üst kademe olduğunu söyleyebiliriz. TFS kurulumu sırasında varsayılan bir Collection kurulumu da yapılır. Bir TFS sunucusuna dilediğiniz kadar Collection oluşturabilirsiniz (bunun için Team Foundation Server Administration Console uygulamasında Application Tier / Team Project Collections menüsüne gitmeniz yeterlidir). TFS sunucusu altında yer alan her bir Collection bağımsız olarak çalışmaktadır, yani her Collection'ın kendine has kullanıcı grupları ve yetkilendirmesi, projeleri (project) ve veri alanları (fields) ile SharePoint web uygulaması lokasyonu (site) olabilmektedir.

Aynı TFS sunucusu altında farklı amaçlarla TFS projeleri oluşturmak için Collection ideal bir çözümdür. Gözden kaçmaması gereken nokta ise, farklı Collection'lar altında bulunan projeler arasında veri alışverişi veya ortak sorgu yapmak mümkün değildir. Ama aynı Collection altında yer alan farklı projelerde veri alışverişi ve ortak sorgu yapılabilmektedir.

Team Foundation Server Administration Console

 

2. Project: TFS, proje bazlı bir yapıya sahiptir. TFS yeteneklerini kullanabilmeniz için Collection seviyesinde en az bir adet TFS projesine sahip olmanız gerekmektedir.

TFS Projesi oluşturma işlemi, Temel Araçlar 1. başlıkta bilgi verdiğim, "Visual Studio Team Explorer" üzerinden yapılabilmektedir. Proje oluşturma sihirbazı, sizden bir "Process Template" seçmenizi isteyecektir. Sihirbaz adımlarını tamamlayarak kolayca TFS Projesi oluşturabilirsiniz. Süreç şablonuna ilişkin detayları ise bir sonraki başlıkta bulabilirsiniz.

Team Foundation Server Create New Project

 

3. Process Template: "Süreç Şablonu", TFS konfigürasyon tanım dosyalarının tekrar tekrar kullanılabilmesi adına paket haline getirilmesidir. TFS'in varsayılan olarak gelen 3 adet süreç şablonu bulunmaktadır. Bunlar: Scrum, Agile ve CMMI'dir.

Süreç şablonu içinde, "Process Configuration", "Category" ve WorkItem Type" tanımları (XML dosyaları) yer almaktadır. Seçmiş olduğunuz şablona göre farklı bir Pano (Board) yapısına (Kanban, Scrum vb.) ve farklı WorkItem tipi tanımlarına (detaylar için aşağıdaki görseli inceleyebilirsiniz) sahip olursunuz.

İhtiyaçlarınıza göre mevcut şablonlarda düzenlemeler yapabilir veya kendi şablonunuzu oluşturabilirsiniz.

Team Foundation Server Process Template Work Item Types

 

4. Process Configuration: "Süreç Konfigürasyonu", proje bazlı olarak Pano (Board) ve Birikmiş İşler (Backlogs) yapı ve görünümü tanımlamak için kullanılan XML bazlı dosyadır.

Seçilen süreç şablonuna göre, Pano ve Birikmiş İşler yapısı için farklı seviyeler belirlenmektedir. Aşağıda örnek olarak Agile süreç şablonun seviye yapısı görüntülenmektedir. Diğer örnekler ve konunun detayları için Visual Studio resmi sayfasına ulaşabilirsiniz.

Aşağıdaki görselde yer alan Agile şablonu örneği üzerinden gidersek, süreç konfigürasyon dosyamızda Portfolio, Requirement, Task, Bug, Feedback Request ve Response seviyeleri için tanımlar bulunmaktadır. Her bir seviyenin ilgili TFS projesinde hangi WorkItem tipi kategorisine karşılık geldiğini, hangi durumda (state) bulunan kayıtların pano ve birikmiş işler sayfalarında, hangi alanları (fields) ile yer alacağı bu tanımlarda belirlenmiştir.

Ayrıca, ilgili proje özelinde haftanın çalışma günleri ve çalışma saatleri ile WorkItem tiplerinin hangi renk ile gösterileceği gibi detaylar da yine süreç konfigürasyon dosyasında tanımlanmaktadır.

Team Foundation Server Process Configuration and Categories

 

5. Categories: "Kategoriler" dosyası, WorkItem tiplerini gruplamak için kullanılan bir tanım dosyasıdır. Tanımlanan her bir kategori için bir adet varsayılan workitem tipi belirlenmelidir. İhtiyaca göre bir veya birden fazla ilave workitem tipi de kategoriye eklenebilir.

Kategori tanımları bir önceki başlıkta açıklanan "Süreç Konfigürasyonu" dosyalarında ya da aşağıdaki örnekte gördüğünüz üzere TFS sorgularında kullanılabilir.

Team Foundation Server Query With Category

 

6. Area ve Iteration Path: "Alan" ve "İterasyon Yolu" tanımları, TFS proje yönetici paneli sayfasında, proje bazlı olarak yapılmaktadır.

Alan tanımı ile, TFS projesi altında farklı çalışma alanları yaratabilir, her bir çalışma alanı için farklı çalışma ekipleri ve yetki seviyeleri tanımlayabilirsiniz. Her bir çalışma alanının kendine özgü bir Giriş Sayfası (Home) olması sayesinde, farklı TFS sorgularını ve grafik raporlarını giriş sayfasına sabitleyebilirsiniz.

İterasyon yolu tanımı ile, TFS projeniz için farklı periyotlarda (örneğin, haftalık, 2 haftalık, aylık, 3 aylık, yıllık vb.) veya spesifik tarihler için (proje aşamaları vb.) dönem tanımları yapabilir ve kayıtlarınızı bu dönemlere göre gruplayabilirsiniz.

 

7. WorkItem Type: "WorkItem Tipi", TFS'e veri girişi yapmamıza imkan sağlayacak XML bazlı tanım dosyalarıdır. TFS projesi oluştururken seçmiş olduğunuz "Süreç Şablonu"nda tanımlı olan WorkItem tipleri, projenize otomatik olarak eklenecektir.

TFS projenizde ekli olan bir WorkItem tip tanım dokümanını güncelleyebilir, veya farklı kaydederek yeni bir WorkItem tipi olarak projenize ekleyebilirsiniz.

Team Foundation Server Define WorkItem Type

WorkItem tipi tanım dokümanı 3 ana bölümden oluşmaktadır:

7.1 Fields: WorkItem tipini kullanarak oluşturacağımız kayıtlardaki her bir veri alanıdır. Görünen İsim (Name), Referans İsmi (Reference Name) ve Veri Alanı Tipi (Field Type: Metin, Numerik, Tarih vb.) bilgiler ile tanım yapılabilir.

TFS'te veri alanları, "Collection" seviyesinde tanımlanmaktadır. Dolayısıyla, farklı projelerde ve/veya farklı WorkItem tiplerinde kullanılacak bile olsa, aynı amaçla kullanılacak alanlar için ortak veri alanı yaratılması faydalı olacaktır. TFS'te görünen ve/veya referans ismi aynı olan birden fazla veri alanı bulunamaz.

Veri alanı tanımı sırasında farklı kurallar (Rule) da tanımlanabilir: Açılır menü listesi kuralları (Pick list rules), Değer atama kuralları (assign value rules) ve Şarta bağlı kurallar (Conditional rules).

7.2 Workflow (States, Transaction): WorkItem tipini kullanarak oluşturacağımız kayıtların iş akışını ifade etmektedir. İlgili kaydın bulunabileceği durumlar (States) ve bu durumlar arasındaki geçişlere ilişkin kurallar (Transaction) iş akışı tanımını oluşturur.

7.3 Form (Group, Column, Tabs, Control): WorkItem tipini kullanarak oluşturacağımız kayıtların kullanıcı arayüzü tasarımını ifade eder. Kullanıcı arayüzü tasarım yeteneklerini sınırlı da olsa, temel kabiliyetlere sahiptir:

  • Group: Kullanıcı arayüzüne bir satır bloğu eklemek için kullanılabilir.
  • Column: Kullanıcı arayüzündeki bir satır bloğunu, sütunlara bölmek için kullanılabilir.
  • Tabs: Kullanıcı arayüzüne sekmeli bir yapı eklemek için kullanılabilir. (Tabgroup içine dilediğiniz kadar Tab ekleyebilirsiniz.)
  • Control: Kullanıcı arayüzüne bir veri alanı veya veri seti getirmek için kullanılabilir. Farklı kontrol tipleri bulunmaktadır:
    • FieldControl: Metin, numerik gibi tek satırda gösterilecek veri alanları için kullanılabilir.
    • HtmlFieldControl: Birden fazla satırdan oluşan HTML ve/veya PlainText veri alanları için kullanılabilir.
    • DateTimeControl: Tarih ve saat alanları için kullanılabilir.
    • LinksControl: İlgili kaydın ilişkili olduğu (Parent, Child, Related vb.) kayıtları tablo olarak ekrana getirmek için kullanılabilir.
    • WorkItemLogControl: İlgili kaydın geçmiş loglarını ve yorum panosunu ekrana getirmek için kullanılabilir.

 

ÖZET

Bu temel bilgiler ışığında, TFS mimarisinin Site, Collection, Project, Template ve WorkItem olmak üzere 5 seviyeden oluştuğu söylenebilir.

Team Foundation Server Hierarchy

 

Temel Araçlar

1. Microsoft Visual Studio Team Explorer

Microsoft Visual Studio Team Foundation Server Team Explorer

Team Explorer, Microsoft Visual Studio için geliştirilmiş bir eklentidir. Visual Studio 2013 için kurulum dosyaları mevcuttur ve istenirse Visual Studio 2013 olmadan da kurulabilmektedir. Visual Studio 2015 ile gömülü olarak geldiği için ayrıca kurulamamaktadır. Bu nedenle en az ücretsiz olarak sunulan Community versiyonuna sahip olmanız gerekmektedir.

Team Explorer, özellikle Visual Studio kullanarak uygulama geliştiren ekiplerin, Visual Studio arayüzünden ayrılmadan TFS özelliklerini kullanabilmesi açısından çok faydalıdır. Bunun dışında, yeni TFS projesi oluşturmak için Visual Studio Team Explorer'e ihtiyaç duyulmaktadır.

Ayrıca, Visual Studio 2013 Team Explorer veya Visual Studio 2015 kurulumu yaptığınızda, Microsoft Excel arayüzüne de Team Explorer sekmesinin geldiğini görebilirsiniz. Bu araç sayesinde, MS Excel kullanarak TFS'e bağlanmak, veri çekmek veya yeni veri oluşturmak da mümkün olmaktadır.

Microsoft Visual Studio 2013 Team Explorer eklentisi kurulum dosyası;

https://www.microsoft.com/en-us/download/details.aspx?id=40776

Microsoft Visual Studio 2015 Community (Ücretsiz) indirme adresi;

https://go.microsoft.com/fwlink/?LinkId=691978&clcid=0x41f

 

2. Microsoft Visual Studio Team Foundation Server Power Tools

Microsoft Visual Studio Team Foundation Server Power Tools    Microsoft Visual Studio Team Foundation Server Power Tools    Microsoft Visual Studio Team Foundation Server Power Tools

TFS sistem yöneticileri için olmazsa olmaz diğer bir Visual Studio eklentisi ise, TFS Power Tools'tur. Kurulum sonrasında, Visual Studio Tools menüsüne "Process Editor" opsiyonu eklenmektedir ve 4 önemli özelliğe sahiptir:

  • WorkItem Types; WorkItem tiplerine ilişkin işlemleri yapabiliriz. Örneğin; TFS sunucusu üzerinden bir WorkItem tipi aç, TFS sunucusundan bir WorkItem tipi dışarı aktar (export), yeni bir WorkItem tipini TFS sunucusuna aktar (import)
  • Process Templates; Süreç şablonlarına ilişkin işlemleri yapabilirsiniz. İçeri aktar, dışarı aktar vb.
  • Global List; Global listelere ilişkin işlemleri yapabilirsiniz. Aç, yeni oluştur, içeri aktar, dışarı aktar vb.
  • WorkItem Field Explorer; Collection seviyesinde tanımlanmış veri alanlarını görüntüleyebilirsiniz.

Microsoft Visual Studio Power Tools (Process Editor) eklentisi kurulum dosyaları;

https://visualstudiogallery.msdn.microsoft.com/898a828a-af00-42c6-bbb2-530dc7b8f2e1

 

3. TFS witAdmin: Customize and manage objects for tracking work

TFS witAdmin: Customize and manage objects for tracking work

TFS sistem yöneticilerinin mutlaka kullanması gereken bir diğer araç ise, Microsoft Visual Studio kurulumu ile birlikte gelen WITADMIN konsol uygulamasıdır ve varsayılan olarak "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE" adresinde bulunmaktadır.

WITADMIN konsol uygulamasını kullanırken "YARDIM" özelliği size kolaylık sağlayacaktır. Konsol ekranında "witadmin help [command]" formatını kullanarak, kullanımını öğrenmek istediğiniz komutun detaylarını öğrenebilirsiniz.

Örneğin, "witadmin help renamewitd" yazdığımızda konsol ekranı bize aşağıdaki gibi detaylı bir kullanım talimatı sunacaktır.

Renames an existing work item type. Changes the display name of a work item type within a specific project. Also, the work items of that type are updated to reflect the new work item type name.
Usage: witadmin renamewitd /collection:collectionurl /p:project /n:typename /new:newname [/noprompt]
 /collection: Specifies the Team Foundation project collection. Use a fully specified URL such as http://servername:8080/tfs/Collection0.
 /p: Specifies the name of the team project.
 /n: Specifies the name of the work item type to rename.
 /new: Specifies the new name for the work item type.
 /noprompt: Turns off the confirmation message.

TFS WITADMIN ile kullanabileceğiniz diğer komutlara ve kullanım rehberine aşağıdan ulaşabilirsiniz.

changefield
deactivatelinktype
deletefield
deletelinktype
destroygloballist
destroywi
destroywitd
exportagileprocessconfig
exportcategories
exportcommonprocessconfig
exportgloballist
exportglobalworkflow
exportlinktype
exportprocessconfig
exportwitd
help
importagileprocessconfig
importcategories
importcommonprocessconfig
importgloballist
importglobalworkflow
importlinktype
importprocessconfig
importwitd
indexfield
listfields
listgloballist
listlinktypes
listwitd
reactivatelinktype
rebuildcache
renamewitd

https://msdn.microsoft.com/en-us/library/dd236914.aspx

 

4. TFS WitAdminUI 2013/2015

TFS WitAdminUI 2013/2015

DOS 3.1 dönemlerini hatırlamayan nesildenseniz, windows konsol ekranı ile mücade etmek size göre olmayabilir :)

Bu durumda açık kaynak kodlu olarak geliştirilen TFS WITADMINUI tam size göre diyebilirim. Arkaplanda TFS WITADMIN konsol uygulamasını kullanmayan devam eden TFS WITADMINUI, tüm WITADMIN komutlarını size kolay kullanılabilir bir kullanıcı arayüzü ile sunuyor.

Collection ve Project seviyesindeki onlarca komut ile TFS'i konfigüre etmek ve uyarlamak çok daha kolay bir hale geliyor.

TFS WitAdminUI 2013/2015 Kurulum dosyaları ve kullanım rehberi;

https://tfswitadminui.codeplex.com/

 

5. TFS Team Project Manager

TFS Team Project Manager

TFS sistem yöneticilerinin baş uçu uygulamalarından biri olacak diğer bir uygulama ise: TFS Team Project Manager.

TFS Team Project Manager, TFS API'leri kullanılarak açık kaynak kodlu olarak geliştirilen bir Windows masaüstü uygulaması ve özellikle TFS'i ALM aracı olarak kullanan uygulama geliştiricileri için "build definitions", "build process templates" ve "manage source control" gibi güçlü özelliklere sahip.

Bunun dışında, yazının ilk bölümünde detaylandırılan konularda aşağıdaki yeteneklere de sahiptir:

  • WorkItem konfigürasyon tanımlarını görüntüleme ve karşılaştırma
  • WorkItem tip tanımlarını görüntüleme, dışarı aktarma, silme, düzenleme, içeri aktarma ve arama
  • WorkItem kategori tanımlarını dışarı aktarma, düzenleme, görüntüleme, silme, güncelleme ve içeri aktarma
  • Süreç konfigürasyon tanımlarını görüntüleme, dışarı aktarma, düzenleme, içeri aktarma

TFS Team Project Manager Kurulum dosyaları;

https://visualstudiogallery.msdn.microsoft.com/d5c7e795-2772-4e5c-b3c6-a3eff23a4938

TFS Team Project Manager Kullanım rehberi;

http://teamprojectmanager.codeplex.com/documentation

 

6. Delete TFS Work Items

Delete TFS Work Items

Son olarak doğrudan Team Foundation Server özelleştirilmesi ve uyarlanması ile ilgisi olmasa da, TFS sistem yöneticileri için çok faydalı olacağını düşündüğüm ve sıklıkla kullandığım bir aracı da sizinle paylaşmak istiyorum.

Sistem veri bütünlüğü açısından TFS son kullanıcılarına WorkItem silme yetkisi verilmemesi genellikle tercih edilen bir yaklaşım. Son kullanıcılar, silinmesi gereken kayıtlara "SİL" etiketi ekleyebilir veya bu kayıtları "Silinecek Kayıtlar" adında bir "Area" altına taşıyabilirler. Bu durumda TFS'te biriken silinmesi gerekli kayıtlar için TFS sistem yöneticilerinin periyodik kontroller yapması ve silme işlemi gerçekleştirmesi gerekmektedir.

Açık kaynak kodlu olarak geliştirilen ve TFS API'lerini kullanan "Delete TFS Work Items" masaüstü uygulaması, tam bu durumlar için geliştirilmiş basit bir uygulama. TFS sistemine giriş yaptıktan sonra, giriş yapılan projedeki tüm sorguları ekrana getiriyor, seçilen sorgudaki kayıtları ekrana döküyor ve listeden seçilen kayıtları kolayca silebiliyor.

Delete TFS Work Items uygulaması kurulum dosyaları;

https://visualstudiogallery.msdn.microsoft.com/112a2055-4363-4a4e-a866-ea29bc6f2cbb

Delete TFS Work Items uygulaması kullanım rehberi;

https://tfsdeleteworkitems.codeplex.com/

 

Bu yazımda, Microsoft Visual Studio Team Foundation Server (TFS) ile ilgili temel kavramları açıklayarak "TFS Nasıl Konfigüre Edilir ve Özelleştirilir?" konusuna giriş yapmayı ve TFS konfigürasyonu ve özelleştirilmesi için kullanılabilecek popüler araçlardan bahsettim.

Sonraki yazımda ise, TFS konfigürasyon ve tanım dosyalarının detaylarını incelemeyi ve örnekler üzerinden "TFS Nasıl Konfigüre Edilir ve Özelleştirilir?" konusunda uygulamalar gerçekleştirmeyi planlıyorum.

 

Ayrıca, bu konuda hazırladığım sunuma SlideShare üzerinden ulaşabilirsiniz.

Son Güncelleme: Cumartesi, 08 Ekim 2016 18:35