Başlığı bu şekilde attım ama sadece dikkatinizi çekmek için. Subtext developer e-posta listemizde bir kaç gündür süren bir tartışmayı aktarmak ve konu hakkında sizleri bilgilendirmek istiyorum.

Nedir Team Foundation Server? TFS kurumsal projeler için tasarlanmış yazılım sürecinde oluşabilecek her türlü (sadece kod değil, döküman, hata kayıtları, istekler, görevler vs. gibi) içeriği sürüm kontrolünde tutacak sistemin adıdır. Arka planda MS SQL Server üzerinde verileri tutar ve TFS Client (indir) programı ile (VS2005 veya Expres sürümleri ile de kullanılabilir) erişilir. Kurumsal terimini kullandım çünkü tamamı ile firma içinde geliştirilen projeler düşünülerek üretilmiş bir üründür. Her ne kadar CodePlex gibi siteler mevcutsa da OSS felsefesine uymayan yönleri vardır. TFS firma içinde kullanıldığında gerçek gücünü gösterir ve proje ekibine her türlü içeriği paylaşabilecekleri bir ortam sunar. Hem yazılım üretmeyi kolaylaştırır hemde pek çok külfetli işi otomatize ederek kaliteyi arttırır.

Subversion ise açık kaynak yazılım üretenlerin kullandığı Concurrent Versioning System denilen CVS temel alınarak üretilmiş bir sürüm yönetimi sistemidir. CVS'in aksayan yada beğenilmeyen yönlerinin değiştirilmesi ve pek çok gerekli özelliğin eklenmesi ile bugünkü halini almıştır. Subversion her türlü içeriği (belge, kod, resim vb. gibi) diğer proje elemanları ile paylaşmanızı ve ortak çalışabilmenizi sağlar. Fakat TFS gibi bir ortam istiyorsak Subversion'a ek olarak bir kaç yazılım daha kurmamız gerekir (wiki, hata ve istek yönetimi, kodun online görülebilmesini sağlayacak araçlar vs.). Bu da Subversion tabanlı olarak kurulan bir sürüm yönetimi sisteminin bakımını ve kurulumunu zorlaştırabilir. Trac gibi komple bir paketide kurabilirsiniz ve gerçekten firma içinde işlerinizi kolaylaştırabilir. Birde Trac gibi C# ile yazılmış SharpForge var. Benim yazdığım bir kaç yazıya da bakınız:

  1. Subversion ile Depo Oluşturma
  2. Cruise Control Kurulum ve Entegrasyon
  3. Subversion'dan RSS

Şimdi görüyorsunuz ki elma ile armutu karşılaştırmaya çalışıyoruz. TFS bir firmada oluşabilecek her türlü senaryoyu kapsıyor. Shelving gibi yeni bir özelliği de var. Shelving nedir? Örneğin uygulamaya yeni bir özellik ekledim fakat bu işi bırakıp elimdeki hataları düzeltmem gerekiyor. Yazdığım kodu da kaybetmek istemiyorum. Bu durumda kodu rafa kaldırıyorum (shelving) ve ana kodu tekrar indirip hatalarımı düzeltmeye devam ediyorum. Diğer yazılım uzmanları benim rafa kaldırdığım kodu indirip kendi lokal sürümlerine entegre edebilir ve kod teftişi veya test yapmaya başlayabilir. Shelving ana kod damarını etkilemeden başka görevler veya aklınıza gelen geliştirmeler için ideal bir yöntem. Subversion'da da branching var tabii ki. Tam olarak karşılaştırmadım ama TFS Shelving biraz daha esnek bir yapıya sahip.

TFS yönetimi altındaki bir projede çalışırken sürekli online olmanız gerekiyor yani VS2005 TFS'e hep bir bağlantı istiyor. Buda kopuk çalışmayı engelliyor.

CodePlex'de bir projeye katkıda bulunmak isterseniz o projenin bir üyesi olmanız ve sürüm yönetimine "yazma" erişimi almanız gerekiyor. Yani Subversion'da olduğu gibi anonymous indirdiğiniz bir projeye yama göndererek katkıda bulunmak zor. Codeplex'den anonymous olarak kaynak kodunu indirebilirsiniz fakat eklentilerinizi proje yöneticisine gönderdiğinizde bu eklentilerin manual olarak koda eklenmesi gerekiyor ve zahmetli bir iş olduğunu söylememe gerek yok herhalde.

Codeplex tabii ki MS araçlarını kullanarak geliştirme yapan yazılım uzmanlarına zaten tanıdık oldukları araçlar ile sürüm kontrolü hizmeti vermek için oluşturulmuştur. Fakat Codeplex üzerinde herhangi bir dille yazılmış ve herhangi bir işletim sistemine yönelik uygulamayı tutabilirsiniz, yani bir kısıtlama yok. Codeplex'in Subversion desteği vermesi için bir workitem da açılmış. Eğer bu desteği görmek istiyorsanız oyunuzu kullanın.

TFS altındaki bir projeye offline iken dosya eklemek de bir dert. Ben genelde CodePlex üzerindeki projemi akşam indiriyorum ve iş yerinde kimse görmeden takılıyorum. Ama eğer iş yerinde offline iken dosya eklersem akşam eve geldiğimde bu dosyayı TFS'e göndermek zorlaşıyor. Önce projeden çıkartıp tekrar eklemek gerekiyor ve ayrıca dosyanın bir yedeğini almak gerekiyor.

Eskiden VSS kullanan yazılım uzmanları şimdi TFS'den kod indirirken "exclusive lock" yapıyorlar ve buda aynı anda iki yazılım uzmanının aynı dosya üzerinde çalışmasını engelliyor. Halbu ki TFS "değiştir, birleştir (edit, merge)" mantığını destekliyor. Ama tabii alışkanlıkları değiştirmek zor.

Öte yandan TFS ile Subversion arasındaki fiyat farkı karar verme aşamasında önemli bir etken gibi görünebilir fakat Açık Kaynak ta olsa ücretli de olsa bu ürünlerin bakımı ve ayakta tutulması için harcanacak para aynıdır.

TFS'in raporlama yetenekleri de çok güzel bir artı puan kazandırıyor. Subversion ile bu özelliği isterseniz ek yazılımlar kurmak gerekiyor.

TFS kurumsal bir firmada BT departmanının yaptığı her işi kontrol altına almak ve bütçelendirmelerde dahi yardımınıza koşacak bir araç. Eğer 10 kişiden fazla yazılım uzmanı varsa ve en az iki proje üzerinde çalışıyorsanız TFS'i kesinlikle tavsiye ederim. Öğrenme eğrisi olarak biraz zaman istiyor tabii ama bir kere özelliklerine alıştıktan sonra artık geriye dönüş çok zor olacaktır.

Seçim yapmak zorunda kalırsanız ve finansal olarak sorununuz yoksa TFS için yapılacak yatırım kendini hızlı bir biçimde ödeyecektir. Bir de unutmayın ki bu ürünün daha ik sürümü var karşımızda ve gelecek sürümlerinde eminim ki burada yazdığım bir kaç dezavantaj temizlenecektir. Eminim çünkü MS'in müşterilerini nasıl dinlediğini ve ürünlerinde ki geliştirmeleri bu doğrultuda yaptığına şahit oldum. Tabii siz blogunuzda bu sorunları dile getirmezseniz hiç kimse sesinizi duymaz.

Reklamlar


Bu girdiye atılan yorumlar:

No comments posted yet.

Yorumunuzu buradan giriniz

Yorumlar onaylandıktan sonra yayınlanacaktır

*


*


 (Görüntülenmeyecek)


 (İsminizde link olarak görüntülenecek)

*
Bold Italic Underline Blockquote Hyperlink Hyperlink

 

Please add 3 and 7 and type the answer here:

Yorum Önizleme:

 

Arama



Hakkımda

Merhaba, ben Gürkan Yeniçeri. 9 yılı aşkın süredir özel sektör ve hükümet iştiraklerinde yazılım mühendisliği yapıyorum. Bu sitede 2005 Mart ayından beri genelde yazılım mühendisliği ve Microsoft teknolojileri hakkında yazmaktayım. Profesyonel iş geçmişim hakkında daha fazla bilgiyi aşağıdaki Çember.net linkinden alabilirsiniz.
Çember.net
Faturaları ödeyen günlük işim dışında Açık Kaynak Subtext Projesine katkıda bulunuyorum. Bu blogun alt yapısıda Subtext ile hazırlanmıştır. Ayrıca 1999 yılından beri Programlama.com sitesinde VB6 editörlüğü yapıyorum. Fakat takdir edersinizki VB6 artık ölü bir dil, bu nedenle beta sürümlerinden beri C# ve ASP.NET programcılığı ile uğraşıyorum.

kontak

Soru sormak veya öneride bulunmak isterseniz buradaki kontak formunu kullanın. Mesajlarınıza en kısa zaman içinde cevap vermeye çalışacağım. Ayrıca Windows Live Messenger kullanarak gyeniceri {AT} hotmail {DOT} com adresinden bana ulaşabilirsiniz.
Eğer İngilizce blogumu okumak isterseniz buraya buyrun.
Blogumu RSS Bandit gibi bir RSS okuyucusu ile de takip etmek için kullanın.
RSS 2.0

Reklamlar


imleme

Yumilerime ekle   Reddit Türkçe'ye ekle   Limkle   Bag-kur

Vezir

Vezir Proje Danışmanı
Sitede birde Vezir isminde wikimiz var. Bu wikiyi yazmayı düşündüğüm bir kitap için oluşturmuştum daha sonra herkese açmaya karar verdim. Vezir yazılım firması kurmak isteyenlere tavsiyeler vermek için hazırlandı. Ayrıca UML ve Modül Tabanlı Geliştirme hakkında da bilgiler mevcut. Vakit buldukça yeni eklemeler yapıyorum. Değişikliklerden haberdar olmak için RSS çıktısına üye olabilirsiniz.
www.flickr.com
This is a Flickr badge showing public photos from gurkanyeniceri. Make your own badge here.
Bu blogda 246 yazı ve 313 yorum var. Diğer sitelerden 7 adet link gelmiş.

Buradayım

my blogmap

Reklamlar