【发布时间】:2010-04-09 11:48:28
【问题描述】:
我对 TFS 比较陌生,想知道其他人在有很多项目的情况下组织 TFS 吗?例如,有谁知道是否可以将 TFS 项目放在文件夹中,或者人们是否使用前缀/后缀?
【问题讨论】:
标签: tfs team-project
我对 TFS 比较陌生,想知道其他人在有很多项目的情况下组织 TFS 吗?例如,有谁知道是否可以将 TFS 项目放在文件夹中,或者人们是否使用前缀/后缀?
【问题讨论】:
标签: tfs team-project
项目组织在很大程度上仍然是主观的,尽管这是我们在开始使用 Team Foundation Server 时都在努力解决的问题。 ALM 文档很有帮助,实际上我建议使用更新版本的文档。您可以通过 Visual Studio TFS Branching Guide 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 内部的争论持强烈的态度。我曾经反对,但发现这种文件夹结构不会经常改变,相关项目通常共享相当数量的相同引用,并且新开发人员应该能够一口气获得他们需要的所有东西来启动项目并运行。
来源 - 不言自明。相关项目,每个都存储在自己的文件夹中。文件夹和项目都由它们的完整命名空间命名。
Tests - 与源文件夹相同,但工件仅用于测试。通常 Source 中的“Project A”在 Tests 中有对应的“Project A”,并添加了一个 .Tests 作为命名空间的一部分。
我把所有的解决方案都放在了分支下,所以它是“一站式购物”到应用程序的多个视图中。我发现它可以避免必须始终在一个“大型解决方案”中工作。
至于分支,您可以根据需要添加它们,以免不堪重负。上面链接的指南在逐步引入分支方面做得非常好,我同意从简单结构开始的想法,并在需求决定时构建。我们使用的结构在生产项目中效果很好,也是我在个人项目中使用的结构。
【讨论】:
当我第一次开始使用 TFS the Patterns & practices: Team Development with Visual Studio Team Foundation Server 时,指南很有帮助。您可以将每个项目放在顶层,然后在它们下面有另一个文件夹用于主干和分支。
$/Project1
$/ProjectTrunk
$/ProjectBranch
$/Project2
$/ProjectTrunk
$/ProjectBranch
这只是指南中的众多示例之一。
【讨论】:
我们使用了一种扩展 .Net 命名空间层次结构的方法来指示相似的业务领域并将命名空间映射到文件夹结构。
命名空间:
Company.AreaA.Project1
Company.AreaA.Project2
Company.AreaB.Project3
Company.AreaB.Project4
文件夹:
$/Company/AreaA/Project1
$/Company/AreaB/Project3
这个约定也在项目中继续存在。
【讨论】: