马丁·福勒(Martin Fowler)进行的小规模调查充分说明了前几年的TFS状况。“危险”是正确的。(我认为这是指无法识别VS外部所做的更改的方式,因此您可以创建WCF项目,然后使用外部svcutil工具创建客户端,然后检查所有更改。.但是TFS将很高兴忽略您的客户更改,因为它们不是在VS中进行的。
你要算成本:VS所需的版本,以获得的好东西-代码评审,例如,要求高级版是显著如果您通过MSDN获得VS更加昂贵。同样,非VS用户也可以访问系统,但是如果他们想要完整的访问权限而不是缩小的Web视图,则必须为他们提供CAL。TFS的总体成本可能很高。甚至是最近的Forrester报告(由Microsoft委托,因此您必须在这句话之间仔细阅读)说TFS需要大量的管理支持-需要2位顾问和6位管理员(他们花费了25%的时间)为他们对122位用户的案例研究提供支持(与这122位用户的4.5位管理员合作。与我在日常工作中设置并维护完整的SVN解决方案相比,这是很多东西)。TFS可以花很多精力来保持人们期望的工作。
根据我对TFS2012的经验(这是废话,不要忘记以前的版本),这是一个非常复杂的系统管理,尤其是如果您超出了预定义的设置。例如,如果您使用MSBuild来构建所有内容,那么就可以了。但是,例如,如果您有许多旧版本的.vdproj项目不受MSBuild支持,则必须编辑庞大的xaml构建脚本以使其构建这些项目。经过几天的工作之后,我能做的最好的事情就是通过将解决方案传递给devenv来重建解决方案,即使那样,也无法将生成结果输出到生成摘要中。使用NUnit进行测试的其他团队也得到了类似的结果-如果您使用内置的MSTest,则它可以工作。否则,您将被塞满。
作为用户,我发现集成更麻烦。我更喜欢TortoiseSVN,并且我几乎通过它完成了所有的SCM工作(因为它是一个很棒的工具)。使用TFS,您最终会在VS内部为每个操作创建一个新屏幕。因此,您的环境中为团队资源管理器提供了一个新选项卡,为构建提供了一个新选项卡,对于要查看的每个构建摘要也提供了一个新选项卡(如果要查看构建的详细信息,例如一个错误,点击太多链接)。我发现使用TFS时打开的文档数量超过了源文件!
签入同样适用,提交更改需要通过单击VS中“待更改”窗格上的几个选项卡来分配工作项并为签入添加注释。这是一件很小的事情,但是当我习惯于使用更简化的工具时,我感到很烦。
扩展构建系统是我发现的另一个不足。由于存在xaml配置,很难在构建中添加新功能,并且很难将这些功能的结果显示到构建屏幕中,或者是不可能的。因此,如果您喜欢添加诸如代码复杂性或静态分析之类的东西,或者甚至喜欢通过硒或部署进行自动测试等,那就算了吧。除非您在这些方面使用Microsoft工具(例如fxcop)。
更新工作流程是另外一个小问题-尽管强大的玩具提供了极大的帮助,但是正确设置工作流程仍然很尴尬,而且您仍然无法使用您真正想看到的信息来配置Scrum板-再一次,您将获得默认值或什么都没有。
合并也很痛苦,我认为MS为TFS采用git是一个很好的理由(请注意,这仅适用于全新的TFS项目,不能从TFS转换为git后端)。
因此,总的来说,它的工作效果还不错,但是我发现许多其他工具都更好。这些工具的缺点是它们没有完全集成在一起,但是恕我直言,这是一种优势,因为您可以选择所需的最佳钻头。使用TFS,您几乎可以得到别人想要您拥有的东西。如果您认为TFS中的错误系统不佳(我想您会发现),那么您将很难改用另一种系统。
应该将TFS与其他大型的全生命周期工具一起考虑。大多数开发人员讨厌这样的事情,因为他们不喜欢这些工具最终对他们施加的限制。
不过,我会尝试一下,下载30天试用版并安装。在评估时,请记住要在此处和此处进行一些更改,不要仅将其用于源代码签入,带必需工作项的签入并根据该工作项获取报告。尝试将签入分配给多个工作项,并尝试根据需要将工作项组合在一起。尝试将不同的东西合并到构建系统中,了解如何从报告服务中获取每日进度报告,将文档链接到工作流需求,并通过错误分类对它进行跟踪以进行编码以进行构建以进行重做然后发布。分支并合并很多。如果您不能轻松地完成所有这些事情,那么您最好还是坚持使用git。如果您不利用TFS的大多数ALM功能,那么使用TFS没有太多意义。