FinalBuilder 4 Professional, $499
VSoft Technologies
Canberra, ACT, Australia
+61 2 6282 7488
http://www.finalbuilder.com
Developers come with many different preferences. Some folks really like the modern trend towards doing everything with XML. And then there are those of us who would rather sit on an angle bracket than write code with one. For those in the latter camp, build utilities like NAnt and MSBuild are at best a nuisance with their nested XML syntax. Fortunately, there's an alternative: FinalBuilder, which recently released its fourth major version, offers a full-featured IDE for managing complex software build and deployment processes. Over the years, I've mellowed to the point where I'll sometimes use NAnt for a build process that I intend to set up once and never touch again, but when I've got a complicated, multi-step process to maintain, give me an IDE any day.
Let's start with the basics. At its simplest, FinalBuilder lets you string together actions to form a build process. An action might be to compile a C# project using the command-line compiler, or to check out a file using Perforce, or to run a DOS command, or to use sn.exe to sign a .NET assembly. Each time you choose an action, you can specify all the details - which files to call, which parameters to supply, comments, and so on. There are nice dialog boxes to fill out with this information, and an Action Inspector that shows you the same information in a property sheet format. All told, FinalBuilder supports over 400 actions, dealing with testing, install builders, many source code control systems, compilers, help file builders, CD burners, file and directory actions. WMI, archivers, FTP, newsgroup posting, e-mail, and on and on. The richness of FinalBuilder's action set is simply amazing.
Actions are one area where the FinalBuilder team has done a lot of work for version 4. New actions here include a raft of individual FTP actions (upload, rename, connect, and so on) to replace the earlier monlithic FTP action, coverage fo Team Foundation source code control, control over VMware virtual machines, IIS5 and IIS 6 control, "wait for" actions to allow synchronization between processes or computers, MSN Messenger support, and more. There's also a new Async Action Group to let you run multiple actions in parallel, which can really speed things up if you have a multi-CPU box or you can structure your build to parallelize CPU-bound and I/O-bound activities. .NET 2.0 is supported throughout, and you can choose the version of the CLR to use for .NET-related actions if you have multiple CLRs installed.
Now add another level of complexity, because a FinalBuilder project is much more than just a linear list of actions. You can group actions together and add comments to make the structure of a project more obvious. You can prompt the user for variables and use those to control what's going on. You get flow control including sub-projects, while loops, for loops, conditional branching, switch and case, delays, and try-catch-finally exception handling. And as I mentioned you can now run multiple actions in parallel. While FinalBuilder is running your script, it shows you exactly what's going on, with overall progress and the status of the currently executing actions.
Still not enough? Add in logging and scripting. As you execute your build script, FinalBuilder keeps track of what's going on. This build log gets displayed in the FinalBuilder interface as the build is going on, and there's an action to export it as a file when the build is done. You can specify which level of detail to include in the exported log, and use XSLT to format it nicely. This makes it easy to leave the log up on a Web server for everyone to see. Scripting (using either VBScript or JScript) lets you further customize actions. Every FinalBuilder action exposes BeforeAction and AfterAction events (some have more) and there's a built-in editor with IntelliSense and color-coding to let you write code responding to these events.
The user interface has also come in for some attention in version 4. In addition to the enhanced runtime display of what's going on, there's a new Project tab that gives you fast access to scripts and variables. A new Action Information pane gives you a quick view of the common properties of your actions without needing to dig through the Properties window as well.
For the ultimate in power, there's the companion (and included) FinalBuilder ActionStudio. This separate IDE lets you build your own FinalBuilder actions, complete with their associated user interface, using active scripting (VBScript/JScript), COM, or any .NET language). So if there's something you want to automate that they didn't include in the box (though darned if I know what that would be) just roll up your sleeves and include it).
I've been using FinalBuilder myself for several years now, and I'm quite happy with it. The new version proves that a clever ISV can continue to find useful new features to add, even to a mature product. If visual tools appeal to you more than XML ones, and you need a powerful build and management utility, you ought to check it out for yourself. There's a 30-day evaluation copy available from the VSoft Web site, as well as a $379 Standard Edition that lacks the parallel processing and a few other features of the Professional Edition.
Mike Gunderloy is the lead developer for Larkware and author of numerous books and articles on programming topics.
Published December 14, 2005