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/TFSBut 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?