November 2009 Archives

Fellow Microsoft TFS Program Manager Jim Lamb has a good post detailing how to create a custom workflow activity in Team Foundation Build 2010 using the first of what I am sure will be many activities to stamp your assemblies with the build number.

One of the common requests we hear is to provide a way of automatically updating the version information in the assemblies produced by a TFS build. Unfortunately, it’s one of those features that never gets quite high enough on our priority list to get implemented. You may have noticed that we haven’t provided a solution to this problem in TFS 2010 Beta 2, but this article is going to show you how to solve this problem yourself and will even give you the sources (see the attached ZIP file) for a working solution that you can start using today.

Jim Lamb – How to create a custom workflow activity for TFS Build 2010

If you start creating your own workflow activities then please consider going over to the Team Build 2010 Contrib project on CodePlex and share what you can.

To MSBuild or not to MSBuild

That is the question that I am frequently asked by folks looking at the impact of Team Foundation Build moving to Windows Workflow 4.0 from MSBuild as the master build orchestration language in the TFS 2010 release.

In general I would always think carefully about re-writing everything in WF 4.0 if you have a perfectly functional MSBuild based build process. Just because things have moved towards workflow based builds in 2010, there is still plenty of logic (such as the actual compile) that is conducted in MSBuild.

Fellow former MVP turned Microsoft employee, William Bartholomew has done an excellent job of writing up the pro's and con's of the available approaches when upgrading build logic to TFS 2010.

I'm regularly asked what's the best way to upgrade an MSBuild-based build process to a Workflow Foundation-based build process and one of the most important parts of this is how to leverage the investment and dependence you have on any custom MBBuild tasks you've written. This post outlines four different ways you can make your custom MSBuild tasks callable from a Workflow Foundation workflow.
  • Use MSBuild Activity to call MSBuild wrapper around MSBuild task
  • Wrap MSBuild task in a custom Workflow Activity
  • Rewrite MSBuild task as a Workflow Activity
  • Extract custom task logic into a POCO class and provide an MSBuild Task and Workflow Activity adapters

William Bartholomew - Upgrade Paths for Custom MSBuild Tasks

William's post is worth reading in full if you are interested in this topic. Also, if you are not subscribed to his new MSDN hosted blog then I highly recommend that you do.

In my inbox this morning I got news of another new version of the Team Foundation Sidekicks from Attrice.  I recommended these tools to several people during the recent TechEd EMEA event in Berlin and so it is great to new tools being added all the time.

With this release we conclude support for Visual Studio/TFS 2005 & 2008; from now on any future releases will target VS/TFS 2010. Sidekicks version for 2010 (based on Beta 2 bits) may be expected by the end of 2009.

The release 2.4 includes a relatively large number of bug fixes as well as couple of new features.


  • Labels Sidekick: Support filtering by file extension in Labels Comparison window
  • Code Review Sidekick: Check-in policy violation indication shown next to changesets in a list
  • Workspace Sidekick: Support ability to save list of found workspaces
  • New Users View Sidekick: Show searchable list of user names and user display names in TFS Valid Users group

Team Foundation Sidekicks 2.4 releaseAttrice

As a reminder, the sidekicks are an excellent and free add-on to Team Foundation Server.  They make up an essential part of my toolkit.  I’m also pleased to see that they are going to be looking into tools for the TFS2010 stack later in the year, bodes well for TF Sidekick support of TFS 2010 soon after release.

TechEd EMEA 2009 in Berlin

I’m at TechEd EMEA again this year after missing last year’s EMEA event due to illness. I’m busy working the Visual Studio area in the Technical Learning Centre as usual, but for the first time as Microsoft staff rather than an MVP.  The show so far has been great.  We’ve been getting a lot of traffic by the TLC and lots of very challenging questions.

Having done a few of these events over the years I find it interesting how the questions change from year to year as the product and the market matures.  Things have come on a long way from the days when people just wanted high level summaries of the product.  Now getting a huge spread of questions, from the highly specialised point to broad architectural discussions.  The conversations around the Visual Studio 2010 ALM area have been simply superb – and time has flown by.

I had a fantastic conversation today that I haven’t had for a while with a customer who had a small development team in house and was just wanting to learn more about version control in general.  They were very smart and we quickly went from the fundamentals all the way up to branching and merging techniques in under 20 minutes – but it was probably the most rewarding conversation I’ve had so far this week.  As the product matures we need to do more to make sure we reach people like this, rather than the temptation to always focus on the new and shiny features.

Also it has been great to see the overwhelmingly positive reaction to the Teamprise news from both inside and outside the conference.  Thanks to everyone for your kind words and encouragement.

Tomorrow I’ll be joining the panel for the following session in Interactive Theatre 2 – be great to see you there especially if you have any questions about the cross-platform story.

DEV06-IS Microsoft Visual Studio Team System "Unplugged"

Wed 11/11 | 13:30-14:45 | Interactive Theatre 2 - Orange

One of the top 10 sessions from Tech·Ed last year is back even better. Join the VSTS Leadership team for Question and Answer discussion of the Team System past, present, and future. No topics are off the table and no question is too rude. Come loaded with your list of questions about what our Team System strategy is, why we've done what we've done and what's coming in 2010 and beyond. Also, please bring your favorite tales of customer challenges you face and be prepared to share them to make sure we understand what makes your job harder.

If you are at TechEd Berlin, please do drop by the Visual Studio 2010 ALM area at TLC 22 to say “Hi” or just listen in to some of the excellent conversations going on.

Four years ago this month, I joined a small start-up being created called Teamprise after reading about it on Eric Sink's blog. Our mission was to bring the benefits of application lifecycle management (ALM) with Microsoft Team Foundation Server to everyone. After all, your customers and requirements do not care about the artificial technological borders inside your organisation - so why should your ALM tools?

Today we start a new chapter in the story of accessing Team Foundation Server from Eclipse and non-Windows platforms with the announcement that Microsoft has acquired the Teamprise technology and will be releasing a new TFS 2010 targeted version next year.

As part of the deal, I was lucky enough to get offered a position as the Program Manager for this product in Microsoft - a role that I start properly today. As a (now former) Visual Studio MVP I've had a great relationship with the team behind Visual Studio and Team Foundation Server, and I am incredibly excited to move into that very same group. I'm joining a team of people that I consider my friends - a team that consists of some of the smartest people I have ever had the pleasure of working with.

Microsoft has always been committed to creating an ALM solution that was ready to support the entire enterprise and I think this commitment is demonstrated in their decision to support cross-platform and Eclipse clients under their own name. It is also a sign of how clearly the Visual Studio team listens to their customers.

There are obviously going to be some changes along the way, however we're trying to do the best we can to minimise negative impacts. The same core team of developers behind Teamprise is moving to Microsoft to carry on what was going to be Teamprise 4.0. Until Microsoft ships its version, Teamprise 3.3 will continue to be sold and supported by the Teamprise division of SourceGear. If you are an existing Teamprise customer, you will be contacted shortly to help understand what the deal means for you – but the short version is that people with a valid Teamprise 3.3 license and a TFS CAL should be eligible for an upgrade to the new version that will come from Microsoft. That said, feel free to take a look at the FAQ to see if this helps, head over to the Teamprise Support forums, or drop me a line at if you have any questions or concerns that are not being answered and I'll do my best to help.

From a personal point of view, I'll continue to live in rural Northern Ireland as a remote member of the team. I also intend to continue to blog and tweet. I'll try to minimize the number of the "wow what a crazy awesome place Microsoft is to work" type posts that you see from new hires - but I probably won't be able to resist the odd one or two.

I'm very excited about all that we will be able to do with the resources of Microsoft behind us. While I officially have the job title of Program Manager, I’ll be heads-down coding for the next few weeks and months and looking forward to seeing what my new team and company come up with next year.

I'll be posting more here as this particular chapter continues, stay tuned – I’m pretty sure the next 12 months are going to be an exciting time!  For more information don’t forget to take a look at Brian Harry’s blog post on the topic.

Grant Holliday has an excellent post up on the new public workspaces feature in TFS 2010, why it was created and how to use it.  I’ve spoken with a number of Teamprise customers who will benefit from this feature when we add workspace permissions to the cross-platform client as it seems fairly common to share access to a unix based build server.

The Public Workspaces feature removes this limitation of one user per workspace and allows multiple users to use the same workspace mappings on a single machine. Unlocked workspaces are sometimes also referred to as "Shared workspaces", as they can be shared among multiple people.

Grant Holliday – TFS2010 Public Workspaces

It is going to be interesting to me to see how people use this functionality in the real world.  There is certainly a potential for some anti-patterns when (mis) using the feature – however the fact that you have to explicitly make a workspace a public workspace should help a lot.

One of the features in Teamprise 3.3 is the ability to connect to a Team Foundation Server 2010 Beta 2 project collection.  The support for TFS 2010 Beta 2 in Teamprise is very similar to the support you will find in a patched Visual Studio 2008 instance – you can connect and work correctly, however some of the new TFS 2010 features will not be available.

The URL syntax in TFS has changed slightly with the 2010 release.  Previously, all URL’s were relative to the root of a server, but with the introduction of project collections you have a longer URL in the form of


Where “servername” is the name of your TFS instance, “8080” is the port, “/tfs” is the virtual directory that TFS is installed in and “DefaultCollection” is the name of the project collection you want to connect to.  Like Visual Studio 2008, Teamprise 3.3 cannot connect to the application instance to determine which project collections are available – you have to be provided the name or URL from your TFS administrator.


However you can connect now using one of the new URL formats, and if you have a Sharepoint site or a reports site configured their correct locations will be used in Team Explorer.  If you have performed a basic installation of TFS (i.e. with no Sharepoint or Reports services configured) then the Documents and Reports nodes in Team Explorer will just not display.


Creative Commons License
This blog is licensed under a Creative Commons License.