Cara terbaik: merestrukturisasi solusi Team Foundation Server (TFS) yang ada

12

Di departemen saya, kami sedang mengembangkan beberapa AddOns yang lebih kecil untuk beberapa server komunikasi terpadu. Untuk pengembangan versi dan distribusi kami menggunakan Team Foundation Server 2012.

Tetapi: hanya ada satu solusi TFS besar untuk semua aplikasi dan perpustakaan kami:

  • Solusi Utama
    • Aplikasi
      • Aplikasi 1
      • Aplikasi 2
      • Aplikasi 3
    • Eksternal
    • Perpustakaan
      • Lib 1
      • Lib 2
    • Alat

Jalur "Aplikasi" berisi semua aplikasi utama. Itu tidak tergantung satu sama lain, tetapi mereka bergantung pada proyek Perpustakaan dan Eksternal.

Jalur "Eksternal" berisi beberapa DLL eksternal yang dirujuk dalam Aplikasi dan Perpustakaan kami.

Jalur Perpustakaan berisi lib yang umum digunakan (templat UI, kelas Helper, dll.). Mereka tidak saling bergantung dan direferensikan di proyek Library and Tools.

Jalur Alat berisi beberapa program bantuan seperti bantuan pengaturan, perbarui layanan web, dll.

Sekarang, ada beberapa poin utama mengapa saya ingin mengubah struktur ini:

  • Kami tidak dapat menggunakan server build.
  • Tidak nyaman untuk mengelola manajemen scrum TFS dengan sprint, hambatan, dll. Dengan struktur solusi seperti itu.
  • Setiap pengembang selalu memiliki akses ke semua proyek dalam solusi.
  • Pembuatan lengkap berlangsung terlalu lama jika seseorang secara tidak sengaja mencapai [F6] di Visual Studio ...

Apa yang akan Anda ubah dalam solusi ini? Bagaimana Anda memecah proyek-proyek tersebut menjadi Solusi yang lebih kecil, bagaimana seharusnya solusi tersebut disusun.

Pendekatan pertama saya adalah, untuk membuat satu proyek TFS untuk setiap Aplikasi, Perpustakaan dan Alat. Tetapi bagaimana saya bisa memastikan bahwa mis. Aplikasi 2 selalu berisi versi terbaru dari Lib 1? Apakah saya harus memantau perubahan pada Lib 1 dan memperbarui App 2 secara manual segera setelah Lib berubah? Atau bisakah saya memaksa Visual Studio untuk selalu menggunakan versi terbaru dari proyek eksternal?

Sunting: Di TFS, hanya ada satu Koleksi Proyek Tim TFS, yang mengandung satu Proyek Tim TFS. Proyek Tim berisi satu Solusi Visual Studio besar, yang berisi beberapa folder yang berisi (lihat struktur di atas) dengan masing-masing berisi beberapa proyek VS.

Pertanyaan saya sekarang, bagaimana Anda mengatur ulang:

  1. Proyek Tim TFS
  2. Proyek VS
dhh
sumber
1
Ketika Anda mengatakan "satu solusi TFS besar", apakah Anda berbicara tentang Pengumpulan Proyek Tim TFS, atau Proyek Tim TFS, atau solusi Visual Studio?
Zugbo
Seperti yang dikatakan Zugbo, saya pikir Anda perlu mendapatkan terminologi yang tepat sebelum ada yang bisa membantu menjawab ini, karena Anda sepertinya mencampuradukkan Proyek Tim TFS dengan solusi Visual Studio. Anda dapat memiliki Proyek Tim tunggal dengan beberapa solusi.
Tom Robinson
Maaf karena terlalu detail. Saya akan mengedit pertanyaan awal saya.
dhh

Jawaban:

11

Tetap dengan satu Proyek Tim TFS, memiliki banyak menjadi menyulitkan ketika mencoba untuk meningkatkan dan memiliki beberapa keterbatasan ketika datang ke item pekerjaan proyek lintas tim. Sebaliknya, Anda harus menggunakan Area dan Iterasi secara berat.

Bagi Solusi VS Anda menjadi beberapa solusi, satu per aplikasi utama. Ini akan mempercepat pembangunan lokal banyak, serta membangun server.

TFS2012 memiliki konsep baru yang disebut Tim, membuat tim per aplikasi dan mengatur iterasi dan backlog default untuk masing-masing. Dengan cara ini Anda dapat mengelola jaminan simpanan untuk masing-masing, atau melihat tim root untuk melihat jaminan simpanan. Kemudian Anda dapat mengelola sprint di tingkat aplikasi, atau keseluruhan tergantung pada apa yang cocok untuk Anda.

Buat paket NuGet untuk semua pustaka referensi pihak ke-3 yang belum memilikinya. Simpan mereka di repositori pribadi (folder bersama windows) dan aktifkan fitur pemulihan paket untuk NuGet dengan mengklik kanan setiap solusi dan mengaktifkannya (juga memungkinkan pengembalian paket untuk mengunduh paket dalam pengaturan vs).

Jika Anda memiliki pustaka internal bersama, buat juga paket NuGet untuknya, dan buat solusi vs yang hanya berisi pustaka itu. Tambahkan perintah post build untuk membuat paket nuget, atau perpanjang tfs build template Anda untuk melakukannya (ada sejumlah template di luar sana yang sudah melakukan ini).

Betty
sumber
+1 - berharap saya bisa membuatnya lebih. Mengikat struktur repo ke struktur aplikasi adalah resep untuk masalah ketika struktur aplikasi berubah. Biarkan pemisahan 'lunak' file Solusi, Area, dan Iterasi berfungsi sebagai batas dan bagikan apa yang masuk akal untuk dibagikan.
Telastyn