Shane Duffy

Getting into Agile Development with .NET

Posted on: August 1, 2007

The following is a list of tools for doing agile based development with Microsoft .NET. There are quite a few tools out there that will accelerate your use of continuous integration, test driven development, source control integration, etc.


Best tool for task management. For more details see my review of JIRA from a previous post. It’s bugzilla on steroids and is much better and simpler than most windows based tools. It’s java based, but there is still no reason not to use it for .NET based development.


NUnit is an implementation of the XUNIT framework for .NET. It allows you to create unit test classes that can be run by either a GUI or console application. NUnit will also integrate into your build process so that on each build, you run through your automated tests to make sure they still pass.


NANT is a port of the ANT build tool from Java. NANT allows for build scripts based on simple XML files. NANT can do things such as compile code, deploy assemblies, manage directories, start and stop processes, run executables, etc.


NCover is a code coverage tool for .NET. It will instrument your assemblies when they are built to analyze each line of code in your assembly and whether it was actually executed (exercised). If you combine this with NUnit, you can then tell how much your unit tests actually go through every path of code.

dotTrace or Ants Profiler

Either tool will do, but personally I like Ants Profiler better and you can get it as a bundle with Ants Loader for cheaper. Both tools do the same thing – they profile either memory or performance data for your executing code. You can profile an ASP.NET web site, a Winform application or a Windows Service. What you will get in the case of memory profiling is the ability to snapshot at any point of execution a picture of what is in memory. This can help with objects not getting garbage collected properly or where you’re running into memory issues. For performance profiling, the tool will tell you the amount of time each line of code took to execute. This can be useful for performance testing in that you can see the breakdown of time for a method to isolate the particular lines of code that are taking the longest.

Cruise Control .NET

Cruise Control is a port of the java application of the same name. It is a continuous integration server which will fire a build on every check into your source code repository. It can run either a NANT script or an MSBuild script or simply tell Visual Studio 2005 to do a build. It then stores the status of each build in a little intranet site that you can monitor and it can email you notifications as well. This provides an automated way to integrate code and test to make sure it builds and passes all your unit tests.

My Generation

My Generation is a code generator. It ships with a number of templates for generating O/R mapping code for frameworks such as Gentle, NHibernate, DAAB, etc.

TestDriven .NET

This is one of my favourite tools. It allows you to integrate your unit testing right into studio. Want to run one of your NUnit Tests? Just right click on the test code and up comes a Run with option that you can then run with the debugger, NCover, NUnit, etc. The one I use most is run with Debugger as it means you can step through the code hit by each of your unit tests.


Ankh is a subversion add-in for Visual Studio 2005. For those who are using subversion as your source code control system (and I would recommend subversion in general over Visual Source Safe) it allows you to update and commit code from the solution explorer window. My only problem with this tool is that its quite slow especially if you have large projects, so you may find it easier to check in with external tools after a while. But for those who are just getting used to subversion, its a great first step.


4 Responses to "Getting into Agile Development with .NET"

Great list. Some of these I am familar with, others I will have to take a look at.

The TestDriven.NET plugin for Visual Studio is great. Being able to run a test from the IDE really speeds up the code/test cycle. And as you point out, being able to run a test with the debugger helps to figure out what went wrong when a test fails. The only caveat is I sometimes see people use this as their primary testing method, i.e. they step in with the debugger and visually inspect the code and inject faults. I prefer writing a series of tests that set up the expectations and only using the debugger to help identify why a test fails.

I prefer MbUnit over NUnit. Syntax is identical, but MbUnit includes some additional test capabilities. For example the RowTest attribute can be used to run the same test with a variety of test conditions. Repeat can be used for stress testing, and ProcessTestFixture/TestSequence can be used for ordered testing.

I would also throw in a mocking framework, like NMock, TypeMock, or RhinoMock. I only have experience using NMock but have heard good things about the other two as well.

And if you use CruisControl.NET, don’t forget to use CCTray which allows you to monitor build progress right on the Windows system tray.

[…] 2, 2007 This is a follow up to my previous post on Getting into Agile Development with .NET. I got to the office and I noticed a few more tools that I missed in my previous […]

mdenomy: thanks for your comment and feedback. I will update my second post with some of the tools you have mentioned once i get a chance to take a look over them, The mocking frameworks I have never used before but will also look into these.

Thanks for taking the time to read my posts.
Have a nice day 🙂

A free, open source alternative to Jira is BugTracker.NET. Home page is

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Subscribe to this blog now!

August 2007
« Jul   Sep »
%d bloggers like this: