2009-06-15 120 views
28

我們想組織我們的大項目是這樣的:爲Visual Studio解決方案的命名約定和項目

 
\trunk 
    [CompanyName] 
    [Product1] 
     [Project1] 
      CompanyName.Product1.Project1.csproj 
     [Project2] 
      CompanyName.Product1.Project2.csproj 
     CompanyName.Product1.sln 
    [Product2] 

我們試圖按照微軟的建議,即命名空間名稱遵循文件夾結構,但沒有作出任何缺點這樣呢? 您應用的解決方案和項目的命名約定是什麼?

回答

9

如果你問我,這看起來不錯。特別是以全名命名你的項目,包括全名空間部分。當有許多項目時,我發現這很有幫助,特別是如果碰巧有不同產品的類似項目。

如何以及是否拆分產品和項目(其中我承擔項目更像是不是一個解決方案項目的應用)是非常下降到您的組織的規模,這是化妝和你的喜好。

1

看起來像從學校的書。這通常是我的解決方案如何建立起來的,而且我發現它多年來運行良好。

0

對我很好。

這是一個一點要注意,在默認情況下,在Visual Studio項目的默認命名空間就是項目名稱。當然,這表明命名你的項目像你的名字空間是「Visual Studio的方式」。

解決方案最自然地以產品/項目命名。像你指出的那樣。

1

對於文件名 - 我喜歡我的項目文件名,因爲它使得它更容易知道什麼生產什麼匹配輸出程序集名稱。做一個目錄列表要比在一棵樹中搜索csproj文件快得多,因爲它生成我所關心的程序集。

我沒有得到調動起來的解決方案文件,因爲它們讓我最終使我自己有確切的範圍我想(和具體的每個解決方案項目,如測試元數據不會影響我們的編譯環境,我想要的)。

對於文件夾結構 - 我不擔心太多,如果領導下的項目文件的文件夾相匹配的命名空間。我希望我的代碼能夠以對項目最有意義的方式坐在磁盤上。有時這意味着測試代碼和產品代碼位於兄弟目錄中 - 有時這意味着它們之間的距離會更遠。有時候有一個由多個團隊貢獻的名稱空間(不是主張設計,只是一個現實) - 但是這些團隊無論出於何種原因都想在自己的文件夾中生活。

不要忘記版本控制分支策略在整個項目設計中的重要性。公司和產品邊界可能是分支機構,因此不一定需要表示爲磁盤上的目錄。

不要讓這成爲分析癱瘓的來源。做出合理的選擇。使用版本控制。如果你錯了,你可以隨時改變。

3

我用過的另一種方法是將我的所有解決方案文件放在同一個目錄中。

\trunk 
    [CompanyName] 
    CompanyName.Product1.sln 
    CompanyName.Product2.sln 
    [Product1] 
     [Project1] 
      CompanyName.Product1.Project1.csproj 
     [Project2] 
      CompanyName.Product1.Project2.csproj 
    [Product2] 
     [Project3] 
      CompanyName.Product2.Project3.csproj 
相關問題