Nant, Cruise Control .Net and the rest of the gang

Time for a new post. After writing a while back about tools you can use as a single developer to enhance your work with the Visual Studio IDE, today I want to write about my experience with tools to optimise the build and integration process. The first thing is Nant, the .Net Version of Ant an open source build tool. The usage is straight forward so just take a look the WebSites Documentation to get things started with Nant. The solution task is quite useful to simple build your visual studio solution with Nant. Visual Studio 2005 solutions aren’t supported yet. Nant don’t require Visual Studio though. It also provides specific task to run Nunit unit tests. I prefer to use the exec task to run the nunit-console. It’s more flexible between version changes, because the nuint task might not support the latest version. If you looking for additional build tasks you should take a look into NantContrib. To integrate Nant into the VS IDE you can use NantRunner or NantAddin for the 2005 Version. Than you just have to click on the targets you want to build to start the Nant build process.

To get things to the next level with continuous integration I use CruiseControl.Net (CCNet). It’s the .Net pendant of the Java CruiseControl. It checks a repository for changes and run a new build if necessary to integrate the sourcecode. During the integration process you can also run unit tests, coverage analysis, coding guidelines and what else you need to ensure your code quality. CCNet still has problem to make a clean checkout from a Subversion repository. So you have to clean the working directory manually and run a checkout. In the ccnet.config you can configure your projects, run builds e.g. with the nant task and collect artefacts to integrate them into the build report with the file merge task. By default it already offers integration for Nunit, Ncover, Fxcop and Simian artefacts. To sum things up its pretty easy to get things up and running.

3 Responses to “Nant, Cruise Control .Net and the rest of the gang”

  1. alex Says:

    it should be noted that what you are talking about is actually called continuous integration and that there is a very good article about it by martin fowler.

    an alternative to (n)ant considered more powerful and flexible is by many is rake, a build language implemented in ruby. (fowler article on rake)

  2. Administrator Says:

    I pointed it out, that this is continuous integration, but funny to see that we read the same articles :)

  3. FreakLikeMe » Blog Archive » Continous Integration for Ruby with Cruise Control Says:

    [...] Since I work on a Rails project, I missed the the painless contious integration, I had with .net because no real good solution was around. You just had the option betweenDamage Control or CIA and they aren’t that easy. But the thoughworker end this pain with cruisecontrol.rb. cruisecontrol.rb comes as a rails application, after you unpacked the download you just type cruise add projektname –url svn-url to add you project to the CI process and than start the server with cruise start. And the builder starts his work and a webserver on your-bild-server:3333 with a nice interface will gave you the build status. If you have a windows machine, you can use CCtray to get notifyed about the build status. [...]

Leave a Reply



root@freaklikeme\cursor