I have been using TFS 2010 since the early releases and I am very impressed with its features, some of which I have blogged about here: http://www.simonrhart.com/search/label/TFS
But whenever I have tried using the new Team Build 2010 Build Template Workflow (which is based on MSBuild under the covers) I find it more difficult to navigate and manage. Not to mention there are not many activities around for things like, running StyleCop rules, creating IIS virtual directories, managing service accounts etc.
So the real question is, why would I use Workflow over pure MSBuild.
I am very impressed with the MSBuild Extension Pack that contains many tasks that covers the things I mentioned above and more. I also know there is a MSBuild activity which means you can make use of the MSBuild Extension Pack from within Workflow but this kind of defeats the purpose of using Workflow in the first place.
I also often want the ability to run a build locally before check-in. This build is normally a nightly build which not only compiles code, runs unit tests and acceptance tests etc but it sets up the environment. i.e. if you have a BizTalk solution and you need to deploy the bindings, schema's, maps etc the BTDF can be used to help facilitate this easily. Well when I say easily there is a bit of work to get this to work with Team Build that I will blog about soon...
I know in Team Build 2010 there is the new gated-check in feature that shelves changes, runs a build against the shelved changes then merges with the branch in question if successful. This is great but only half the story. On every get-latest I want the developers machine to be setup and be able to run the latest code. If another developer has added a WCF service with a new app pool or added a receive port, this script needs to take care of all that without each developer even thinking about it.
With the Workflow build templates, there is no way to run those builds locally. The gated-check in is an additional feature that addresses the problem of the developer not running a local build otherwise known as a "buddy build" before he/she checks in to prevent build failures.
To date, I use the "Upgrade Template" in Team Build 2010. I was wondering if anyone was actually using the Default Templates based on pure Workflow?