2008-09-16 41 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目录)
  • 工具

干线

  • 同上