原文:http://www.excella.com/insights/teamcity-vs-jenkins-better-continuous-integration-server

So, you’re getting ready to install a continuous integration (CI) server for a .NET project, you’ve done your research and now you want to know:  Which is better for .NET software development, TeamCity or Jenkins?

Let’s start at the beginning…

The CI Server

At the heart of CI is the tool and technology of the CI server.  The CI server is an application, usually running in the background as a Window service, which initiates, executes, and reports on all the processes of the CI lifecycle.

The CI server provides key capabilities such as:

  • Integrating with and monitoring the version control system
  • Triggering events, such as on source code commits, on a schedule or in sequence
  • Running build automation and deployment scripts
  • Running tests
  • Performing analysis
  • Providing notification, status messages, and build logs
  • Storing artifacts and related output

There are many CI servers available, however, TeamCity and Jenkins are two widely-used CI servers, both of which are worth evaluating.

Jenkins

Jenkins is a Java-based CI server package.  It is commonly used for Java projects but is suited for .NET projects because Jenkins can work with many common .NET version control systems, can run MSBuild scripts, and has a very active plug-in development community.  In general, much of what any CI server does is not .NET specific.  The primary component of Jenkins is the server, which runs within a Java servlet container, such as Apache Tomcat.

Jenkins is easy to install and use; the fact that it is Java-based should not represent an impediment to .NET development shops.  Jenkins provides an impressive browser-hosted project management dashboard.

For those familiar with using Jenkins for Java development, the advantage is in using a familiar technology.

Some of the reasons to evaluate and choose Jenkins include:

  • Free and open source
  • Widely-used and well documented
  • Integration with a wide variety of tools and technologies
  • Vibrant user community

TeamCity

TeamCity is also a Java-based CI server package.  The TeamCity installation and configuration is quick and easy.  The fact that it is Java-based should not be an impediment to .NET development shops.  The TeamCity server is a main component, but the browser-hosted interface serves as the primary way to administer TeamCity users, agents, projects, and build configurations.

The TeamCity browser-hosted dashboard is superb.  It provides project status and reporting information suitable for a broad range of users and project stakeholders.  It provides build progress, drill down detail, and history information on the projects and configurations.

With TeamCity there is a system tray utility to provide feedback on build status and progress.  The tray utility is useful so build notifications are received in the tray instead of by e-mail.  The TeamCity tray application notifies on events such as whether the most recent build was successful or failed.

There are a lot of good reasons to choose TeamCity.  The product is very well documented and there are a lot of examples and tutorials available.  Out on the Internet there are many postings ranging from setting up basic CI with TeamCity to advanced topics such as using TeamCity’s built-in NUnit test runner.

Some other reasons to choose TeamCity include:

  • Easy to setup, use, and configure
  • Widely-used and well documented
  • Integration with a wide variety of tools and technologies
  • Professional Server is free for up to 20 build configurations.

Note that you can run as many instances of Professional Edition Server as needed.  Larger organizations may require the purchase of the Enterprise Server version.

That’s All Great, But Who Do You Recommend?

Often times when a client asks for my recommendation I recommend TeamCity.  There are many important .NET tools integrated and included with TeamCity, such as code coverage analysis, several .NET testing frameworks, and static code analysis.  In fact, there are so many of these products included in the free Professional Server version that it makes setup very straightforward and you can expect to accomplish more in a shorter period of time.

Note: Jenkins was previously the Hudson CI server.  After Oracle’s acquisition of Sun, the source code was forked and Oracle continues development under the Hudson name.

Source: Stephen Ritchie, Pro .NET Best Practices (New York: Apress, 2011). Excerpted with permission of the author.

TeamCity vs Jenkins: Which is the Better Continuous Integration (CI) Server for .NET Software Development?的更多相关文章

  1. Continuous Integration with Selenium

    I have seen a lot of queries from people who basically want to know how to blend Selenium, Maven, an ...

  2. DevOps - 持续集成(Continuous Integration)

    1 - 持续集成简介 持续集成(Continuous integration,简称CI)是软件的开发和发布标准流程中最重要的部分. 作为一种开发实践,在CI中可以通过自动化等手段高频率地去获取产品反馈 ...

  3. 关于CI/CD/CD (Continuous Integration/Continuous Delivery/Continuous Deployment)

    Continuous Integration (CI) Continuous integration (CI) is the process that ensures the stability of ...

  4. What is Continuous Integration?

    什么叫持续集成? 原文: https://docs.microsoft.com/en-us/azure/devops/what-is-continuous-integration ---------- ...

  5. Integrating Jenkins and Apache Tomcat for Continuous Deployment

    Installation via Maven WAR Overlay - Jenkins - Jenkins Wikihttps://wiki.jenkins.io/display/JENKINS/I ...

  6. Jenkins实现CI(Continuous Integration)到CD(Continuous Delivery)

    Pipeline as Code是2.0的精髓所在,是帮助Jenkins实现CI(Continuous Integration)到CD(Continuous Delivery)华丽转身的关键推手.所谓 ...

  7. 持续集成(Continuous Integration)基本概念与实践

    本文由Markdown语法编辑器编辑完成. From https://blog.csdn.net/inter_peng/article/details/53131831 1. 持续集成的概念 持续集成 ...

  8. 《Continuous Integration》读书笔记

    Trigger a Build whenever a change occurs. it can help us reduce assumptions on a projecvt by rebuild ...

  9. [转]GitLab Continuous Integration (GitLab CI/CD)

    本文转自:https://docs.gitlab.com/ee/ci/README.html GitLab Continuous Integration (GitLab CI/CD) The bene ...

随机推荐

  1. 玩转Linux之- CentOS 7.0,启用iptables防火墙

    原文 玩转Linux之- CentOS 7.0,启用iptables防火墙 CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall:sy ...

  2. Linux学习笔记——举例说,makefile 添加宏定义

    0.前言     从学习C语言開始就慢慢開始接触makefile,查阅了非常多的makefile的资料但总感觉没有真正掌握makefile.假设自己动手写一个makefile总认为非常吃力. 所以特意 ...

  3. 使用reserve要再次避免不必要的分配

     关于STL容器,最了不起的一点是,它们会自己主动增长以便容纳下你放入当中的数据,仅仅要没有超出它们的最大限制就能够.对于vector和string,增长过程是这样来实现的:每当须要很多其它空间时 ...

  4. 苹果公司的新的编程语言 Swift 高级语言()两--基本数据类型

    一  .   常量和变量 Swift语言 对常量和变量的声明进行了明白的区分 Swift语言的常量类型比C 语言的constants类型更加强大,语义更加明白. 常量和变量的差别是常量在设置或初始化后 ...

  5. Oracle内存管理(五)

    [深度分析--eygle]学习笔记 1.4. 2其他内存组件 Large Pool-大池是SGA的一个可选组件,通经常使用于共享server模式(MTS). 并行计算或 RMAN的备份恢复等操作. J ...

  6. 一款非常棒的纯CSS3 3D菜单演示及制作教程

    原文:一款非常棒的纯CSS3 3D菜单演示及制作教程 这段时间比较忙,很久没在这里分享一些漂亮的HTML5和CSS3资源了,今天起的早,看到一款很不错的CSS3 3D菜单,觉得非常上眼,就将它分享给大 ...

  7. 大话设计模式C++达到-文章16章-国家模式

    一.UML画画 二.概念 状态模式(State):当一个对象的内在状态改变时同意改变其行为.这个对象看起来像是改变了其类. 三.说明 以下是来自书本和网络的对状态模式的定义和分析: (1)状态模式同意 ...

  8. crm操作安全角色

    using System;     using Microsoft.Xrm.Sdk;     using Microsoft.Crm.Sdk.Messages;     using System.Co ...

  9. 通用Key-Value存储系统的存储管理策略解析

            Key-Value存储作为NoSQL存储的一种常见方式,提供了比SQL数据库更好的可扩展性和读写性能. 比方当前开源最热门的Memcached和Redis:淘宝的Tair.腾讯的Cme ...

  10. 【百度地图API】北京周边7日游——图标按路线轨迹行动

    原文:[百度地图API]北京周边7日游--图标按路线轨迹行动 任务描述: 春节就要来啦~酸奶小妹的妈妈要从遥远的重庆,来到北京过春节呢!酸奶小妹忙着给妈妈计划,北京周边的旅游线路.计划好路线后,就开始 ...