Sunday, December 21, 2014

Jetbrains TeamCity vs. Team Foundation Build

If you are already using Team Foundation Server, you may wonder whether it is better to simply use Team Foundation Build or use an alternative Continuous Integration build platform such as Jetbrains TeamCity.

Here is a brief comparison of the 2 platforms that you can use to evaluate in making your decision:

  1. Jetbrains TeamCity is a Java-based platform that runs completely on the Web.  Team Foundation Build is a .NET/Windows Workfow based platform that largely needs to be configured and managed through the Visual Studio IDE.
  2. Jetbrains TeamCity can be set up and running in less than an hour with most build processes, while Team Foundation Build can take considerably longer if you are doing anything more complex than building your solution and running your Unit Tests.
  3. Jetbrains TeamCity is overall simpler to use and much more readily customizable than Team Foundation Build.  It also integrates well with a large variety of 3rd party plugins which are simply not available to Team Foundation Build.
  4. Team Foundation Build has a feature called Gated Check-In which prevents checking in code which breaks the build, while Jetbrains TeamCity has a pre-tested commit feature.
  5. Jetbrains TeamCity has a build definition dependency feature which allows triggering one build based on the output of another build definition.  Team Foundation Build has yet to introduce this feature even in Team Foundation Build 2013.
  6. Jetbrains TeamCity provides some handy features such as built-in runners for FxCop and bundled code coverage tools such as dotCover which allow you to overcome Visual Studio edition limitations. For example, if you are only licensed to use Visual Studio Professional Edition, you will not be able to run Code Coverage on the Unit Tests on your solution without Visual Studio Premium Edition.  However, if you are running a CI Server such as Jetbrains TeamCity, you will still be able to obtain Code Coverage reports from your CI Builds.
  7. Jetbrains TeamCity upgrades are relatively painless while Team Foundation Build upgrades can be quite time consuming depending on how many customizations were made to the original TFS Build Process templates.
Overall, unless you ABSOLUTELY need the features and functionality of Team Foundation Build, I would recommend using Jetbrains TeamCity since it is far easier and more intuitive to get up and running.  Because it is entirely web based, it is much easier to manage and maintain as a development team as well.

If you need the features of Team Foundation Build but also like what Jetbrains TeamCity has to offer, then you may be able to take an approach of combining the 2 solutions to meet your needs.  You can use Team Foundation Build for many of your mainstream build processes such as building solutions and running Unit Tests while leveraging Jetbrains TeamCity for any major customization tasks such as Web.config transformations, Deploy operations, Code Analysis, Code Metrics, Code Coverage etc. This approach allows to easily manage upgrades to Team Foundation Server without fear of losing all of your existing build customizations while continuing to maintain an existing CI Build Server through your upgrade process.

No comments:

Post a Comment