3

我对 TFS 比较陌生,想知道其他人在有很多项目的地方组织 TFS​​ 吗?例如,有谁知道是否可以将 TFS 项目放在文件夹中,或者人们是否使用前缀/后缀?

4

3 回答 3

5

项目组织在很大程度上仍然是主观的,尽管这是我们在开始使用 Team Foundation Server 时都在努力解决的问题。ALM 文档很有帮助,实际上我建议使用更新版本的文档。您可以从Visual Studio TFS 分支指南 2010中的 CodePlex 获取它。即使您不打算进行分支,但在需要时能够这样做始终是一个明智的想法。

使用较早的指南和较新的指南,我有一个用作样板的结构。我将向您展示仅包括“Main”分支的结构,如果您使用分支,您可以理解“Main”下的所有内容最终都会根据需要为每个分支复制。

$/Team Project Root
    /Main
        /Documentation
            /Project A
                {XML Help support - such as Sandcastle projects}
            /Project B
                {XML Help support - such as Sandcastle projects}
        /References
            {3rd party and scripts to install any the GAC, as/if needed}
        /Source
            /Project A
              {Project file, and associated source}
            /Project B
              {Project file, and associated source}
        /Tests
            /Project A
              {Project file, and associated source}
            /Project B
              {Project file, and associated source}
        {Solution Files}

这对我们很有帮助,并且是一个指导方针。您必须准备好接受随着事情的变化以及您在组织内越来越多地使用该系统,您的需求也可能发生变化。让我简单地处理一下 Main 下的每个顶级文件夹:

  • 文档 - 我倾向于经常使用 Sandcastle 帮助文件生成器,并将文档项目提升到层次结构中自己的级别,就像源代码和测试一样。

  • 参考资料——我已经看到人们对程序集是否属于 Team Foundation Server 内部的争论持强烈的态度。我曾经反对,但发现这种文件夹结构不会经常改变,相关项目通常共享相当数量的相同引用,并且新开​​发人员应该能够一口气获得他们需要的所有东西来启动项目和运行。

  • 来源 - 非常不言自明。相关项目,每个都存储在自己的文件夹中。文件夹和项目都由它们的完整命名空间命名。

  • 测试 - 与源文件夹相同,但工件仅用于测试。通常 Source 中的“Project A”在 Tests 中有一个对应的“Project A”,并添加了一个 .Tests 作为命名空间的一部分。

我把所有的解决方案都放在了分支下,所以它是“一站式购物”到应用程序的多个视图中。我发现它可以避免必须始终在一个“大型解决方案”中工作。

至于分支,您可以根据需要添加它们,以免不堪重负。上面链接的指南在逐步引入分支方面做得非常好,我同意从简单结构开始的想法,并在需要时进行构建。我们使用的结构在生产项目中效果很好,也是我在个人项目中使用的结构。

于 2010-04-11T13:41:23.367 回答
0

我们使用了一种扩展 .Net 命名空间层次结构的方法,以指示相似的业务领域并将命名空间映射到文件夹结构。

命名空间:

Company.AreaA.Project1
Company.AreaA.Project2
Company.AreaB.Project3
Company.AreaB.Project4

文件夹:

$/Company/AreaA/Project1 
$/Company/AreaB/Project3

这种约定也在项目中继续存在。

于 2010-04-09T13:11:28.170 回答
0

当我第一次开始使用TFS 时,模式和实践:使用 Visual Studio Team Foundation Server进行团队开发指南很有帮助。您可以将每个项目放在顶层,然后在它们下面有另一个用于主干和分支的文件夹。

$/Project1
 $/ProjectTrunk
 $/ProjectBranch
$/Project2
 $/ProjectTrunk
 $/ProjectBranch

这只是指南中的众多示例之一。

于 2010-04-09T12:34:50.113 回答