XBuild

My first web site went live in the 2001 to host my first open source project XBuild. The website went dark a couple of years later, and the site lost to the ages. Or so I thought. The joy and curse of the Internet is that it never forgets. So, happily, I found that old page on the Internet Archive, and you can see that cave painting of a website at Welecome to the home of XBuild

However, since I have a slight nostalgic streak, I am migrating the core content of that site below. I am still looking for the code, and if you can find it - please send it my way.

Finally, I am very happy that Gerry Shaw was inspired by this work. He apparently emailed me way back, and if I had seen it, I would loved to work with on his fantastic creation of NAnt that so surpassed my little XBuild.

Welcome to the home of XBuild.

XBuild Evolution

Way back in the dawn of .NET (you remember the age of dinosaurs like MFC don’t you?) I looked for a cool project to implement to teach myself C# and a cross section of the .NET Framework. My first decision was the source language to port from and I considered C++, Delphi, Visual Basic, and Java. My decision was to go with Java due to the uncanny likeness it seams to have with C# (go figure). My next decision was to look only at reasonably well established projects so I would get to spend more time on implementation details then on architecture of design (yea I know, the reverse from what normal software engineering should be - it was more fun this way). After trudging through piles of Java code, I decided to use ANT. Why? Because it is a really cool project that has been designed and implemented very well (kudos to the chefs).

So what is ANT then? ANT is a tool that use XML to define a build process similar to make. Why use XML to replace make, well - make sucks. For a more in-depth reasoning see the ANY web site. My reasoning was simple. I wanted to write lots of C# and .NET code, I did not want to wait for Visual Studio.NET to be released (this project started pre beta 1), and I hated working with make files. I also liked working with the .NET SDK. I have found this SDK to be one of most stable toolsets I have worked with (kudos to the MS guys). I also really liked the idea of using XML to declare a dependency based process. It just seemed to fit in nicely with one of the XML goals of being used for declarative processing. That and ANT had a really awesome idea to extend the build environment through XML tags (you will see later on). Lastly, I thought that some things could be better done with the C#/.Net (see the custom attributes and XML processing).

So that is the reasoning, history, and genesis of XBuild.

XBuild Cool Things

So what is cool in XBuild. Well .NET is. Here is a small list of some of the really awesome .NET techniques that implemented in XBuild.

  • Custom Attributes
  • XML Processing
  • Event Handling
  • Reflection, Dynamic Invocation and Virtual Constructors
  • and oh yea, Custom Attributes

The really cool thing about XBuild is that its free. I had a lot of fun implementing this, and it really helped to learn a lot about how C# and .NET works. So I am going to share with everyone else, and hope they has as much fun learning, using and hopefully extending it. That’s right boys and girls (and others out there). I am hoping that this will become a project like ANT that will be useful to the whole .NET community. That means support for C++, JavaScript, VB and all those other languages that seem to be coming back from extinction (I am actually looking forward to a Z80 to IL converter). So I am calling upon all those happy .NET-ers out there to help me make XBuild a standard build tool in the .NET universe.

Enough Already - How Do I Get XBuild

Well ask and ye shall receive.

XBuild Latest Source Code (zip file) sorry all! this link no longer works - the source may be lost forever

comments powered by Disqus