【问题标题】:How do you set up your .NET development tree? [closed]您如何设置您的 .NET 开发树? [关闭]
【发布时间】:2010-09-09 10:53:29
【问题描述】:

您如何设置您的 .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 或安装任何第三方库。

对此有什么想法吗?

【问题讨论】:

    标签: c# .net development-environment


    【解决方案1】:

    我们使用的布局与 JP Boodhoo 题为 Directory Structure For Projects 的博文中介绍的非常相似。

    【讨论】:

    • 该链接位于某种注册墙后面。
    • 感谢您告诉我 - 博客已被移动 - 现在应该可以使用了。
    【解决方案2】:

    我们也使用 TreeSurgeon 并且对它非常满意。我们的结构如下:

    分支

    • 构建
    • 工具

    主干

    • 同上

    【讨论】:

      【解决方案3】:

      TreeSurgeon 是一个工具,它可以为您建立一个目录树,其中包含所有必需的依赖项和一个骨架 nant 文件。在该链接上,您还可以找到其原始创建者 Mike Roberts 的一系列博客文章,其中解释了 TreeSurgeon 为您提供的结构背后的一些深思熟虑的选择,例如为什么在 lib 和工具之间存在重复是可以的,为什么存在所有依赖项等很重要。

      我已经有一段时间没有使用它了,所以不记得我是否仍然同意它所做的所有选择,但我认为你不会有太大的错误。

      【讨论】:

        【解决方案4】:

        我们使用这样的结构:

        • 公司名称或核心项目名称
          • 分公司
            • 分支名称
              • CopyOfTrunk
          • 后备箱
            • 桌面
            • 引用程序集
            • 共享
            • 解决方案
            • 测试
            • 网站

        然后确保所有项目/解决方案文件仅使用相对路径并且分支运行良好。 Desktop/Webs 用于各自类型的项目,Test 用于任何单元测试项目,Solutions 文件夹为每个解决方案都有一个文件夹,其中只有解决方案文件。 ReferencedAssemblies 包含我们未包含在解决方案中的所有程序集(这些有时是我们每次构建解决方案时不想构建的本地项目或第三方程序集,如 rhinomocks 或 log4net 等。共享用于跨多个解决方案使用的任何核心库(数据访问、业务逻辑等)。

        【讨论】:

          【解决方案5】:

          我在项目中没有工具。工具位于网络共享中。是的,这些天磁盘空间很便宜,但是......来吧:)

          我在项目名称下面还有一个数据库脚本文件夹(当它是一个数据驱动的应用程序时)

          当然,如何设置并不重要,重要的是使用符合逻辑的有组织的标准来适应项目并遵守良好的纪律。无论您是单人还是团队,这都很有用。

          【讨论】:

          • 工具可以有不同的版本。如果您的旧项目依赖于该工具的版本 1,并且您决定升级到该工具的版本 2,则您需要升级所有旧项目以支持该工具的版本 2。将所有内容检查到源代码控制中,让生活变得更轻松。 :-)
          • 我完全同意 Fossmo。最初,我不喜欢在我创建的每个项目中复制工具二进制文件的想法。但它减少了您在这种情况下可能遇到的问题,并且磁盘成本确实非常低。
          • 不同版本也可以共享,所以不包括在项目树中并不意味着你必须升级。
          【解决方案6】:

          如果我正确理解您的结构,我认为您的开发树中将有许多与“工具”和“lib”相关的重复项。这些很可能是不同项目共享的外部工具和库。

          适合我们的是:
          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

          【讨论】:

            【解决方案7】:

            在我的工作地点,我们有多个项目,每个项目都有自己的子目录,如下所示: -proj1
            --proj1.csproj
            -proj2
            --proj2.csproj
            -proj3
            --proj3.csproj
            解决方案文件.sln

            您的设置的其余部分看起来不错,但我认为您应该弄清楚如何合并多个项目,例如多个解决方案之间的共享源库。

            【讨论】:

              【解决方案8】:
              猜你喜欢
              • 1970-01-01
              • 2010-09-13
              • 1970-01-01
              • 2011-02-25
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2010-09-06
              • 2018-01-05
              相关资源
              最近更新 更多