Considerations on using TFS 2008 with Visual Studio 2005

Published 27 August 07 03:55 PM | dmckinstry

Visual Studio Team System 2008 is an incremental release and not a revolutionary new product.  It is a more profound upgrade than the upgrade from Visual Studio .NET to 2003 but is still not as big or intensive as the upgrade to 2005.  Although there are some nice new features, compatibility is very important and seems to be very well done.  For example, you're probably aware that Visual Studio 2008 can target .NET 2.0, 3.0 or 3.5.  However I'm I'm here to describe how to use Team Foundation Server 2008 with the Visual Studio 2005 components.

Out of the box, Team Explorer 2005 works very well with most of the TFS 2008 capabilities.  Work Item Tracking and Version Control function the same as they always had for TFS 2005.  End users wouldn't even notice the difference, except in some rare cases the increased performance.

I haven't spent much time testing the project portal in TFS 2008 but it seems to by fully compatible.  Although if you choose to use WSS 3.0 or MOSS 2007 as the base for your project portal instead of the WSS 2.0 (used by TFS 2005), users of the portal will probably notice a facelift and a few new features.

The reporting system seems mostly unchanged and compatible.  I've only done a little testing with custom reports taken from 2005 to 2008 but what I've done works perfectly.  I did notice the addition of a "Policy Override Comment" to the ChangeSet table in the data warehouse...  We'll finally have some sanctioned method of reporting policy overrides!

One of the key reasons that many users will choose to move from TFS 2005 to TFS 2008 is the new build capabilities.  If you plan to maintain a user base of Visual Studio/Team Explorer 2005 users for some amount of time even though you're upgrading to TFS 2008, you'll need to plan ahead:

  • You will need to have at least one installation of Team Explorer 2008 to create and manage build definitions and build agents.  Team Explorer 2008 will also be required to lock down builds and keep them from getting deleted by your retention policies.
  • You must structure your build folders in TFS 2008 as you would have in 2005.  That is, you need to have a TeamBuildTypes folder under the root of your team project and that folder must contain a subfolder for each build definition.  The build directories in version control must match the build definition name.  For example, if you create a build definition named "DevCI", you would need a folder structure similar to "$/MyTeamProject/TeamBuildTypes/DevCI".
  • Your build directory must contain the standard Team Build 2005 files: TFSBuild.proj, TFSBuild.rsp and WorkspaceMappings.xml.  Note that these do not have to be the actual files you use for the build; they can be almost completely empty or the TFSBuild files can be the actual ones you use in your build process.  I think you might need to have at least a mock version of TFSBuild.proj but it certainly doesn't have to be the one that is used.  Remember that the workspace mapping is now handed by the 2008 Build Definition so the workspace mapping file itself is only needed to trick Team Explorer 2005.
  • Install the appropriate Visual Studio 2005 components on your build server.  Since Visual Studio 2008 can target .NET 2.0, this might seem counterintuitive.  Unfortunately, to use the Visual Studio 2008 components you have to upgrade the solution and project files to be 2008 compliant.  This obviously won't work if members of your development team are still using Visual Studio 2005.  Remember to install which every build components you will use from the Visual Studio 2005 products (e.g., Unit Testing, Code Coverage, Static Analysis, Web Testing, ...).

With these considerations, you should be able to make use of Team Explorer 2005 and TFS 2008.  You'll get all the benefits of the new build engine including continuous integration and retention policies but your end users may not otherwise notice the difference.  Users on Team Explorer 2005 will still get the build history and build initiation screens exactly as they had before.  Of course, Team Explorer 2008 users will be able to access the same data but will have a few more capabilities.

Enjoy!

Comments

# Buck Hodges said on September 6, 2007 11:31 PM:

Dave McKinstry has written a couple of posts on his experiences with Team Build in TFS 2008. In Introduction

# Justin Butcher said on October 16, 2007 05:41 AM:

The place where I work has a big investment in VS2005.  We're looking at upgrading to TFS2008, but would like to avoid (or at least decouple) the upgrade to VS2008 if possible.  I'm a bit confused about your last dot-point.  We need VS2008 on the build server to open the projects?  Does that mean the project have to be converted from VS2005 format to VS2008 format each time the build runs on a new version of the project?  What about a new version of the source files inside the project?  I can see this leading to issues where a developer need to troubleshoot a buidl and "it works on my machine" but won;t work on the build server, etc.

Can you clarify?

Thanks,

Justin

# dmckinstry said on October 16, 2007 08:10 AM:

Hi Justin -

Clarification:  You need VS 2008 to configure team builds.  The existing (not upgraded) Visual Studio 2005 solutions, projects and source files will work.  They don't seem to upgrade on the fly.

The "It works on my machine..." is always a possibility.  Even if you think you are using identical tooling (ie, not mixing 2008 and 2005).  I haven't seen that specific problem (yet) with this configuration but I can't promise that you won't.  If you have enough spare cycles you can try it in a lab environment to get your own level of comfort.

Hope that helps a little!

-Dave

# Chris Lively said on December 3, 2007 10:05 AM:

Thank you for testing this out.  We also have a decent sized 2005 install base and upgrading everyone at the same time as the foundation server was not really feasible.

# Peter Schwenn said on January 9, 2008 03:15 PM:

Anyone have a general comment on the reverse: using 2008 VS and TeamExplorer with 2005 TFS (in anticipation of a TFS upgrade 2005->2008.)?

# Knowledge, Insight, Action; In that order! said on February 15, 2008 10:57 AM:

We just finished our Visual Studio Team System hands-on labs here in Doha with a lot of interesting questions

# Hamza Farooq said on June 25, 2008 01:32 AM:

Hi,

I have a team of developers working on VS2005. So far we dont have ni implementation of TFS 2005 or 2008. What you guys suggest to do?

1. Upgrade project to VS2008 and implement TFS 2008

2. Keep using VS 2005 and install TFS 2008 ...

I know first option seems to be right but just asking you experts to advice.

# dmckinstry said on June 25, 2008 07:25 AM:

Hi Hamza,

Either can work.  If you already have your solutions under VSS or another version control system then I do recommend #1.  It will save having to install Team Explorer 2005 on all developer workstations. If you don't already have a version control system yoyu may want #2.

Assuming #1, the two don't have to be vastly separate.  The upgrade can be 'simultaneous' for most team members.

-Dave

# Abhilash said on July 17, 2008 01:24 AM:

I guess option 2 would be the easy step forward. I guess main point of content is in you require VS2008/Team Explorer 2008 to configure team builds. Team builds are required to be configured at server end and I guess it should be enough. The rest of the things work fine between VS2005 and TFS 2008.

# Martin Moe said on November 26, 2008 11:22 AM:

"The existing (not upgraded) Visual Studio 2005 solutions, projects and source files will work."

Of course this is not generally true. Consider the following:

error MSB4019: The imported project "C:\WINDOWS\Microsoft.NET\Framework\v3.5\Microsoft.VisualJSharp.targets" was not found

when letting Team Build 2008 try to build a VS2005 solution. Now the VJ# (SE) is installed on the build machine as on the dev boxes but MSBuild gets confused under the tyranny of the TeamFoundation retargetting and starts looking in the wrong place for targets.

My next challenge therefore is to find out why and how Team Build gets this mixed up while MSBuild on the VS command prompt does not.

# dmckinstry said on November 26, 2008 11:43 AM:

Hi Martin -

I hadn't built any J# so I hadn't run into this...  I expect it isn't supported since they deprecated the tools and didn't move it forward into VS 2008.

Thanks for the info!

# Paul Noeldner said on March 25, 2009 10:47 AM:

Did anyone looking at this thread, test use of VS2005 with Team Explorer 2008?  I'm trying to confirm if that's an option, and any exegencies.

# dmckinstry said on March 25, 2009 11:18 AM:

Hi Paul,

Visual Studio 2005 and Team Explorer 2008 can co-exist, but they don't integrate.  You'll need Team Explorer 2005 to achieve integrated access to TFS from Visual Studio 2005.

I hope that clarifies things.

-Dave

Leave a Comment

(required) 
(required) 
(optional)
(required)