我的建議是使用一個單一的項目在一個單一的集合,除非你有一個令人信服的理由不這樣做。
原因是,儘管TFS在很多方面看起來像一個大型文件系統,但有些東西在項目和集合邊界上效果不佳。根據我的經驗,將代碼放入不同的項目/集合中時,只有在代碼塊之間沒有(並且永遠不會存在)依賴關係時才能正常工作,因此您可以單獨處理單個項目/集合。
我們公司最初爲每個「真實」項目啓動了一個TFS項目,但我們經常遇到這樣的問題,直到我們將整個代碼庫重新組織爲包含3個項目的集合,包括文檔,資產和代碼三個不同的領域,沒有相互依賴關係)
在一個項目中,您仍然可以將代碼組織到文件夾中,所以IMO確實沒有太多意義使用不同的項目和集合,除非您對不同的代碼庫有不同的訪問/安全要求(如果他們沒有依賴性,這是不太可能的)。
另一種方法是使用您描述的3個集合,但通過在DefaultCollection中預先構建庫來提供共享的二進制文件存儲庫,以消除它們之間的「實時」依賴關係,您可以從該代碼鏈接到其他收藏。這也可以幫助進行版本控制,在這種情況下,庫代碼可以被更新,但是二進制文件不會立即合併到其他集合中,從而允許在其他集合上工作的團隊只有在適合庫代碼時纔會更新庫代碼。這可以幫助阻止由團隊B立即使用團隊A的變更所引起的問題。