Wherever possible I like to work with a Continuous Integration pattern both solo and in a team (if working solo it adds an extra level of discipline), and have over the past used a variety of Automated CI platforms for .NET, ranging from CruiseControl.Net from Thoughtworks, through TFSBuild (worst ACI ever I’m afraid Microsoft) before finally settling on Team City from Jetbrains (makers of Resharper). Even better it’s FREE (with a limit (?) of 3 build agents and 20 build types per server, any server… for free). Setting up simple CI builds of a branch from pretty much any VCS is straightforward, and all of practices described by Martin Fowler that can help structure ACIs are possible.
Out of the box, TeamCity will give you runners for (in a .NET environment):
MSBuild, NAnt, NUnit (with code coverage from dotCover, free), StyleCop, FxCop, Duplication analysis and MSTest.
Builds can be triggered on a variety of criteria: commits, date/time, frequency and other builds completing,.
Note the MSBuild runner – primarily you’ll want it for compiling your code, but MSBuild is a useful extension point for more complex build types. Imagine a build that can push itself into a test environment ready for user feedback with no human hand touching it (and screwing it up).
