En iyi yol: mevcut bir Team Foundation Server (TFS) çözümünü yeniden yapılandırın


12

Bölümümde bazı birleşik iletişim sunucusu için birkaç küçük AddOns geliştiriyoruz. Sürüm oluşturma ve dağıtılmış geliştirme için bir Team Foundation Server 2012 kullanıyoruz.

Ancak: tüm uygulamalarımız ve kütüphanelerimiz için tek bir büyük TFS çözümü vardır:

  • Ana Çözüm
    • Uygulamalar
      • Uygulama 1
      • Uygulama 2
      • Uygulama 3
    • dış görünüş
    • Kütüphaneler
      • Lib 1
      • Lib 2
    • Araçlar

"Uygulama" yolu tüm ana uygulamaları içerir. Bunlar birbirine bağlı değil, ancak Kütüphaneler ve Haricilar projelerine bağlı.

"Dışsallar" yolu, Uygulamalarımız ve Kütüphanelerimizde belirtilen bazı dış DLL'leri içerir.

Kütüphaneler yolu yaygın olarak kullanılan kütüphaneleri (UI şablonları, Yardımcı sınıflar, vb.) İçerir. Birbirlerine bağlı değildirler ve Kütüphaneler ve Araçlar projelerinde referans alırlar.

Araçlar yolu, kurulum yardımcıları, web hizmetlerini güncelleme vb. Gibi bazı yardımcı programlar içerir.

Şimdi, bu yapıyı değiştirmek istediğim bazı önemli noktalar var:

  • Sunucu derlemelerini kullanamayız.
  • TFS scrum yönetimini sprintler, engeller vb. İle böyle bir çözüm yapısıyla yönetmek rahatsız edici.
  • Her geliştirici her zaman çözümdeki tüm projelere erişebilir.
  • Biri Visual Studio'da yanlışlıkla [F6] tuşuna basarsa, tam bir yapı çok uzun sürer ...

Bu çözümde neyi değiştirmek isterdiniz? Bu projeleri nasıl daha küçük Çözümlere böldünüz, bu çözümler nasıl yapılandırılmalıdır.

İlk yaklaşımım, her bir Uygulama, Kütüphane ve Araç için bir TFS projesi oluşturmak olacaktır. Ancak, örneğin Uygulama 2'nin her zaman Lib 1'in en yeni sürümünü içermesini nasıl sağlayabilirim? Lib 1'deki değişiklikleri izlemem ve App 2'yi Lib değiştiğinde manuel olarak güncellemem gerekir mi? Veya bir şekilde Visual Studio'yu her zaman bir şekilde harici bir projenin en yeni sürümünü kullanmaya zorlayabilir miyim?

Düzenleme: TFS'de, bir TFS Takım Projesi içeren sadece bir TFS Takım Projesi Koleksiyonu vardır. Ekip Projesi, her biri birden fazla VS projesi içeren (yukarıdaki yapıya bakın) birkaç klasör içeren büyük bir Visual Studio Çözümü içerir.

Sorum şu: Nasıl yeniden organize edersiniz:

  1. TFS Ekibi Projeleri
  2. VS Projeleri

1
"Tek bir büyük TFS çözümü" dediğinizde, bir TFS Ekibi Proje Koleksiyonu veya bir TFS Ekibi Projesi veya bir Visual Studio çözümünden mi bahsediyorsunuz?
Zugbo

Zugbo'nun dediği gibi, TFS Takım Projelerini Visual Studio çözümleriyle karıştırıyor gibi göründüğünüz için, herkes buna cevap vermeden önce doğru terminolojiyi almanız gerektiğini düşünüyorum. Birden fazla çözüm içeren tek bir Takım Projeniz olabilir.
Tom Robinson

Çok az ayrıntı sağladığım için üzgünüm. İlk sorumu düzenleyeceğim.
dhh

Yanıtlar:


11

Bir TFS Takım Projesi ile devam edin, çoklu sürüme geçme, yükseltme yapmaya çalışırken bir acı haline gelir ve takımlar arası proje iş öğeleri söz konusu olduğunda bazı sınırlamaları vardır. Bunun yerine Alanlar ve Yinelemelerden yoğun şekilde yararlanmalısınız.

VS Çözümünüzü her büyük uygulama için bir tane olmak üzere birden fazla çözüme bölün. Bu, yerel sunucuları ve yapı sunucusunu çok hızlandıracaktır.

TFS2012, Teams adında yeni bir konsepte sahiptir, uygulama başına bir ekip oluşturur ve her biri için varsayılan yinelemeleri ve biriktirmeleri ayarlar. Bu şekilde, her biri için biriktirme listesini yönetebilir veya toplu bir biriktirme listesi görmek için kök ekibi görüntüleyebilirsiniz. Daha sonra sprint'leri uygulama düzeyinde veya genel olarak size uygun olana bağlı olarak yönetebilirsiniz.

Zaten bir tane olmayan 3. taraf başvurulan tüm kütüphaneler için NuGet paketleri oluşturun. Bunları özel bir depoda (windows paylaşılan klasör) saklayın ve her çözümü sağ tıklatıp etkinleştirerek NuGet için paket geri yükleme özelliğini etkinleştirin (ayrıca paket geri yüklemesinin paketleri vs ayarlarda indirmesine izin verin).

Paylaşılan dahili kitaplıklarınız varsa, bunlar için de NuGet paketleri oluşturun ve yalnızca bu kitaplığı içeren bir vs çözümü oluşturun. Nuget paketini oluşturmak için bir post derleme komutu ekleyin veya tfs derleme şablonunuzu bunu yapmak için uzatın (zaten bunu yapan birkaç şablon var).


+1 - daha fazlasını yapabilseydim. Repo yapısının uygulama yapısına bağlanması, uygulama yapısı değiştikçe sorunlar için bir reçetedir. Çözüm dosyalarının, Alanların ve Yinelemelerin 'yumuşak' ayrımı sınırlar olarak hizmet etsin ve paylaşmak için anlamlı olan şeyleri paylaşsın.
Telastyn
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.