Saturday, December 22, 2007

VSoft FinalBUilder 5.5

In the last few days I finally got around to test and deploy FinalBuilder. This tool is like a DSL for building software applications. With over 600 actions (almost anything you can imagine), it takes just a couple of hours to set up a Visual Studio solution/projects doing daily builds.

What I did was set it up to automatically build one of my company's MOSS2007 components, SharePoint Rules, and five of its plug-in's. I created a project, configured it to get the latest version of the code, created 6 separate "action lists" (==build subroutines), and finished it off by sending a success e-mail. Each of the subroutines just preps up the dependent assemblies, builds the respective solution, and then generates SharePoint's solution for installation. If anything fails in the process, a failure email is sent.

The usual approach when setting up continuous/daily builds is using either Microsoft's MSBuild/TFS, or something like CruiseControl.Net . Having been through this in the past, my opinion is: forget it. Buy this product, it is definitely worth it and save you hours if not days. It supports over 10 source control systems (including VSS, TFS, CVS, SubVersion and ClearCase), FTP, NNTP, ICQ, FTP, installers, virtual machine control (VPC, Virtual Server,  and VMWare Server/Workstation), burning CD's, and a lot more (the list is here). The design experience even includes debugging the build project, and the mandatory breakpoints/watches.

All this said, there are some minor glitches: the lack of an "Undo" means I've had to resort to previous versions of the build project a couple of times. Also, I quickly found a difference between the Help File and one specific action (I did post a message in VSoft's support forum and got a complete reply in under 24 hours explaining the situation -- with a solution attached).

Along with CodeSmith and a few other, this is one of the most valuable tools I've ever used in development. Highly recommended.


Changing topics: one of the things I tried to set up as part of the build project, was generating the CHM help files for the compiled assemblies. The idea was to use the included SandCastle actions to do this. I had a good impression of SandCastle (I used Oct2007 CTP) from what people told me, and of NDoc before that, but never actually tried to use it until now, and I was thoroughly disappointed. SandCastle is far from being a simple tool/product, and usability is near zero. After trying to configure it (for longer than it took me to create the entire build project), hunting for tips in blogs and Xml files, and even failing to get the included samples to work, and always ending up with 0x8000-like errors, I just quit. A colleague had success when using the SandCastle Help File Builder available at CodePlex, but since this is not usable in the automated build scenario, I just disabled the SandCastle actions until a better day comes. A disappointment I wasn't expecting. Can't win them all. :-)


Disclosure: as an MVP, I have received a free license for FinalBUilder 5.5 as a 3rd party offer from VSoft Technologies.