The Ramblings of Two Microsoft .NET Developers, TFS, and Visual Studio ALM Guys --- "Yes, we are both named Ed."

Speaking at Columbia Code Camp about Visual Studio Ultimate and TFS 2010



I’m going to be doing a session at the Columbia Code Camp about Visual Studio 2010 Ultimate and Team Foundation Server 2010 and really looking forward to it!  Looks like Cameron Skinner already beat me by speaking out in Charlotte earlier this week but hopefully I’ll still have some people who haven’t seen the new features just yet!

Check out the other 32 sessions in the Agenda and be sure to Register.  Already looks like a big crowd so I’m hoping it ends up being successful.  There’s a lot to get through for a one-hour overview session but I plan on sticking around to chat if anyone ends up having any questions that we can’t get answered during the presentation.

Columbia Code Camp 2010

Session:  Lap Around TFS and Visual Studio 2010 Ultimate

Time:  11:15 AM – 12:15 PM  (Right before lunch!)

Track:  Framework

Room:  Amoco Hall (1C01)

Location:  University of South Carolina, Swearingen Building, 301 Main St., Columbia, SC 29201

Cost:  Free!

 

Update: Slides are now available below.

 

Ed Blankenship

Posted in Community | Speaking | TFS | VSTS


Pricing Announced for TFS and Visual Studio 2010



I'm pleased to announce that we now have pricing information that is publicly available for the Visual Studio 2010 and Team Foundation Server 2010 products!  Remember, these are Retail prices and if you are in a company you should never be paying retail :)  Always talk to your Microsoft Sales team and ask for volume licensing deals.

Also, if you didn’t hear, a production license for TFS 2010 and a TFS 2010 CAL is included with every MSDN subscription!

 

Suggested Retail Pricing (USD) for Visual Studio 2010

With 1-Year MSDN Subscription*

Product

Buy

Upgrade

Buy

Renew

Visual Studio 2010 Ultimate

-

-

$11,899

$3,799

Visual Studio 2010 Premium

-

-

$5,469

$2,299

Visual Studio 2010 Professional

$799

$549

$1,199

$799

Visual Studio Test Professional 2010

-

-

$2,169

$899

Visual Studio Team Foundation Server 2010

$499

$399

-

-

Visual Studio Team Foundation Server 2010 CAL

$499

-

-

-

Visual Studio Load Test Virtual User Pack 2010 (1000 Virtual Users)

$4,499

-

-

-

* Subscription contents vary by purchased product.

 

Ed Blankenship



TFS 2010 Branching Guidance



Thanks to the Visual Studio ALM Rangers, we have a new release of the TFS Branching Guidance!  Think of it like TFS Branching Guidance 3.0… it was developed specifically for TFS 2010 including tidbits on best practices using all of the new branching & merging hierarchy and visualizing change features.

I often talk about branching & merging strategies with my clients and it’s always great to have some diagrams and content to go back to and leave with them so that they can delve into Configuration Management a little more.

TFS 2010 Branch Hierarchy Visualization TFS 2010 Tracking Changes Merge Visualization

Head on over to their CodePlex site:  http://tfsbranchingguideiii.codeplex.com/

Project Description
The purpose of this project is to build some insightful and practical guidance around branching and merging with Visual Studio Team Foundation Server 2010. The new release focuses on Hands on Labs and includes lots of lessons learnt from the community Q&A.
Visual Studio Team Foundation Server Branching Guide 2010
Branching and merging of software is a very large topic. It is an area where there is a lot of maturity in the software industry. This Ranger solution focuses on applied and practical examples of branching that you can use right now. The 2010 release includes discussions around branching concepts and strategies but also focuses on practical hands-on labs.
Visual Studio ALM Rangers
This guidance is created by the Rangers who have the mission to provide out of band solutions for missing features or guidance. This content was created with support from Microsoft Product Group, Microsoft Most Valued Professionals (MVPs) and technical specialists from technology communities around the globe, giving you a real-world view from the field, where the technology has been tested and used.
What is in the package?
The content is packaged in 8 separate zip files to give you the choice of selective downloads but the default download is the TFS_Branching_Guide_2010_Complete_Package_v1 if you are interested in all parts.

  • TFS_Branching_Guide_Main_2010_v1.zip --> Start here
  • TFS_Branching_Guide_Scenarios_2010_v1.zip
  • TFS_Branching_Guide_Scenarios_2010_Poster_v1.zip
  • HOL_Quick_Start_Basic_Branch_Plan_2010_v1.zip
  • Lab_Files_HOL_Quick_Start_Basic_Branch_Plan_v1.zip
  • TFS_Branching_Guide_Q&A_2010_v1.zip
  • TFS_Branching_Guide_Diagrams_2010_v1.zip
  • TFS_Branching_Guide_2010_Complete_Package_v1
Team
Bill Heys, James Pickell, Willy-Peter Schaub, Bijan Javidi, Oliver Hilgers, Bob Jacobs, Sin Min Lee, Neno Loje, Mathias Olausson, Matt Velloso
How to submit new ideas?
The recommended method is to simply post ideas to the community or to contact the Rangers at http://msdn.microsoft.com/en-us/teamsystem/ee358786.aspx.

Ed Blankenship



geekSpeak: Migrating from Visual SourceSafe to Team Foundation Server 2010



Tomorrow, I’ll be presenting in this month’s geekSpeak about migrating from Visual SourceSafe to Team Foundation Server 2010.  I’m sure we’ll get through the VSS content pretty quickly so with the time left we’ll talk about new branching & merging features, branch visualization, and gated check-in.

In this geekSpeak, Microsoft Most Valuable Professional (MVP) Ed Blankenship discusses migrating source code from Visual SourceSafe, including the history. There has not been a better time to migrate to the newest Microsoft source control offering, Microsoft Visual Studio 2010 Team Foundation Server, because Microsoft Visual SourceSafe support is ending soon and Team Foundation Server will be part of Microsoft Developer Network (MSDN) subscriptions in 2010. Ed discusses specific version-control features to help you become more productive like branching and merging visualization, annotate, shelving, and gated check-in. This geekSpeak is hosted by Glen Gordon and Brian Hitney.

Registration for the event available here:  http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&EventID=1032438525

BTW – The end-of-life support date for Visual SourceSafe is mid-year 2011.  Don’t get stuck on an unsupported product :) especially one that’s holding your source code!

 

Ed Blankenship

Keeping Software Up to Date with CNET’s TechTracker



I really like to keep software on my computer up to date.  You never know when there are new features available, bugs fixed, or security vulnerabilities plugged unless you go out and look for them (and keep up to date with your Windows Updates.)  About a month or so ago I noticed that CNET had a new tool that I thought I’d try on my computers called TechTracker.  You can install it on up to three machines for free and it will just sit in your tray monitoring for updates.  I got a popup this morning letting me know there is a new version of Adobe Reader available and I was taken to this screen where I could download the new update from Adobe’s website.  Very handy!

CNET TechTracker Updates

Ed Blankenship



How to Point to Report Builder 2.0 in SQL 2008 Reporting Services



Report Builder is an awesome tool in lieu of using Microsoft Office Excel or Business Intelligence Studio to create custom reports with SQL Server 2008 Reporting Services.  The version of Report Builder that shipped with SQL Server 2008 is Report Builder 1.0.  Report Builder 2.0 was later released with plenty of new features and a better report writing experience.

The only issue though is that the most discoverable way to install Report Builder using Click-Once is through Report Manager but it points to Report Builder 1.0 even after you install Service Pack 1 for SQL Server 2008.

SQL 2008 Reporting Services Report Manager Report Builder Link

If you installed Service Pack 1 for your Reporting Services instance, there is actually a way to change the behavior though to point it to the Report Builder 2.0 Click-Once install.  Click “Site Settings” in the upper-right hand corner and then fill out the Custom Report Builder Launch URL to “/ReportBuilder/ReportBuilder_2_0_0_0.application” if your server is setup in Native mode (which it should be if it is the RS instance for TFS) or “/_vti_bin/ReportBuilder/ReportBuilder_2_0_0_0.application” if it is in SharePoint Mode.

Custom Report Builder Launch URL

 

Alternately, if you want to download the full MSI installer you can over at Microsoft Downloads:  http://www.microsoft.com/downloads/details.aspx?FamilyID=9f783224-9871-4eea-b1d5-f3140a253db6&displaylang=en.  Thanks to the Reporting Services Team Blog for the handy information.

 

Ed Blankenship

Posted in Reporting | SQL | TFS

TFS 2010 and Visual Studio 2010 Launch Date



Visual Studio 2010 LogoIt wasn’t long ago that an original launch date (March 22, 2009) was announced for Team Foundation Server 2010, Visual Studio 2010, and the .NET Framework 4.0.  It then got postponed after the product teams realized that they weren’t going to meet that date and have a solid product up high release standards.  A new launch date has been announced to be April 12, 2010.

Now remember that launch date doesn’t mean release date!  I had a little discussion about it on a previous blog post but hopefully everything will get wrapped up, RTM, and will be available to MSDN Subscriber Downloads before the launch date.  Fingers crossed!

[Updated] Also, a Release Candidate will be available for all of these products in February and will include a public  “Go-Live” license just like Beta 2.  Be sure to upgrade to the RC as soon as possible and report any issues that you may be experiencing quickly since the time between RC and RTM will be very short.  I’m sure the product group’s largest goal is to make sure there are no show-stoppers being discovered in the RC.

 

Ed Blankenship

Posted in TFS | VSTS


Test Scribe: Test Plan Documentation for TFS



Surprisingly, I’ve heard from several people that they still want a hard-copy document form of artifacts that are getting stored in TFS like Test Plan documents or Requirements documents.  I can understand some situations like if you need to follow certain regulatory requirements as so forth but don’t really see the need beyond that why you would ever want a hard-copy :)  Help me understand more if you happen to be in that boat!

Anyhow, if you need a hard-copy test plan document then you are in luck!  Test Scribe has just been released which will take your test plan information, artifacts, and progress from TFS and generate a nice Word document.  Quite handy!  If only we can get the Requirements document power tool now then we’ll satisfy that other group of people!

I'd like to announce the beta availability of Team Test's first Power Tool release for Visual Studio 2010: Test Scribe.  This tool allows users of Visual Studio 2010 Ultimate Beta 2 to generate a Word 2007-compatible Test Plan Document from their plan, suites, test cases, and other artifacts.  Using the tool is a fairly straightforward process, including:

   1. Launch the Test Scribe tool.
   2. Enter your server/collection URL (e.g. http://myserver:8080/tfs/DefaultCollection)
   3. Select a Project.
   4. Select a Test Plan (previously created in MTM).
   5. Click the Generate button.

The resulting document will contain (among other things) a list suites with test cases and steps detail and pie charts detailing the overall progress of your Test Plan.  You can see a screenshot below showing several sections of a generated document.  Feedback is welcome and appreciated, and you can find the tool download at http://visualstudiogallery.msdn.microsoft.com/en-us/d18873c7-909d-4788-a56e-0c496a1d8bb9.

image

Many thanks and appreciation to everyone who helped get this tool out the door.

More information available here:  http://blogs.msdn.com/vstsqualitytools/archive/2010/01/11/test-scribe-test-plan-documentation-for-mtlm-plans.aspx

 

Ed Blankenship

Posted in TFS | Tools | VSTS | VSTS Testing


Custom Workflow Activities for TFS Build 2010



Not sure if you have seen this but some of the product managers on the TFS Build team at Microsoft have been putting together some great blog posts for how to create custom build activities and get a little background about Windows Workflow 4.0 and how it relates to TFS Build 2010.

CP_banner_111x111_gen.jpgAlso, we’ve been trying to put together a CodePlex project that’s designed to be a central location for contributions of Team Build 2010 customizations like custom activities, build process template customizations, build tools, etc.  You can take a look here:  http://teambuild2010contrib.codeplex.com/.  I’d encourage you to think about contributing any of your customizations to this project.  I know I’m personally hoping that it will be the “go-to” place for some of the common build activities that people need.  If you happen to have any feature requests for build activities, feel free to request one in the discussions and we’ll add it to the backlog:  http://teambuild2010contrib.codeplex.com/Thread/List.aspx

 

Thanks!

Ed Blankenship



TFS - Shared Resource Scope Activity in Team Build 2010



In Team Foundation Server 2010, you know have the ability to (easily) have multiple build agents on the same build server.  You were able to do this in TFS 2008 but it really wasn’t supported.  However, this raises an interesting challenge:  some processes and executables aren’t designed to handle being run simultaneously in multiple contexts on the same build machine.  Some applications can’t or have a difficult time handling concurrent access from multiple build servers at the same time as well.

I’ve listed a few of the scenarios that I can I remember off the top of my head:

  • Automated UI Testing – running automated UI tests from two different builds on the same build machine can lead into utter confusion!  :)  Mouse clicks going everywhere!  Let’s just stick to one set of automated UI tests running on an individual machine at the same time.
  • Running Automated Tests that Collect Code Coverage Information -  This was an interesting limitation that I found in the 2008 release.  It seems that the code coverage data collector did not support collecting from more than one automated testing run happening concurrently on the same machine.  (This might actually have been addressed in the 2010 release but I’m not quite sure.)
  • Dotfuscator – As far as I remember, this was another tool I remember having concurrency issues on the same build machine.
  • Symbol Server Store Access – This is something new to me and I’m not intimately familiar with all of the details behind this limitation.  It looks like you can not use the symbol server publishing tools against the same symbol server storage location at the same time even on multiple machines.  (See example below.)
  • Other Tools – I’m sure there are other build processes and tools we use that have limitations.  I’m sure many will be found out now that concurrent usage is more easily possible now.  Leave a comment below if you find any other examples and I’ll add them to this list.

Thankfully, the Team Build folks have provided us the ability to handle those specific scenarios where concurrent access isn’t supported as part of the build process.  That’s through the use of the Shared Resource Scope activity.  (Microsoft.TeamFoundation.Build.Workflow.Activities.SharedResourceScope)

Basically what it does is define a region of the build process that will only be allowed to be entered by one build across the entire Team Project Collection (even multiple build machines/agents) that share a matching resource name string.  It’s very similar to how we use the lock statement in C# or creating mutex objects.  (You might have to dust off those old computer science books from school.)

However, if you only want to limit the scope to a particular build server (instead of the entire Team Project Collection) then you can just put the build server machine name into the resource name string.  Don’t hardcode the machine name though and instead use one of the properties that are provided for you (in case the build doesn’t run on the same build machine every run because of the new agent pooling feature.)  Instead you could use an approach like this for the resource name expression:

=String.Format(“{0}_{1}”, BuildAgent.BuildServer, “AutomatedUITesting”)

Example in the Default Build Process Template in TFS 2010

Interestingly, there is an example usage of this activity and pattern available for us to look at in the default build process template file that’s available out of the box.  It’s usually located in version control here:  $/TeamProjectName/BuildProcessTemplates/DefaultTemplate.xaml.  Lower down in the default process, there is a section that attempt to publish the symbols to a symbol server storage location if you have specified it in your build definition properties.  My Assumption:  However, since only one build server can be publishing to a particular location at the same time, then a controlled scoped region is created based on the location property. (SourceAndSymbolServerSettings.SymbolStorePath)

That way you don’t have to worry about any build agent inside a Team Project Collection ever publishing to the same symbol server location at the same time.

Recently added:  It looks like this particular issue has already been discussed and that my assumption above is correct.  Adam blogs about it here.  Check it out.  How about that?

One more thing to note about symbol server publishing is the use of the SharedResourceScope activity in the build process template. The purpose is to make sure that concurrent instances of symstore.exe aren’t adding symbols at the same time, as the tool doesn’t support concurrent access to a symbol server share. SharedResourceScope uses the Team Foundation Server to control access to an arbitrarily named resource, in this case the share. That way, if multiple builds are trying to publish symbols at the same time, the requests are queued and only one will publish at a time, while the others wait (instead of fail due to file access errors or “step on each others’ toes”). PublishSymbols does not care about shared resource locks, but it is contained within the SharedResourceScope, so won’t be executed until the lock is appropriately acquired.

image 

image

Other Properties Available for SharedResourceScope Activity

As you can see above there are a few other properties available for you to configure for this activity:

  • MaxExecutionTime:  This is a TimeSpan that can be specified to limit the amount of time that a particular agent has control of the scope.  This is particularly useful for a resource scope that is going to be heavily used and can help you prevent a rogue build from eating up that resource indefinitely.  If the process inside the scope can’t complete before this time period has expired then an exception gets thrown.
  • MaxWaitTime:  This is a TimeSpan that can be specified to limit the amount of time to wait for control of the scope.  The example above limits the amount of waiting to one hour and if it doesn’t reserve the scope within that time period an exception gets thrown.

 

Thanks to Aaron Hallberg for all of the background information and existence of this activity!

 

Ed Blankenship