Team Foundation Build and FinalBuilder

When looking at FinalBuilder and Team Foundation Build side by side, the obvious breakdown in features and advantages looks like this.

  1. Team Foundation Build provides a complete build solution with easy integration to other components of Team Foundation Server and Visual Studio Team System. Here is a set of features that detail what integration really means.
    • Build reporting and archiving inside Team Foundation Server
    • Easy access to source control
    • Ability to quickly spool up quick and dirty builds
    • Simple scheduling tools providing day, time, and event driven build firing
    • Easy to use retention tools for “expiring” old build artifacts
    • Automated test execution
  2. FinalBuilder provides an excellent visual development environment with pretty widgets to drop on a design surface. Creating build scripts visually can be a nicer design experience than working with the raw XML found in Team Foundation Build and tools like nAnt.Microsoft obviously recognizes the value of visual composition as the next version of Team Foundation Build (2010) is built on WF (Windows Workflow). This means builds tasks are effectively WF activities. If you’ve worked with WF, you may know that WF almost implies the next point: Team Foundation Build scripts will be built visually via a design surface in Visual Studio.
  3. Arguably, the most significant advantage FinalBuilder has today is in the number of out-of-the-box build tasks (actions in FinalBuilder language) that come with the product. A complete list of FinalBuilder actions is available here.
  4. The complete list of FinalBuilder actions is exhaustive and I don’t dare replicate it here.

Integration of the 2 Products

Regarding using Final Builder with Team Foundation Build, it is important to note that the two products don’t preclude each other. Far from it, FinalBuilder ships with an integration task for working with Team Foundation Build. See this article for more information about using that integrated functionality.

This integration task gives us the ability to call FinalBuilder scripts from an automated (scheduled or event-fired) Team Foundation Build run. This is cool because we get the best of both tools:

  1. TFB Gives us complete integration with the development platform and reporting tools of Team System.
  2. 2. Final Builder gives us a nice visual development experience and more out-of-the-box build tasks than MSBuild.

Choosing the Right Tools from your Toolbox

One thing to keep in mind is this: Is the tool you need one that simply builds .NET web sites, class assemblies, and windows forms applications? If yes, the problem you are trying to solve is moderately simple. Team Foundation Build does a very good job of providing a complete solution for these scenarios.

FinalBuilder does have an additional expense associated with it, so if the build situation you are trying to solve is one of creating .NET binary packages, you may be better off using Team Foundation Build “unadorned”. It does a great job of doing what it does.

If you are looking for other functionality like working with VB6 projects or spooling up virtual machines for deployment scenarios, FinalBuilder has a lot to offer. The promise of Team Foundation Build extending WF in the 2010 Team System release holds the promise of a solidly extensible build platform with an inherent visual design story. As Team Foundation Build matures, it will likely provide a feature parity competitor to FinalBuilder, but it has some catching up to do.