This is a mirror of official site: http://jasper-net.blogspot.com/

Build Tools Roundup For .NET Systems

| Wednesday, May 12, 2010
It seems there is not shortage of build tools that are available for the .NET developer these days. Of course I’m quite partial to the Ruby + Rake + Albacore solution, being the big tuna behind albacore and all… but quite honestly that amount of choice makes me very happy. It seems there is a good tool for just about every different comfort zone in the .NET developer world. At this point in time, there’s not one right answer of which build tool to use. You don’t need to choose which tool to use based on what features and functionality it supports anymore. Rather, you can make the choices based on what your comfortable with – be it the runtime environment, the language to create build steps, the data specification, etc. Choice is good. Understanding what each choice offers is even better. Here’s my take on the current set of tools that I’m aware of and what the comfort zone of these tools are.

Nant: The Godfather Of .NET Build Systems

Runtime: .NET
Build Configuration Language: XML with extensions written in .NET
URL: http://nant.sourceforge.net/

Nant is the old-school guy on the .NET block, having grown up over on Java road. This is the original .NET build tool that so many others wanted to be or wanted to be better than. If you’ve used any build tools for more than a few years in .NET, you’ve probably used Nant at least once. There are a lot of extensions and add-ons to Nant, including a user contributions project, several visual tools designed to abstract away the xml, some conventions based add-ons that make nant easier, etc. If you need to do it in your build process, chances are there is a plugin or a blog post that tells you how to do it with Nant.

Nant was originally a copy of the Java Ant build tool but quickly took its own directions in implementation becoming the defacto build tool in .NET for several years. With it’s heavy reliance on xml and its roots tracing back to java, most “enterprise” developers chose Nant because of it’s familiarity from the Java world.

Example: Build a solution

  1: <target name="compile">
  2:        <echo message="Build my solution!" />
  3:        <msbuild project="src/mysolution.sln">
  4:               <arg value="/property:Configuration=release" />                                  
  5:               <arg value="/t:Rebuild" />
  6:        </msbuild>
  7: </target>


UppercuT: You Won’t Know What Hit You

Runtime: .NET (Nant) with extensions to call out to other platforms such as Ruby/Rake.
Build Configuration Language: None for simple builds. XML/Nant, Ruby, and Powershell for extended scenarios
URL: http://code.google.com/p/uppercut/

If you’re going to use Nant and you don’t need to do anything “unusual”, then you should be using UppercuT. This is an add-on that makes Nant so easy to use, you don’t even need to know how to use Nant. UppercuT makes good on it’s promises, too. It really is that easy to get a build up and running because you don’t need to know anything other than the basic conventions that it uses to find your solutions, tests, etc.

From the project’s homepage:


It seeks to solve both maintenance concerns and ease of build to help you concentrate on what you really want to do: write code. Upgrading the build should take seconds, not hours. And that is where UppercuT will beat any other automated build system hands down.

UppercuT is targeted at those who want all of the power and stability that Nant provides, but don’t want to deal with a ton of XML and build script definitions.

Example: No, really… this project makes building with Nant so easy, you don’t need to configure any tasks for most things. Check out the website for more information.

MSBuild: Bringing ‘One Microsoft Way’ To Your Build System

Runtime: .NET
Build Configuration Language: XML with extensions written in .NET
URL: http://msdn.microsoft.com/en-us/library/0k6kkbsd.aspx


Read more: lostechies.com

Posted via email from jasper22's posterous

0 comments: