Build Tools for .NET Applications
When you're writing your first few .NET applications, you'll probably
find the Build and Rebuild menu items in Visual Studio .NET to be
sufficient. But most developers quickly outgrow this option when faced
with the necessity to come up with a reproducible build process for
complex software. The ideal build system can take all the bits it needs
directly from your source code control system, compile individual
libraries in a specific order, create a test database from SQL scripts,
run smoke tests, rebuild documentation, zip up the results and place
them on an FTP server, and send e-mail to your entire team. And that's
just a simple example of the sort of process you might put together.
Fortunately, in build utilities (as in many other areas), the .NET
market has been responsive to the needs of developers. Today I thought
I'd do a quick roundup of the build utilities that I know about for
.NET, for those of you who might be ready to evaluate alternatives. If
I've missed any, I'd like to know about it. These are, by the way, in
alphabetical order so as not to play favorites.
CruiseControl.NET is a continuous integration utility for .NET.
Continuous integration works by monitoring your source code control
system and automatically starting a build and running unit tests
whenever a new file is checked in. CruiseControl.NET is open source, and
integrates with VSS, CVS, Perforce, StarTeam, PVCS, NAnt, and NUnit,
among other software. ccnet.thoughtworks.com
Daily Build lets you set up a treeview of tasks nested into folders.
Each task can run whatever you like - provided that it can be run from
the command line, which most anything can. It's meant to be driven by
Windows Scheduler. $85 from
Draco.NET is another free continuous integration utility for .NET
projects. It supports NAnt and Visual Studio for builds, and CVS and VSS
for source code control. It includes source code if you'd like to tweak
it yourself. draconet.sourceforge.net
FinalBuilder is a complete IDE for setting up complex build processes.
It lets you stitch together dozens of tasks from running a VS .NET build
to executing a SQL Server DTS package to interacting with various source
code control systems. You can also write additional command-line tasks,
though you may not need to. You can debug and log the build process as
well. Pricing starts at EUR 299 from
Hippo.NET is an open source build tool specifically for .NET projects.
It uses a client/server model so that your entire team can share a
single build machine. The developers are planning to add continuous
integration and scheduled build features. Find out more or download the
current code base from hipponet.sourceforge.net.
NAnt is an open-source build utility based on the Ant project that does
the same for Java solutions. It uses XML files to hold information on
tasks that should be performed, and supports Mono as well as Microsoft's
.NET Framework. nant.sourceforge.net
.NET Solution Build & Deployment Process & Tools is a set of
documentation and utilities from within Microsoft to help you create a
structured build process. The documentation is probably worth reading
even if you decide you don't like their particular tools. There are also
some preview bits that work with the "Whidbey" version of .NET. Grab it
OpenMake is a high-end build management tool that handles scenarios such as
multiple developers building the same project with full reproducibility and
support for both Java and .NET projects (as well as much else). Their latest
release includes integration with the Visual Studio .NET and Eclipse IDEs. www.openmake.com
Visual Build Pro is a full IDE for managing complicated build processes.
It supports dozens of tools and has a full macro language for custom
requirements. It will keep log files for a history and integrates
directly with various versions of Visual Studio. Pricing starts at $295
Finally, though you can't actually use it yet, you should know about
MSBuild - a NAnt-like build utility that Microsoft is integrating into
Visual Studio .NET "Whidbey". This is likely to provide stiff
competition for some of the existing free and commercial programs, just
by virtue of being in the box. It will be interesting to see how it
stacks up on features and usability against some of the more mature
alternatives. You can get a preview that was delivered at the PDC by
Mike Gunderloy has been developing software for a quarter-century now, and writing about it for nearly as long. He walked away from a .NET development career in 2006 and has been a happy Rails user ever since. Mike blogs at A Fresh Cup.