原文: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. EL表达式语言

    EL (Expression Language) 目的:为了使JSP写起来更加简单.表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法. ...

  2. c++指针存储应用程序和释放内存的问题

    C++中指针在new和delete操作的时候对内存堆都做了些什么呢.下面解: 1.指针的new操作: 指针在new之后,会在内存堆中分配一个空间.而指针中存放的是这个空间的地址.如: void mai ...

  3. [cocos2dx注意事项009]试用quick-cocos2dx-2.2.4

    quick-cocos2d-x 在中国站http://quick.cocoachina.com/?page_id=40,用他们自己的话说:quick-cocos2d-x(后文简称 quick)与 co ...

  4. HTML DOM的nodeName,nodeValue,nodeType介绍

    将HTML DOM中几个常用的属性做下介绍,工作中作为参考. nodeName 属性可依据节点的类型返回其名称. 元素节点的 nodeName 是标签名称 属性节点的 nodeName 是属性名称 文 ...

  5. 小程序大智慧,sqlserver 注释提取工具

    原文:小程序大智慧,sqlserver 注释提取工具 开篇背景 我习惯在写表的创建脚本时将注释直接写在脚本里,比如 /*账套*/ CREATE TABLE [dbo].[AccountingBook] ...

  6. UML九种图汇总

    UML视频读,该文件开始起草.我不知道如何下手啊!我想先UML九图和总结的关系,然后开始用它的文件. 首先在地图上. UML的九种图各自是:用例图.类图.对象图.状态图.活动图.协作图.序列图.组件图 ...

  7. CSharp设计模式读书笔记(17):迭代器模式(学习难度:★★★☆☆,使用频率:★★★★★)

    迭代器模式(Iterator Pattern):提供一种方法来访问聚合对象,而不用暴露这个对象的内部表示,其别名为游标(Cursor). 模式角色与结构: 实现代码: using System; us ...

  8. 百度地图API详解之事件机制,function“闭包”解决for循环和监听器冲突的问题:

    原文:百度地图API详解之事件机制,function"闭包"解决for循环和监听器冲突的问题: 百度地图API详解之事件机制 2011年07月26日 星期二 下午 04:06 和D ...

  9. poj 2828 Buy Tickets(树状数组 | 线段树)

    题目链接:poj 2828 Buy Tickets 题目大意:给定N,表示有个人,给定每一个人站入的位置,以及这个人的权值,如今按队列的顺序输出每一个人的权值. 解题思路:第K大元素,非常巧妙,将人入 ...

  10. FTP下载帮助类

    using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Net ...