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