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 just released its fifth 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.
As usual, the FinalBuilder team enhanced the action list for the new version. New this time around are actions for administering IIS FTP servers, manipulating MSI
files, transforming PDF and image files, creating and deleting IIS application pools,
running the .NET ILMerge utility, string and path manipulation, and more. The Accurev
and MKS Source version control systems are fully supported, as is Microsoft's new
Sandcastle help generator. These are just the highlights; there are numerous other
new actions and enhancements to existing actions as well.
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. Version 5 adds stacks and queues for actions as well. 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. FinalBuilder 5 keeps more
build history than previous versions, and can generate graphs showing the build
history and successes and failures. 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.
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).
Other new features in version 5 include SCC integration in the IDE, autocompletion
on variables, and enhanced wizards for configuring the application at first use.
I've been using FinalBuilder myself for several years now, and I'm quite
happy with it. VSoft continues to add new features, while preserving the ease of use that attracted
me to the product in the first place. 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. Pricing includes a $379 Standard edition and a $499 Professional Edition (the
Standard Edition that lacks the parallel processing and a few other
features of the Professional Edition).