Martin Fowler'in küçük araştırması , önceki yıllarda TFS'nin durumu hakkında çok şey söylüyor. 'tehlikeli' oldukça doğru. (Bence bu, VS dışında yapılan değişiklikleri tanımadığı anlamına gelir, böylece bir WCF projesi oluşturabilir, ardından müşterinizi oluşturmak için harici svcutil aracını kullanabilirsiniz, sonra tüm değişikliklerinizi kontrol edebilirsiniz .. ancak TFS VS içinde yapılmadığı için müşteri değişikliklerinizi göz ardı edin).
Maliyeti saymanız gerekir: güzellikleri elde etmek için gerekli VS sürümü - kod incelemeleri, örneğin, MSDN üzerinden VS alırsanız önemli ölçüde daha pahalı olan Premium sürümü gerektirir . Ayrıca, VS olmayan kullanıcılar için sisteme erişmek iyidir, ancak kısmi web görünümü yerine tam erişim istiyorlarsa, onlar için CAL'leri kabuklandırmanız gerekir. TFS'nin toplam maliyeti oldukça fazla olabilir. Son Forrester raporu bile(Microsoft tarafından görevlendirildi, bu yüzden satırlar arasında biraz okumak zorundasınız) TFS'nin önemli yönetim desteği gerektirdiğini söylüyor - 122 müşterinin vaka çalışması için TFS'yi desteklemek için 2 danışman ve 6 yöneticinin (zamanlarının% 25'ini harcayan) (bu 122 kullanıcı üzerinde 4.5 yöneticiye çalışır ... bu sadece benim günlük işimi yaparken tam bir SVN çözümü kurmak ve korumakla karşılaştırıldığında çok fazla). TFS, insanların beklediği gibi çalışmaya devam etmek için çok çaba harcayabilir.
TFS2012 ile olan tecrübelerime göre (önceki sürümleri bok gibi unutun), özellikle önceden tanımlanmış kurulumun dışına çıktığınızda çok karmaşık bir sistem yönetimi. Örneğin, her şeyi oluşturmak için MSBuild kullanıyorsanız, sorun yok. Ancak, MSBuild tarafından artık desteklenmeyen bir sürü eski .vdproj projeniz varsa, bu projeleri oluşturmak için büyük xaml oluşturma komut dosyasını düzenlemeniz gerekir. Bunun üzerinde çalıştıktan birkaç gün sonra, yapabileceğim en iyi şey, çözümü devenv'e geçirerek yeniden oluşturmaktı ve o zaman bile, yapı sonuçlarını dışarı ve yapı özetine almak imkansızdı. Testleri için NUnit kullanan diğer ekipler tarafından benzer sonuçlar elde edildi - eğer yerleşik MSTest kullanıyorsanız, o zaman işe yarar. Aksi takdirde, doldurulmuş olursunuz.
Bir kullanıcı olarak, entegrasyonun daha fazla sıkıntı olduğunu görüyorum. TortoiseSVN'yi tercih ediyorum ve neredeyse tüm SCM işimi bu şekilde yapıyorum (harika bir araç olduğu için). TFS ile her işlem için VS içinde yeni bir ekran elde edersiniz. Böylece, ortamınızda ekip gezgini için yeni bir sekme ve derlemeler için başka bir sekme ve görmek istediğiniz her derleme özeti için başka bir sekme var (ve bir derlemenin ayrıntılarını görmek istiyorsanız, örneğin bir hata var tıklamak için). TFS kullanırken açık olduğum belgelerin sayısının kaynak dosyalardan daha fazla olduğunu buldum!
Aynı durum, bir iş öğesi atamak ve check-in'lerinize yorum yapmak için VS'deki Bekleyen Değişiklikler bölmesindeki birkaç sekmeyi tıklatarak gerekli değişiklikleri gerçekleştirerek check-in'ler için de geçerlidir. Bu küçük bir şey, ama daha akıcı araçlara alışkın olduğum için sinir bozucu buldum.
Yapı sistemini genişletmek, eksik bulduğum başka bir alan oldu. Yapıya yeni özellikler eklemek xaml yapılandırması nedeniyle zordur ve bu özelliklerin sonuçlarını oluşturma ekranlarınıza almak çok zor veya imkansızdır. Yani kod karmaşıklığı veya statik analiz gibi şeyler eklemek, hatta selenyum veya dağıtımlar yoluyla otomatik test yapmak isterseniz ... unutun. Bu yönler için Microsoft araçlarını kullanmıyorsanız (örn. Fxcop).
İş akışını güncellemek başka bir hareketsizlikti - powertoys muazzam bir şekilde yardımcı olmasına rağmen, iş akışını doğru bir şekilde elde etmek hala garipti ve yine de scrum panosunu gerçekten görmek istediğiniz bilgilerle yapılandıramazsınız - yine, varsayılanları alırsınız veya hiçbir şey almazsınız .
Birleştirme de acı vericiydi, MS'in TFS için git'i benimsemesinin çok iyi bir nedeni olduğunu düşünüyorum (bunun sadece yeni TFS projeleriyle çalıştığını unutmayın, TFS'den git arka uçlarına dönüşemezsiniz).
Sonuçta, işe yaradığı kadar kötü değil, ama diğer birçok aracın çok daha iyi olduğunu gördüm. Bu araçların dezavantajı, tamamen entegre olmamalarıdır, ancak IMHO, istediğiniz en iyi bitleri seçip seçebileceğiniz için bir güçtür. TFS ile bir başkasının sahip olmasını istediklerinizi hemen hemen elde edersiniz. TFS'deki hata sisteminin zayıf olduğuna karar verirseniz (ve sanırım yapacağınız), farklı bir sisteme geçmekte zorlanacaksınız.
TFS, diğer büyük, yağ dolu yaşam döngüsü araçlarıyla birlikte düşünülmelidir. Çoğu geliştirici, bu araçların kendilerine empoze ettiği kısıtlamalardan hoşlanmadığı için nefret eder.
Yine de denemek, 30 günlük denemeleri indirmek ve yüklemek. Değerlendirirken, burada ve orada biraz değişiklik yapmayı unutmayın, sadece bir iş kodu ile check-in, gerekli bir çalışma öğesiyle check-in ve bu çalışma öğesine dayalı raporlar almak için bir kaynak kodu için kullanmayın. Birden fazla iş öğesine bir check-in atamayı ve iş öğelerini ilişkili olarak birleştirmeyi deneyin. Oluşturma sistemine farklı bir şey eklemeye çalışın, raporlama hizmetlerinden günlük ilerleme raporunu nasıl alacağınızı görün, bir belgeyi bir iş akışı gereksinimine bağlayın ve yeniden işleme oluşturmak ve daha sonra yayınlamak için hata triyajı ile kodlamaya kadar takip edin. Çok dal ve birleştir. Tüm bunları kolayca yapamıyorsanız, git'e de yapışabilirsiniz. ALM özelliklerinin çoğundan yararlanmıyorsanız TFS'yi kullanmanın pek bir anlamı yoktur.