S h o r t S t o r i e s

// Tales from software development

The king is dead, long live the king!

leave a comment »

This week saw the first release of a new tasks library for MSBuild.

MSBuild Extensions Pack

The MSBuild Extensions Pack can be downloaded from CodePlex. If you browse the project page you’ll quickly see that this is a repackaging of an earlier tasks library called FreeToDev. You may also recognise the name of the project co-ordinator as Mike is also currently also the co-ordinator for the SDC Tasks Library on CodePlex.

A short history

Considering the power and flexibility of MSBuild and the ease with which tasks can be written to add to its functionality, it’s surprising that there are so few task libraries available. A couple of years ago (2006) a bunch of guys at Microsoft UK created the Solutions Build Framework (SBF). This was a build framework of MSBuild targets and tasks that could be configured to run daily, continuous, buddy, and developer builds. The SBF was built on the functionality of a tasks library known as the SDC Tasks Library (named after the Solutions Development Centre at Microsoft UK). The SDC Tasks Library could be used as a standalone MSBuild tasks library if you didn’t want to use the SBF.

The SBF was a very powerful build framework that was used on a number of large scale projects within Microsoft. It was made available for download from http://www.GotDotNet.com in 2006. It was always a work in progress not least because it was largely maintained and developed in the contributor’s own time. 

In May 2007 the SDC Tasks Library was moved to CodePlex when GotDotNet was phased out but the SBF was not migrated. The problem was that the SBF was incomplete, difficult to maintain, largely undocumented, and quickly becoming outdated. So the decision not to move it to CodePlex is understandable but is a great shame because, as far as I’m aware, there is nothing of comparable scope and power to replace it.

The SDC Tasks Library is maintained but little is being done to add to its functionality or to keep it up to date. Again, this is understandable as there is little incentive to continue developing it now that the SBF is no longer available and Microsoft’s preferred build tool for internal projects is Team Build.

So, with the release of the MSBuild Extensions Pack, it’s good to see a new initiative that may eventually offer all the functionality of the SDC Tasks Library and more.

Reinventing the wheel

The biggest problem in maintaining the SDC Tasks Library was that it needed refactoring but backward compatibility was the highest priority. These aren’t incompatible needs but they do make for difficult bed fellows, especially when the project was being maintained in the contributors’ own time.

Perhaps the best way forward would be to create a completely new version of the tasks library that rationalised the tasks at the expense of backward compatbility. SDC Tasks Version 2.0 ? Well, perhaps that’s what the MSBuild Extensions Pack is. Yes, a lot of functionality from the SDC Tasks Library is missing but, hopefully, this will be migrated in the future.

Other task libraries

Another task library is being developed at Tigris.org. The MSBuild Community Tasks Project is another collaborative effort to create a general purpose MSBuild tasks library. I’ve been working with this library over the past week and it looks promising, if a little immature in some areas.

As far as I’m aware, as of now, October 2008, there are no other MSBuild task libraries of the scale of these three projects. There are a few task related resources but none that I’d recommend without reservations.

Links

SDC Tasks Library

MSBuild Extension Pack

MSBuild Community Tasks Project

Advertisements

Written by Sea Monkey

October 11, 2008 at 12:05 pm

Posted in MSBuild

Tagged with

Leave a Reply

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

WordPress.com Logo

You are commenting using your WordPress.com 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

%d bloggers like this: