巡航控制.Net与团队基础构建的比较

23

我们的团队正在建立夜间和持续集成构建。我们拥有Team Foundation Server,并且可以使用Team Foundation Build。我更熟悉CC.Net并倾向于使用它,但管理层看到花在TFS上的所有资金,并希望使用它。

关于CC.Net,我喜欢的一些方面是通知的灵活性以及实施自定义脚本的简易性。

如果您对这两个产品都有经验,您更喜欢哪个,为什么?


我可以给不喜欢的人点踩吗? :) - Brad Wilson
1
@whatknott - 这是一种廉价的方式来试图获取赞成票... - Steven Murawski
@Steven Murawski - 不是在争取得到投票,只是想防止出现50个单行回答。如果这让你感觉好些的话,我已经把它删除了。 - codeConcussion
5个回答

30

我两者都用过。我想这取决于你的组织注重什么。

既然您熟悉CC Net,我就不多说了。您已经知道它有什么酷的功能。

以下是我喜欢 Team Foundation Build 的原因:

  • 构建代理。很容易将任何计算机变成构建机并在其上运行构建。MSFT做对了。
  • 报告。所有相关的构建结果(包括测试)都存储在SQL数据库中,并通过SQL Server Reporting Services报告。这是一个非常强大的工具,可以在时间轴上绘制构建和测试结果的图表。CC Net没有内置此功能。
  • 您也可以通过MSBUILD进行类似的自定义。基本上与使用CC Net中的NAnt相同

以下是我讨厌 Team Foundation Build 的原因:

  • 构建代理必须安装VSTS Dev或Team Suite才能构建C++/CLI项目(或运行单元测试...?)。这太疯狂了。
  • 它必须连接到TFS Mothership

如果您所在的大型组织有很多老板,他们有巨大的预算并且喜欢报告(请别误会,这非常有价值),或者您需要扩展到多机构建农场,我更喜欢 Team Foundation Build。

如果您是一个小型的组织,请使用CC Net并开发您自己的报告解决方案。这就是我们所做的。

直到我们被收购。然后得到了TFS :P


13
我假设您拥有TFS并将使用它进行版本控制。在这种情况下,我会倾向于选择Team Foundation Build。话虽如此,我基本上同意Nick的观点。
我编写了CruiseControl.NET集成TFS。它可以很好地工作,并为您提供与您所习惯的相同的构建功能。对我来说,CC.NET的主要优点是它完全可扩展,并与所有主要SCM和构建系统集成。我编写CC.NET与TFS的集成主要是因为在TFS2005中,构建系统没有开箱即用的CI支持。然而,TFS2008版本得到了大大改进,团队继续积极改善它以用于TFS的未来版本。
切换到TFS Build的主要原因是它自动将构建信息报告回TFS,这有助于完成软件开发报告方面的完整图片。它还可以很好地与TFS的工作项跟踪部分和IDE(包括Visual Studio和Eclipse)集成。
话虽如此,如果您在Nant脚本方面投入巨资,这些脚本不仅编译和测试您的代码,而且还做更多的事情,或者您已经有了自己的报告解决方案,那么您可能需要坚持使用您已有的方案。

6
我为TFS编写了CruiseControl.NET集成插件...真爱 Stack Overflow,可以从编写你所查看的内容的人那里获取答案 :) - codeConcussion
这个项目有没有可能更新到TFS2010并支持覆盖检出选项? - Maslow

5
Team Foundation Build 真正的价值在于它将变更集和工作项与构建相关联。这样做可以实现以下几个有用的场景:
- 您可以查看工作项并找出它包含在哪个构建中。 - 您可以查看构建并查看其中包括了哪些代码更改(以及工作项)。 - 当然,还有基于这些信息构建的报告。但即使仅这些链接本身对非管理人员也是有用的。
请访问 www.tfsbuild.com 了解不同的 Team Build 配置“食谱”。

3
与CruiseControl.NET相比有何不同?我们使用Subversion,每个ccnet构建都显示上次成功构建之间的变更日志,并且自1.4.1版本起,在提交注释中也可以链接问题跟踪器(只要它们已经配置好)。 - si618

4

SVN是一个还不错的工具,但并非卓越无比。如果将SVN与TFS进行对比,就像是一辆福特皮卡车和一辆奔驰500,它能完成工作,但并不美观舒适,合并功能还有很多需要改进的地方。我更喜欢TFS的合并工具,因为它让我感觉分支开发人员就在身边帮助你,这就是它的智能之处。我们内部的SVN经常出现损坏的情况,这就是我们放弃它并转向TFS的原因,我们从未后悔过。对于敏捷开发团队来说,变更集的保留功能非常棒,我们目前有270多名工程师使用TFS,没有任何问题或困难,而SVN在没有问题的情况下无法处理那种负载。

我更喜欢CC.NET,仅仅是因为我们内部开发了一些工具来扩展报告和管理功能。虽然TFS构建非常紧密地集成了这些功能,但我们预计在升级到SQL 2008时会进行切换。


3
我们从2007年6月开始使用CruiseControl.net,它为我们提供了很好的服务。最好的一点是,它可以轻松集成SVN,这是一个更优秀的源代码控制工具。
因此,我们的设置如下:
- Cruise Control.Net - SVN - Trac - 用于错误报告和项目管理(与SVN完美集成) - nunit - 用于单元测试
我们有一些主要的并行开发,并且分支和合并的体验非常出色。如果您有选择,我建议选择上述设置!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接