There are a lot of new features in TFS 2008. So many in fact, it's difficult to list them all at once. I will, however, do my best to cover as many new features as I can during this year's Tulsa TechFest when I present on What's New in TFS 2008. There are a lot of new features that have been integrated into TFS 2008 that can also be had today in TFS 2005. Some of these are listed below...
Continuous Integration - there are several 3rd party solutions for implementing continuous integration in TFS 2005. These include:
- A Microsoft implementation - this is a web-service based implementation that allows you to associate a Team Project with a specific Build Type to be called any time something is checked into version control. I've seen several variations of this implementation available on the web.
- TeamCI by Notion Solutions - this is a free CI tool offered by Notion Solutions.
- TFSBuildLab - this is an open source project on Microsoft's CodePlex site. This TFS utility offers more than just CI capabilities.
TFSBuildLab - along with the continuous integration capabilities listed above, TFSBuildLab has many other features:
- Retention policies - can be based on Build Status or Build Quality. You can also specify the number of builds to keep or the number of days to keep them.
- Tray notifications - receive build and check-in notifications (via "toast" messages)
- Build queuing - provides a mechanism for queuing builds.
- Build scheduling - provides a UI for scheduling builds.
"Listless" Unit Tests - TFS 2008 has the ability to specify which unit tests to run (during a build) based upon a file mask rather than being forced to select a list of tests. This approach lets you easily run all unit tests within an assembly or set of assemblies (for example) without ever having to manage lists of tests for the build. Buck Hodges has a great post explaining an implementation for TFS 2005. Trust me, once you start specifying your unit tests in your build using this approach, you'll never go back to test lists again :-)
"Broken Build" Check-in Policy - TFS 2008 has a new check-in policy called Builds. When something is checked into version control this policy will check to see if any related builds are currently in a "broke" state; If so, the policy will fail. The idea is to not let developers keep checking in code when the build is just going to fail anyway. Clark Sell has created a Build Status check-in policy for TFS which gives you this functionality now, in TFS 2005.
BuildStep Task - If you've ever wanted to add your own custom text in the build report (the view you get in Visual Studio while watching an active build run through the various build steps) then you're in luck. In TFS 2008, there's a new build task called the BuildStep task that does just this. You can also get this functionality in TFS 2005 with the TeamBuildTask posted by Aaron Hallberg.
Incremental Builds - incremental builds are supported within TFS 2008. TFS 2005 build scripts can be configured to run incremental builds with a little work. There's a "how to" article on MSDN that explains the steps to run incremental builds in TFS 2005.
There are undoubtedly other features that can be made available for TFS 2005 but this is a good start.