2008-09-16 45 views
15

你如何設置你的.NET開發樹?我使用這樣的結構:你如何設置你的.NET開發樹?

-projectname 
--config (where I put the configuration files) 
--doc (where I put all the document concerning the project: e-mails, documentation) 
--tools (all the tools I use: Nunit, Moq) 
--lib (all the libraries used by the solution: ninject or autofac) 
--src 
---app (sourcefiles) 
---test (unittests) 
solutionfile.sln 
build.csproj 

標記「 - 」標記目錄。

我覺得在這個東西上有一個很好的結構是非常重要的。您應該能夠從源代碼管理系統獲取源代碼,然後在不打開Visual Studio或安裝任何第三方庫的情況下構建解決方案。

對此有何看法?

回答

8

我們使用了一個非常類似的佈局覆蓋JP布杜的題爲Directory Structure For Projects博客文章。

+0

該鏈接的背後是某種的註冊牆。 – 2009-08-07 00:56:16

+0

感謝您告訴我 - 博客已被移動 - 現在應該可以工作。 – BigJump 2009-08-16 08:55:27

0

在我工作的地方,我們有多個項目,其中每個項目都有自己的子目錄,像這樣: -proj1
--proj1.csproj
-proj2
--proj2.csproj
-proj3
--proj3.csproj
solutionfile.sln

您設置的其餘部分看起來不錯,但我認爲你應該弄清楚你將如何納入多個項目,例如共享源代碼庫中的多個解決方案之間。

0

如果我正確理解你的結構,我想你的開發樹中會有很多與「工具」和「庫」相關的重複項。很可能這些是可能由不同項目共享的外部工具和庫。

東西對我們工作得很好是:
solutionfile.sln
-src
--projectname
---config
---doc
---source files (structure representing namespaces)
-test
--testprojectname (usually, a test project per source project)
---unit test files (structure mirroing the structure in the source project)
-lib
--libraryname (containing the libraries)
-tools

0

我沒有在項目中的工具。工具位於網絡共享中。是的磁盤空間是便宜,但這些天...加油:)

另外我有以下項目名稱(當它是一個數據驅動的應用程序)

當然它不那麼重要了如何數據庫腳本文件夾你已經建立起來了,但是一個符合邏輯的組織標準被用來適應項目並遵守良好的紀律。無論你是獨奏還是團隊,這都很有用。

1

我們使用的結構是這樣的:

  • CompanyNameOrCoreProjectName
    • 分公司
      • BRANCHNAME
        • CopyOfTrunk
    • 幹線
      • 桌面
      • ReferencedAssemblies
      • 共享
      • 解決方案
      • 測試
      • 站點

然後只要確保所有的項目/解決方案文件只使用相對路徑和分支工作。 Desktop/Web適用於各種類型的項目,Test適用於任何單元測試項目,Solutions文件夾僅爲解決方案文件提供每個解決方案的文件夾。 ReferencedAssemblies包含我們不包含在解決方案中的所有程序集(有時候我們不想在每次構建解決方案或第三方程序集(如rhinomocks或log4net等)時構建本地項目)。Shared是for任何在幾個解決方案中使用的核心庫(數據訪問,業務邏輯等)

2

TreeSurgeon是一個爲您設置目錄樹的工具,具有所有必需的依賴關係和骨架nant文件。在那個鏈接上,你還可以找到它的原創者Mike Roberts發佈的一系列博客帖子,解釋TreeSurgeon爲你提供的結構背後的一些有意選擇,例如爲什麼在lib和工具之間有重複是可以的,爲什麼它很重要有所有依賴關係等。

我一段時間都沒有用過它,所以不記得我是否仍然同意它所做的所有選擇,但是我認爲你不會有太大的錯誤。

0

我們也使用TreeSurgeon並對它很滿意。我們的結構是這樣的:

分公司

  • 構建
  • LIB
  • SRC的應用,測試,分貝遷移等
    • < 各種SRC目錄)
  • 工具

幹線

  • 同上