March 2011 Archives

Professional Team Foundation Server 2010I’ve always wanted to write a technical book and when I started getting involved in Team Foundation Server I thought that this technology area might be my chance.  I was lucky enough to get involved with the Professional Application Lifecycle Management with Visual Studio 2010 book and contributed to the TFS chapters in that one – but I knew I had one more book in me.

Luckily, the ALM book was so popular that the publishers came back for more and so I was able to get involved in the book I’ve been wanting to write for the past 6 years.  Not only that, I got to work with Grant Holliday, Ed Blankenship and Brian Keller who are three of the people I regularly turn to for advice on TFS matters.  Having those guys on board made it hard when looking for technical reviewers but luckily Mickey Gousset and Steve St Jean agreed to help out and so the journey began in creating the TFS 2010 book which is now available on (both in paperback and Kindle versions) and available for pre-order on  As with the ALM book there is a DRM Free eBook available at the Wrox site if you prefer but I’ll also expect electronic versions to be available in all the popular eBook stores in due time.  One neat thing about buying the electronic version of the TFS Book for devices that have a color screen is that in many versions the diagrams and screenshots are in color (which helped me when talking about Branch Visualization or the build reports :-) )

vs2010alm_bookPeople have asked us what’s the difference between the ALM book and the Pro TFS book.  The ALM book was deliberately written as an overview to the huge amount of functionality available in the entire Visual Studio Application Lifecycle Management suite.  Though there are a couple of chapters, the Team Build one in particular, that get pretty technical – the Pro ALM book tries to keep things approachable by everyone.

The Pro TFS 2010 book is a deep dive on TFS.  We tried to make it so that you can pick up the book having never used TFS before any by the end of it not only know how to use TFS but how to administer a complex TFS instance and even use it to study for the TFS Administration exam.  I’ve learnt something from every single chapter in the Pro TFS book, but I would also hope that someone new to TFS could pick up the book and learn just enough to get going then come back for more over time.

Anyway – while I’ve seen the PDF version of the book and enjoyed reading the chapters contributed by my co-authors, I’m looking forward to getting my physical copy soon from the publisher.  If you happen to get a copy then be sure to let me know what you think.  If you wanted to splash out and get the complete reference set then my personal recommendation would be to get the ALM book, the TFS Book and the excellent Inside the Microsoft Build Engine: Using MSBuild and Team Foundation Build (2nd Edition).

Hope you enjoy it anyway – I’m proud of this one so looking forward with nervousness to see what the reviews are when they start coming in.

Team Explorer Everywhere World TourEd Thomson from the Team Explorer Everywhere team is going to be doing a tour of the mid-west and central United States in early April.  For those of you who don’t know Ed, he is one of the original Teamprise developers that came over to Microsoft after the acquisition and now one of the core developers on Team Explorer Everywhere.  He knows more about the inner workings of our Eclipse integration than anyone else on the planet.

While he’ll be speaking at a lot of user groups and Microsoft events in various cities, places are filling up fast.  However there is still some availability in a few cities.  If you are nearby or know someone who is then I encourage you to register and come along.

Austin TX


  • Wednesday April 6 (Details soon)


  • Thursday April 7 2:00pm – 4.30pm (Register)
  • Thursday April 7 6:30pm - 8:30pm (Register)


  • Friday April 8 9:00am – 11:30am (Register)

One of the key things about your CI build is to ensure that is runs fast so that you have a very quick feedback loop to see if you have a good build or not.  Rob Maher has an interesting blog post up describing how he customized the build process to make use of the test impact analysis feature so that only the impacted tests are run as part of the CI build and then the full test suite run later. 

If your tests take a long time to run, you may wish to only run the tests that have been impacted by code changes checked in with the build (and of course run a full nightly build that executes all tests :) Unfortunately there is no out of the box feature to do this, so we need to edit our build xaml to do it.

TFS 2010 Build - Only run impacted testsRobert Maher

In Rob’s example he uses a nightly build process to baseline the test impact analysis – however this might be a good candidate for a Rolling Build set to run once an hour or so (I personally prefer builds to run when there is someone still at work able to fix a build process should it break).  Anyway, it’s an interesting read not only for the idea but also as a good example of some of the key techniques when customizing a build in TFS 2010.

As Brian Harry announced earlier today, it’s been a busy week already here.  Not only was Visual Studio 2010 SP1 released but so was Team Foundation Server 2010 SP1 and also the topic of this post, the Project Server Feature Pack.

For more information, see Brian’s Blog Post:

One thing that I wanted to add is that if you are going to be editing a work item in Eclipse and that work item has been configured to be integrated with the project server using the feature pack then you will need to upgrade your client to Team Explorer Everywhere 2010 SP1.  I’d recommend you upgrade to this release is you haven’t already because there is a lot of goodness there – but you’ll definitely want to do it if you are planning on installing the Project Server feature pack.

In my travels I often run into former Subversion users coming to Team Foundation Server and struggling to come to terms with the differences in the version control model employed by TFS.  Ed Hintz posted a recent blog post that is very good, but as someone who’s used many version control systems in the past (including Subversion) I’ve put together the following deck over the years that I use when giving people advance warning about the differences between the two.  I recently updated my deck based on the latest power tools release and including some of Ed’s points.  Speaking with a few folks at the recent MVP Summit it seemed like this deck might be useful for others so sharing it here:

Note that I’m just a developer who likes TFS so much he got a job working on the team.  I’m not a marketing person or anything so this is very much a pragmatic view as to why it is different and what you should watch out for – it assumes that you are already motived to want to move (i.e. there are no slides saying why TFS is great and why you might want to switch etc).  If you find this useful then feel free to use – if you make any improvements then let me know as I’m always keen to make it better.

Hopefully you have heard the news by now that in February we shipped Team Explorer Everywhere 2010 SP1.  Brian Harry has a couple of great blog posts (here and here) talking about the headline features of what was added, but I wanted to follow up with some smaller features that I personally use every day that you probably didn’t know about.  Note that the features have been deliberately made somewhat hard to find as we’d currently class them as “power user” functionality, but I figure anyone bothering to read my blog comes into the power user category :-)

1: Links to Shelvesets

We have a lot of remote working in our team across three continents and so we find ourselves passing around shelvesets a lot.  We also use shelvesets for code reviews.  As our team is so geographically spread out that we’re actually in four different domains inside Microsoft (one for Redmond, North Carolina, Europe and Asia).  Therefore we find the best way to share a shelveset name is in the ShelvesetName;DOMAIN\Username syntax as that is fully qualified.  It’s also great to include a link to the shelveset in web access, that way you can quickly review a shelveset without having to pull down the files into your local workspace or even fire up an IDE.

To do this quickly, open the Unshelve dialog (by pressing the Unshelve button in the Pending Changes view), select the shelveset that you want to send a link to and simply use the keyboard shortcut for copy (i.e. Ctrl-C on Windows/Linux or Command-C on Mac).  Paste this into something that accepts HTML and you’ll get a fully qualified shelveset name including the link to web access.  Paste into something that just accepts text and you will just get the fully qualified shelveset name.

Getting a link to the shelveset name from the unshelve dialog

2: Query Results Copy/Paste

In the query results view, you can select a range of work items, right click and from the context menu select Copy Selected Results to Clipboard or Copy All Results to Clipboard.  If you paste them into something that just understands text then you get a tab delimited set of results but if you paste into something that understands HTML (such as Outlook, Word, Excel or things link Mail, Numbers, Pages on the Mac) then you will get a nicely formatted table of results including the column headers and links to web access.  We use this all the time when emailing work items around, especially if reporting process outside of the team where people might not have our project collection set up as a connection in VS or Eclipse but they still have access to our work items via web access (lots of people in Microsoft have read access to our work items).

3: Opening a Work Item in Web Access

We have a fully features work item editor in Eclipse, but some customers have different work item form layouts for Eclipse and for Web Access or perhaps you might want to view a web access version of the work item so that you can share the link with team members etc.  We added an “Open With…” option when you right click on a work item to allow you to pick which work item editor you wanted to use.  This is actually an extension point so people can add other editors that they might want to use instead of the one we ship with (for example, in future releases TaskTop could add an editor here and you could open the work item with their Task editor).  The default work item editor is now a preferrence that the user can adjust in the Eclipse preferences.  If this is changed then opening a work item in all of the places that we show work items in the UI will open it in the preferred editor.

Open With context menu on Work Items

4: Eclipse Project Specific Actions

There are a bunch of “power-user” version control actions that we only make available when you right click on an Eclipse Project in Package Explorer / Resource Navigator. 

  • Detect Local Changes – will examine your local disk for changes that you have not yet created pending changes for with Team Foundation Server.  This is useful if you have been working outside of Eclipse for some reason.  For example if you have edited a file by setting it read/write, if you have added a file etc.  This is functionally the same as going offline and then returning online.
  • Go Offline – sometimes you know that you are going to work offline from TFS (i.e. you’ve picked up your laptop and walked into a meeting room with no corporate wifi connection).  The Go Offline menu option will allow you to tell the Eclipse plug-in not to bother attempting to connect to TFS first but to just assume that you are offline.
  • Go Online – When you get back to your desk you want to reconnect to TFS so select Go Online.  This will connect you back up again.  It will perform a local change detection to try and help you sync up the changes that occurred since you went offline.
  • Disconnect Project Permanently – You may have bound a project to Eclipse but then decided that you don’t want Team Explorer Everywhere managing the files for you.  In this case you can disconnect the project from being bound with TFS for version control.  To reverse this operation (i.e to bind it again with TFS) then you go to Team, Share Project… and select TFS.  We will then automatically detect the working folder mapping is present in TFS and simply add the bindings back into Eclipse so that you see the TFS items in the team menu.

5: Label Decorations

In Team Explorer Everywhere we decorate the labels given to files and folders in package explorer.  However sometimes it is useful to have more information – for example if you use the “Switch to Branch” feature frequently then knowing what the server path a particular project corresponds to us very useful.  Therefore we added a bunch of label decoration preferences to allow you to customize.

Preferences, Team, Team Foundation Server, Label Decorations


Hope you find some of these power user features useful.  Remember these are all Eclipse specific – not in the Visual Studio user interface.  There are more to discover as well so take some time to poke around the preferences and the context menus and let me know what features you find invaluable.


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