0

还有许多与此主题相关的其他问题:

  1. 什么是 php 应用程序的良好标准代码布局(已删除)
  2. 如何构建 Java 应用程序,换句话说:我在哪里放置我的类?
  3. 推荐的源代码管理目录结构?
  4. 版本控制中的项目结构

我找不到任何特定于 VSTF 的东西,它具有团队构建、集成单元测试等功能。我想知道这些功能是否会导致稍微不同的源布局建议。

请发布您幸运的高级目录结构示例,并解释您喜欢它们的原因。我会让人们对“最佳”方法进行投票,几天后我会给出答案。

4

2 回答 2

1

这是我喜欢的一个:

  • 私人; 所有当前的系统可交付成果
    • 文件;构成产品的解决方案中所有文档的汇总,输出将是 Sandcastle 的 MSDN 样式文档
    • 常见的;Visual Studio SLN 包含所有其他解决方案通用的所有项目。
    • 工具;Visual Studio SLN 包含其输出为工具的所有项目。示例可能是在较大系统上执行一组管理任务的控制台应用程序
    • 开发商;每个开发人员都有自己的文件夹,他们可以用来存储他们想要的任何东西
      • 特定开发者 (1..n) ; 这包含此特定开发人员选择存储在源代码控制系统中的任何构建设置、脚本和工具(他们可以在这里做任何他们想做的事情)
    • 具体交付解决方案(1..n);包含特定主要可交付成果的所有项目的 Visual Studio SLN
      • 常见的;包含在当前解决方案中共享的 Visual Studio 项目的解决方案文件夹
      • 用户界面;包含定义用户体验的 Visual Studio 项目的解决方案文件夹
      • 数据层;包含定义数据访问层的 Visual Studio 项目的解决方案文件夹
      • 服务;包含定义 Web 服务的 Visual Studio 项目的解决方案文件夹
      • 工具;包含 Visual Studio 项目的解决方案文件夹,这些项目定义了特定于此交付物的工具(可执行实用程序)
      • 测试;包含包含单元测试的 Visual Studio 项目的解决方案文件夹
  • 公共; 与系统相关的所有外部依赖项(例如 3rd 方库)
    • 供应商;特定供应商提供的依赖项
  • 建立;包含与项目构建相关的代码的 Visual Studio SLN,在我们的例子中主要是自定义 MSBuild 任务和 Powershell 脚本
  • 目标;产品的每次成功构建以及点发布
    • 调试;从每周构建和持续集成输出的所有调试构建。开发者不用手动管理这个目录
      • 内部编号;与当前内部版本号对应的目录
        • 解决方案输出;包含给定解决方案中每个项目的所有构建输出的目录
    • 释放;达到里程碑时手动输出的所有发布版本
      • 内部编号;与当前内部版本号对应的目录
        • 解决方案输出;包含给定解决方案中每个项目的所有构建输出的目录

注意:所有解决方案都有一个 Tests 文件夹和单元测试项目。

于 2008-09-19T01:00:35.420 回答
1

一些想法:

  • 树根中的文件很少。在大型团队中,设置权限,以便没有人可以在没有某种授权的情况下将新文件添加到树的根目录。

默认工作区将包含:

  • 工具包含构建和运行单元测试所需的所有可执行代码,包括您的自定义工具和脚本(可能假设机器上已经安装了 Visual Studio 和 PowerShell)。

  • ReferencedAssemblies包含您从其他地方获取的内容,包括您购买或下载的内容以及团队中某人编写但不属于该项目的内容。

    • 如果可用,源代码也应该在此处,以便您自己维护。(如果不可用,您将承担很大的风险。)
  • Source - 所有源代码,包括项目文件。

  • 文档- 不作为构建的一部分使用的项目,但对于开发工作的正常运行是必需的。

  • 二进制文件- 已发送给客户的位,包括 .PDB 和其他服务所需的工件。(在小型项目中,我为每个版本分配源代码,但通常标签/标签是更好的选择。)


在其他地方(例如 $/personal),每个人都可以随心所欲地处理($/personal/USERNAME)。例如,我的副项目放在这里。

于 2008-12-29T07:04:18.040 回答