Buck Hodges

Visual Studio Online, Team Foundation Server, MSDN

June, 2012

  • Buck Hodges

    Visual Studio 2012 features enabled by using a TFS 2012 server


    While many of the features in Visual Studio 2012 are available to users using TFS 2008 or 2010, there are some features that are only available when using a TFS 2012 server.  Also, the web experience in TFS 2012 has been rebuilt entirely from the ground up, and the result is a fast, fluid experience that also includes new experiences tailored to Scrum.

    Once you’ve upgraded your server to TFS 2012, installed your first TFS server, or are using the Team Foundation Service Preview, here are some of the features you are now able to use.  The goal here isn’t an exhaustive list but to get you started.

    Version Control

    • Async checkout – We have added a new TFS 2012 feature so that VS 2012 will do checkouts in the background for server workspaces.  That eliminates the pause when you start typing and VS checks out the file.  Turning it on turns off checkout locks, but you can still use checkin locks.  You can find out how to turn it on here.
    • Merge on Unshelve – Shelvesets can now be unshelved into a workspace even if there are local changes on files in the shelveset.  Conflicts will be created for any items modified both locally and in the shelveset, and you will resolve them as you would any other conflict.
    • Local workspacesLocal workspaces allow many operations to be done offline (add, edit, rename, delete, undo, diff) and are recommended only for workspaces with fewer 50,000 files.  Local workspaces are now the default with TFS 2012, but you can control that if you want server workspaces to be the default (setting is in the dialog shown here).

    Alerts editor – Replacing the power tool, there’s now an even better experience built into the web UI for managing your email notifications.  You will be able to see and manage all of your alerts in one place.  To get to it, go to a project, click on your name in the upper right, and choose Manage Alerts.  Note that you can only get to it if your administrator has configured your server to send email.

    Retry build – If your build fails for reasons unrelated to your changes, you can now right-click and retry it.

    My Work – This is a new feature of Team Explorer that allows you to suspend and resume work quickly and easily.  This feature is only available in Premium or Ultimate.

    Code Review – You will be able to use the new code review experience.  You can start a code review from the Pending Changes page in Team Explorer or from the History window by right clicking on a changeset.  Your list of code reviews is shown in the My Work window.  This feature also requires Premium or Ultimate.

    Agile/Scrum – We’ve added a first-class experience for Scrum in TFS 2012 in our web UI.  To use these, teams will need to be created.  You can learn more here.

    • Team – We now have teams in TFS!
    • Task Board
    • Product Backlog and Sprint Planning – these require Premium or Ultimate (see this post about enabling via the licensing feature)
    • Team Home Page with a burn down chart and customizable tiles based on team favorites.  To add tiles to a team’s home page, create team favorites in work item tracking, build and version control.

    Feedback – You’ll be able to use this feature to request feedback on your work, and users will be able to use the Microsoft Feedback Client (including accessing it from Microsoft Test Manager).

    Storyboarding – This is available in VS Premium or Ultimate and in Test Pro, and TFS 2012 adds a Storyboard tab to work items such as User Story.  You can learn more here and find additional shapes here.

    You can also use the new unit testing features to run tests via Nunit, xunit, qunit, and more in your TFS build (aka team build).

    Microsoft Test Manager – there are a few features only available when using MTM 2012 with TFS 2012

    • Inline Reports/Test Results (Testing Center -> Plan Activity -> Results)


    • Exploratory feature (Testing Center->Test Activity->Do Exploratory Testing, Testing Center->Test Activity->View Exploratory Test Sessions)


    • Support for Standard Environments (Lab Center->Lab Activity->Environments


    For a more detailed list of the features in ALM for 2012, see the ALM 2012 section or download the product guide.  There’s also a list of what’s new in VS 2012.

    [UPDATE 6/20/2012]  I’ve added more details around MTM requested by Neno and supplied by Ravi.  I’ve also fixed the broken product guide link (thanks, Mayur).

    [UPDATE 6/7/2012]  TFS Express does not include any of the Agile features.  It is really focused on source control, build, and bug tracking.  You can read more about it here.

    Follow me at twitter.com/tfsbuck

  • Buck Hodges

    Developer Division is running on TFS 2012 RC!


    This past weekend we upgraded the TFS server used by the Developer Division and other teams who deliver Visual Studio 2012.  It is now running TFS 2012 RC!

    Back in the beginning, the DevDiv server was our dogfood server.  Then as all of the folks shipping products in Visual Studio, there were too many critical deadlines to be able to put early, sometimes raw, builds on the server.   So we dogfood TFS on a server called pioneer, as described here.  Pioneer is used mostly by the teams in ALM (TFS, Test & Lab Management, and Ultimate), and we’ve been running TFS 2012 on it since February 2011, which was a full year before beta. Never before have we been able to use TFS so early in the product cycle, and our ability to get that much usage on early TFS 2012 really showed in the successful upgrade of the DevDiv server.

    We also run TFS 2012 in the cloud at http://tfspreview.com, and that’s been running for a year now.  While that’s not a dogfood effort, it’s helped us improve TFS 2012 signficantly. The other dogfooding effort leading up to this upgrade was Microsoft IT.  They upgraded a TFS server to TFS 2012 Beta, and we learned from that as well.

    The scale of the DevDiv server is huge, being used by 3,659 users in the last 14 days.  Nearly all of those users are working in a single team project for the delivery of Visual Studio 2012.  Our branches and workspaces are huge (a full branch has about 5M files, and a typical dev workspace 250K files).  As a result, we always find product issues when we upgrade it.  For the TFS 2010 product cycle, we did not upgrade the server until after RTM.  Having been able to do this upgrade with TFS 2012 RC, the issues we find will be fixed in the RTM release of TFS 2012!

    Here’s the topology of the DevDiv TFS deployment, which I’ve copied from Grant Holliday’s blog post on the upgrade to TFS 2010 RTM two years ago.  I’ll call out the major features.

    • We use two application tiers behind an F5 load balancer.  The ATs will each handle the DevDiv load by themselves, in case we have to take one offline (e.g., hardware issues).
    • There are two SQL Server 2008 R2 servers in a failover configuration.  We are running SP1 CU1.  TFS 2012 requires an updated SQL 2008 for critical bug fixes.
    • SharePoint and SQL Analysis Services are running on separate computer in order balance the load (cube processing is particularly intensive).
    • We use version control caching proxy servers both in Redmond and for remote offices.

    These statistics will give you a sense of the size of the server.  There are two collections, one that is in use now and has been used since the beginning of the 2012 product cycle (collection A) and the original collection which was used by everyone up through the 2010 product cycle (collection B).  The 2010 collection had grown in uncontrolled ways, and there were more than a few hacks in it from the early days of scaling to meet demand.  Since moving to a new collection, we’ve been able pare back the old collection, and the result of those efforts has been a set of tools that we use on both collections (we’ll eventually release them).  Both collections were upgraded.  The third column is a server we call pioneer. 

    Grant posted the queries to get the stats on your own server (some need a little tweaking because of schema changes, and we need to add build).  Also, the file size is now all of the files, including version control, work item attachments, and test attachments, as they are all stored in the same set of tables now.

    Collection A Collection B Pioneer
    Recent Users 3659 1516 1,143
    Build agents and controllers 2,636 284 528
    Files 16,855,771 21,799,596 11,380,950
    Uncompressed File Size (MB) 14,972,584 10,461,147 6,105,303
    Compressed File Size (MB) 2,688,950 3,090,832 2,578,826
    Checkins 681,004 2,294,794 133,703
    Shelvesets 62,521 12,967 14,829
    Merge History 1,512,494,436 2,501,626,195 162,511,653
    Workspaces 22,392 6,595 5,562
    Files in workspaces 4,668,528,736 366,677,504 406,375,313
    Work Items 426,443 953,575 910,168
    Areas & Iterations 4,255 12,151 7,823
    Work Item Versions 4,325,740 9,107,659 9,466,640
    Work Item Attachments 144,022 486,363 331,932
    Work Item Queries 54,371 134,668 28,875

    The biggest issue we faced after the upgrade was getting the builds going again.  DevDiv (collection B) has 2,636 build agents and controllers, with about 1,600 being used at any given time.  On pioneer, we didn’t have nearly that many running.  The result was that we hit a connection limit, and the controllers and agents would randomly go online and offline.  Working with WCF team, we now understand the connection settings, and this will be fixed for RTM.  We’ve also now got a test in place that finds the issue and verifies the fix.

    Here’s a subset of the issues we’ve found, including all of the ones we found the first day.  There are probably another dozen that we’ve found during the week that I haven’t listed.

    1. Build machine connections are limited to 128 for some reason.
    2. Build config wizard iterates through every build machine and resolves its DNS entry.
    3. Code to handle file attachments not yet upgraded fails. prc_RetrieveFIle was calling prc_MigrateFile incorrectly.
    4. Issue with leading key transfer when there are tables with duplicate index names in the database.
    5. Warehouse upgrade timed out on dropping primary keys.
    6. Creating a build label times out.  Bad query plan on prc_iiUpdateBuildInformation
    7. DevDiv Upgrade: File Migration Job is too slow
    8. Command-line only users will not have their location service cache updated on certain commands which leads to confusion on available services.
    9. Unable to access work items page.  MaxJsonLength should be configurable (in web.config) for JSON action results.
    10. Updating build controllers/agents makes many calls to the server and suffers lock contention.
    11. QueryBuilds is slow on vstfdevdiv.
    12. Browser cache needs to be cleared for some users after upgrade.
    13. Work item template links created when the server was 2010 no longer work.
    14. SOAP notification breaks compat with previous releases.
    15. Get with a workspace version used by tfpt scorch is slow.

    The upgrade to TFS 2012 RC was a huge success, and it was a very collaborative effort across TFS, central engineering, and IT.  We quickly got everything to full scale and running smoothly.  As a result of this experience and our experience on pioneer, TFS 2012 is not only a great release with an incredible set of features, but it’s also running at high scale on a mission critical server!

    I hope you upgrade your server to TFS 2012.  You are going to love it!


    Follow me at twitter.com/tfsbuck

  • Buck Hodges

    Team Explorer 2012 keyboard shortcuts


    Team Explorer 2012 has the following keyboard shortcuts for the built-in pages.  We are adding some shortcuts within the pages for RTM.

    UPDATE 08/20/12:  The last seven shortcuts were added for RTM.

    Shortcut Team Explorer Page
    Ctrl+' Search
    Ctrl+0,H Home
    Ctrl+0,P Pending Changes
    Ctrl+0,M My Work
    Ctrl+0,W Work Items
    Ctrl+0,B Build
    Ctrl+0,R Reports
    Ctrl+0,D Documents
    Ctrl+0,S Settings
    Ctrl+0,A Web Access – team home page
    F5 Refresh
    Ctrl+Up Arrow Move focus to the previous visible section header
    Ctrl+Down Arrow Move focus to the next visible section header
    Alt+Left Navigate backward
    Alt+Right Navigate forward
    Alt+Home Focus the navigation control
    Alt+0 Focus the page top level content
    Alt+[1-9] Focus the visible section [1-9] level content
    Alt+Up Focus the previous visible section content
    Alt+Down Focus the next visible section content

    Follow me at twitter.com/tfsbuck

  • Buck Hodges

    How to customize the build summary page in TFS 2012 without a plug-in


    Jason Prickett has been writing some great posts about the new features in Build for TFS 2012.  One of my favorites is the ability for you to add sections to the build summary page without having to write any plug-ins.  You just use the WriteCustomSummaryInformation activity in your workflow or make the equivalent OM calls from a workflow activity.  The result is that you can display results, hyperlinks, and more on the build summary page.

    TFS11 RC – Simple Build Summary Customization

    So, I did a few posts when TFS 2010 released on how developers could customize the Visual Studio Build Details View. However, it required creating a VS Add-In or Package and then deploying that to all your clients. Well, with the RC release of TFS 11 and Visual Studio, there is a much easier way to add simple content to your Build Details Summary view.


    Here’s a screen shot showing a “My New Section” that he added.  Enjoy!


  • Buck Hodges

    Use the wizard to upgrade team projects in TFS 2012


    As you’ve seen from Brian’s post and a bunch of others, Visual Studio and Team Foundation Server 2012 RC are now available.  One of the consistent pain points in upgrading from one version of TFS to the next has been in upgrading the process for a team project.  With TFS 2012, we’ve taken our first steps toward making it dramatically better.  We now provide a wizard that is able to upgrade a team project’s process quickly and easily if you have made no customizations or only a limited set of customizations.  There are a number of resources available to help you through the process, and I wanted to provide a collection of links in one place.

    First, Tim Elhajj, who creates documentation on administering TFS, has posted a very easy to read article on how to use this new configuration upgrade wizard, and the end of that page has links to MSDN for resolving errors and dealing with the differences in the Agile process template as well as adding new shared queries that will be automatically created for new team projects.  If you are new to upgrading TFS, you can start at the beginning to walk through the upgrade process.

    Ewald Hofman, a program manager for work item tracking, has posted code for a tool to allow you to automate upgrading many team projects.  For those of you with lots of team projects, that’s really useful.  If you want to know more details on how the project upgrade process works, you’ll want to read his deep dive on it.  It’s called configuring features, but it is team project process upgrade.

    What we’ve provided in 2012 is not going to solve the problem of upgrading significantly customized or custom-built processes, but it should go a long ways toward helping so many folks who don’t make significant changes to the process template.

    Though not directly related to upgrading your team projects, you can get an overview of what all has changed VS and TFS 2012 on the What’s New in Visual Studio 2012 RC page.

    Follow me on twitter

  • Buck Hodges

    After upgrading: Updating licensing and enabling async checkout for server workspaces


    The other day I wrote a post with a summary of links for upgrading team project settings to turn on all of the new features, such as code review, task board, and more.

    There are a couple more things I want to point out that you’ll want to tweak after the upgrade.

    First is licensing for the feature set.  The default setting is Standard.  You can choose to set the default to Full if all of your users are licensed for Premium, Ultimate, or Test Professional 2012 (see the editions page).  If not, you can add the people or groups who are licensed for full.  Only users with Full access will get the following features.

    • Backlog and Sprint Planning Tools
    • Request and Manage Feedback

    Without adding licensing access to the feature set, you will get "TF400409: You do not have licensing rights to access this feature: Backlog and Sprint Planning Tools" (you may see other features listed, depending on what you try access).

    From the Welcome Page, click on Administer Team Foundation Server and then click on the Web Access tab.  To change the default, click on Full and then click on “Set as default web access” to make it the default.  The screen shot shows what you’ll see after making the change.  Note that the “Limited” setting is for users who don’t have a CAL and that you want to grant access to see their work items and file new ones (also known as work item only view in the TFS 2010).


    Second, while we have a great local workspaces feature that is new for TFS 2012 and you can easily switch a server workspace to a local workspace, you may want to keep your workspace a server workspace if it is extremely large (about 50,000 files for a spinning disk, higher for SSD).  Internally, our dev workspaces are often 250,000 files or more (getting them trimmed down is an ongoing effort).  We’ve introduced a feature in TFS 2012 where checkouts in VS 2012 are completely asynchronous if you enable the setting on the TFS 2012 server.  That means that there’s never a pause in VS when it checks out a file you are editing – it happens in the background.

    As a consequence of turning on this setting, TFS disables exclusive checkout (any existing ones are converted to exclusive checkin locks) and the get latest on checkout feature.  You can find the documentation here.  You’ll also see in this dialog that you can control whether newly created workspaces default to server or local (out of the box, the default is local workspaces, since we believe that’s what the vast majority of folks will want most of the time).

    To get to this dialog, choose Team –> Team Project Collection Settings from the main menu in VS, then choose Source Control.


    [UPDATE 6/4/2012]  I've included the TF400409 error message.

    Follow me at twitter.com/tfsbuck

Page 1 of 1 (6 items)