# Saturday, January 30, 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!

 

Update:  The recording of this presentation is now available on Channel 9 here:  http://channel9.msdn.com/shows/geekSpeak/geekSpeak-Recording-Migrating-to-Team-Foundation-Server-from-Visual-SourceSafe/ .  Sorry about the dropped call in the middle of the presentation.  Also, here’s some links that I mentioned during the talk:

 

Ed Blankenship

posted on Saturday, January 30, 2010 4:16:00 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Friday, January 29, 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 on Friday, January 29, 2010 6:29:30 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Tuesday, January 26, 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

posted on Tuesday, January 26, 2010 12:03:22 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Wednesday, January 20, 2010

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

posted on Wednesday, January 20, 2010 5:22:56 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Tuesday, January 19, 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

posted on Tuesday, January 19, 2010 8:46:38 PM (Eastern Standard Time, UTC-05:00)  #    Comments [2] Trackback

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

posted on Tuesday, January 19, 2010 1:41:33 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Thursday, January 14, 2010

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 on Thursday, January 14, 2010 3:49:12 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback

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 on Thursday, January 14, 2010 9:44:07 AM (Eastern Standard Time, UTC-05:00)  #    Comments [2] Trackback
# Tuesday, January 12, 2010

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 on Tuesday, January 12, 2010 9:45:33 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Monday, January 11, 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

posted on Monday, January 11, 2010 3:21:47 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Wednesday, December 09, 2009

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

posted on Wednesday, December 09, 2009 1:24:39 PM (Eastern Standard Time, UTC-05:00)  #    Comments [1] Trackback

Just saw the new stadium diagram for the ALM features (Visual Studio “Team System”) in Visual Studio 2010 and Team Foundation Server 2010.  Enjoy!

 

Visual Studio 2010 ALM and TFS 2010 Stadium Diagram

Ed Blankenship

posted on Wednesday, December 09, 2009 10:51:29 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Wednesday, November 25, 2009

I learned a very important tip today about Microsoft Test & Lab Manager.  The data collectors that you can specify in your test runs (which by the way are extremely helpful) don’t necessarily attach data to the test run or bug all of the time.  It depends on the actual success of the test case during the test run.  Two example were mentioned today:Visual Studio Data Collectors in Microsoft Test and Lab Manager

  • IntelliTrace – The IntellIiTrace data collector will only output a trace log if the test case fails.
  • Test Impact Analysis – The Test Impact data collector will only publish test impact data back to Team Foundation Server if the test case succeeds.

So this leads us to the fact that we won’t ever see both of them together at the same time.  If you see an IntelliTrace trace log file for a test case then you won’t be getting any test impact data published to the server (and vice versa.)  Be sure to have both of them enabled though if you would like to get that type of data when the test case ends.  This also helps me in figuring out why I haven’t been getting impacted tests in my build reports and the handy view of “recommend tests” based on choosing a build in MTLM.  I need to actually pass some tests to get that data published back up to the server!

 

How about that?  Very handy to know.  The Visual Studio Quality Tools team has a blog that has been very active lately.  If you would like to learn more about Microsoft Test & Lab Manager head on over to the site.

Ed Blankenship

posted on Wednesday, November 25, 2009 6:13:23 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Monday, November 09, 2009

If you’ve had the responsibility of administering a TFS 2005 or TFS 2008 server you may have run in the “Display Name” problem before.  In March 2007, the TFS Work Item Tracking team put a great post together about what’s exactly going on and it’s available here:  http://blogs.msdn.com/teams_wit_tools/archive/2007/03/15/handling-display-name-changes-in-team-foundation-server.aspx

Basically, in TFS work item types, you can specify a field to hold the name of a user like in the Assigned To field.  The value that gets stored is basically just a string value of the person’s Display Name in Active Directory.  Not so bad except it’s not a strongly-typed object of a user but is just a string.  The problem comes when the user’s display name gets changed in Active Directory like when an employee gets married and take’s their spouse’s last name.  This causes a problem because all of the work items are still assigned to “Jane Doe” instead of “Jane NewLastName".  Even worse, “Jane Doe” is not even a valid user any longer so the work item becomes in an invalid state.  It’s kind of a maintenance nightmare.

Background:  Every hour an Active Directory synchronization job gets queued up and processes changes to Active Directory like new users, group membership changes, etc.  TFS keeps a cache of AD locally to help with operations across several subsystems.  For users, it caches certain information like the primary e-mail address, display name, domain/user name, SID, distinguished name, etc.

Thankfully there was something that helped us out available in the TFS Power Tools release called “TFS Users.”  You had to know about the display name change so working closely with your IT department was important.  Thankfully, it looks like TFS 2010 has added some abilities to notice those display name changes and proactively help you out within your system.  One of those changes is a new attribute in your work item type definitions that tells TFS which fields to automatically update.  I’ve bolded and underlined all of the changes from the previous default definition of the MSF Agile Bug.

<FIELD name="Assigned To" refname="System.AssignedTo" type="String" syncnamechanges="true" reportable="dimension">
  <VALIDUSER />
  <HELPTEXT>The person currently working on this bug</HELPTEXT>
</FIELD>
<FIELD name="Activated By" refname="Microsoft.VSTS.Common.ActivatedBy" type="String" syncnamechanges="true" reportable="dimension">
  <WHENNOTCHANGED field="System.State">
    <ALLOWEXISTINGVALUE />
    <READONLY />
  </WHENNOTCHANGED>
</FIELD>
<FIELD name="Changed By" refname="System.ChangedBy" type="String" syncnamechanges="true" reportable="dimension">
  <ALLOWEXISTINGVALUE />
  <VALIDUSER />
</FIELD>
<FIELD name="Closed By" refname="Microsoft.VSTS.Common.ClosedBy" type="String" syncnamechanges="true" reportable="dimension">
  <WHENNOTCHANGED field="System.State">
    <ALLOWEXISTINGVALUE />
    <READONLY />
  </WHENNOTCHANGED>
</FIELD>
<FIELD name="Created By" refname="System.CreatedBy" type="String" syncnamechanges="true" reportable="dimension" />
<FIELD name="Authorized As" refname="System.AuthorizedAs" type="String" syncnamechanges="true" />
<FIELD name="Resolved By" refname="Microsoft.VSTS.Common.ResolvedBy" type="String" syncnamechanges="true" reportable="dimension"> <WHENNOTCHANGED field="System.State"> <ALLOWEXISTINGVALUE /> <READONLY /> </WHENNOTCHANGED> </FIELD>

If you have custom process templates or you have modified the out of the box process templates, you’ll have to do some maintenance to your existing team projects to light up the new TFS 2010 features available including the ability to automatically sync the name changes from Active Directory.  If you are using the MSF Agile template you will want to update the following fields:

  • Assigned To
  • Activated By
  • Changed By
  • Closed By
  • Created By
  • Authorized As
  • Resolved By

For all other process templates, you’ll want to update the work item types that have fields that hold display name values.  There is actually some great information already available about this particular topic available in the MSDN Library:  http://msdn.microsoft.com/en-us/library/dd286562(VS.100).aspx

One of the other things we notice from the changes are the addition of the ALLOWEXISTINGVALUE rule to some of the fields.  This rule allows a previously entered value to still be valid even if that value is no longer a valid value.  In addition, there are also some state/transition rule changes for allowing the existing value.  Be sure to do a diff against your current work item type definition and the new MSF Agile work item type definitions to find all of the new changes.

For more information about managing work item type fields in TFS, see this MSDN Library Article:  http://msdn.microsoft.com/en-us/library/dd236909(VS.100).aspx

 

Ed Blankenship

posted on Monday, November 09, 2009 2:26:38 PM (Eastern Standard Time, UTC-05:00)  #    Comments [2] Trackback

I don’t know how many times I’ve heard this suggestion from people:  “Microsoft should just buy TeamPrise and make the Eclipse and non-Windows clients just part of the TFS product.”

That day is finally here.  Microsoft has purchased the TeamPrise-related assets from SourceGear.  More details about the acquisition announcement are available at Microsoft’s PressPass site and also the Pathways site for TeamPrise and Visual Studio.

Also, in addition to purchasing the TeamPrise assets, Microsoft has also hired a majority of the development team including, most notably, Martin Woodward who has been an absolutely fantastic part of the “Team System” MVP group.  It will be really sad to see Martin leave the group (as of today) but something tells me that he won’t be hiding :)  Congratulations to him and the entire team!

Now the one thing that i think people might be worried about will be what will happen to the future of the TeamPrise clients and will that development team be able to innovate as quickly as they had before?  I’m pretty sure the same “mission” will be in place and the team will be able to more closely leverage the other team members and assets within the Team Foundation Server product team.  As far as speed of innovation, that’s tough to tell.  Most other Microsoft products have tons of release requirements that slow them down such as localization, security reviews, etc.  All of which are great things but do end up slowing you down if you have to support those requirements.  Who knows if the TeamPrise development team will have to support them?  My guess is that if they’re going to be part of the “Visual Studio” product line that they will have the very similar if not the same requirements as the rest of the stack.  We will definitely see…  Another possible hang up is that Microsoft (specifically Developer Division) will have to learn how to sell & market a Java/non-Windows based product.  I can only imagine there will be some growing pains.

As far as licensing, right now you’ll need to still purchase the TeamPrise clients and get support from TeamPrise directly.  A Microsoft-branded “TeamPrise” client will become available with the 2010 release.  If you own a current license of the TeamPrise 3.3 software it looks like you’ll be upgraded to the new version when it is released.  Also, if you own a Visual Studio 2010 Ultimate with MSDN license at the time you’ll get access to download the new clients from MSDN Subscriber Downloads.  After the 2010 release, it looks like there will be a new SKU available to be able to purchase just the new clients that will also include a CAL for Team Foundation Server that will run somewhere around $799 retail.

I’m excited about the decision and it looks like both Martin and Brian Harry are as well.  I’m excited to see the platform broaden and truly support teams who have heterogeneous development environments!

 

Ed Blankenship

posted on Monday, November 09, 2009 11:57:26 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Tuesday, November 03, 2009

Looks like there is a new migration tool being made available that helps you with importing test cases into TFS 2010 which now has Test Case Management as one of it’s new features.  It’s now available on CodePlex and works with the Beta 2 release.  Here’s some of the features available:

  • Imports Test case information (along with Test Steps) present in Excel into TCM/TFS server – Note: This is ONE way migration only
  • Provides a wizard based UI to run the tool one file at a time
  • Provides a command line support to run the tool in a batch mode
  • Allows you to save your selections/configurations into a mappings file to be reused later
  • Default mapping file that works across both Agile based and CMMI based projects are shipped along with the tool

http://tcmimport.codeplex.com/

I believe some systems allow you to export your test cases into Excel (HP Quality Center?) so this might be a good migration option.  You can also use the TFS 2010 SDK to build a custom migration utility that will import from another system without having to go through Excel at first.  Take a look at it and see if it might be helpful for you!

 

Ed Blankenship

posted on Tuesday, November 03, 2009 11:24:54 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Thursday, October 29, 2009

Over the past two weeks, I’ve really been hitting VS & TFS 2010 Beta 2 pretty hard.  I’ve found a few things and used Connect to report some suggestions & problems that I’ve found.  The product teams have been very active about responding to each of them and it’s been a very pleasant experience.

It looks like the product team wants even more feedback from everyone so if you could head over to the 2010 Beta 2 Survey and give your feedback, I know it will be greatly appreciated.  It’s pretty quick and easy with about 11 questions and about 3 optional free-fill questions that you can type longer responses in.

Visual Studio 2010 Beta 2 Logo Feedback

Ed Blankenship

posted on Thursday, October 29, 2009 5:59:15 PM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Wednesday, October 21, 2009

I get this question a lot.  People often wonder what Team Foundation Server (TFS) is and why would you use it?  I read a blog post earlier today from Jason Zander who has the best explanation of TFS that I know.  Also, he hits the nail on the head about the “well, can’t I just integrate all these other systems together?”  I love the analogy he uses (emphasis added:)

First let’s talk about “why TFS?”  The goal of Team Foundation Server is to create a central repository with a set of tools that make it really easy to collaborate between roles.  You could try to stitch together multiple disparate systems as follows:

image

In this case each system has its own storage, own set of identity for assets, own commands and tools.  Getting this going is like trying to hook up a set of custom stereo components:  you can pull it off but it’s going to be a lot of work and you are missing out on some stuff.

What I’d rather have is a system which can integrate these items together and then enable my default work flow through the system:

image

Even better, with TFS 2010 you get the opportunity to add even more pieces to the ALM puzzle under one roof:

image

A good Application Lifecycle Management (ALM) system has all of these systems integrated together and linked to provide you as much transparency, traceability, and metrics available about the relationships between the artifacts in those systems.  TFS is the best system available today that has all of that built together.

 

Ed Blankenship

posted on Wednesday, October 21, 2009 11:18:32 PM (Eastern Daylight Time, UTC-04:00)  #    Comments [3] Trackback

If you missed the news on Monday, Visual Studio 2010 and Team Foundation Server 2010 Beta 2 are available to download by both MSDN Subscribers and everyone else in the world!  This is really huge!  Beta 2 has already been a really solid release since I first downloaded and installed it.  The performance of the new WPF-based IDE has been dramatically improved from earlier builds.

Visual Studio

Visual Studio Extensibility

.NET Framework

Team Foundation Server

Test Products

Express

There was also a ton of news coming out ranging from Licensing and SKU changes, the launch data for the 2010 release (which is March 22, 2010,) what you get upgraded to if you have an active MSDN Subscription on a launch day, and a whole bunch of great things!  I’m really excited about this 2010 release wave.  There’s a ton of great stuff designed to make everyone’s life that much easier when they’re developing, testing, and building applications.

“Go-Live” License

One of the great things about the Beta 2 release is that Microsoft has announced that you can use Beta 2 in production environments and also to build production applications.  This “go-live” license includes .NET 4.0, Visual Studio 2010, and Team Foundation Server 2010.  Jeff Beehler blogged earlier about what “go-live” actually means so be sure to read through it closely.  Beta 2 is a very solid Visual Studio and TFS build.  However, there is always some risk with upgrading production environments using Beta software.  Be sure you understand the risks before taking the plunge. 

I’d suggest that if you are able to take the risk that you upgrade to both Visual Studio 2010 and TFS 2010 Beta 2 as soon as you can.  Remember that even if you don’t want to run .NET 4 for your production applications, you can still use Visual Studio 2010 to edit solutions/projects that target .NET 3.5, .NET 3.0, and .NET 2.0!

If you’re not able to take the risk to “go-live” during the Beta 2 timeframe then I would definitely suggest that you begin you testing & evaluation process now using the Beta 2 build.  You’re able to test out the upgrade process from your TFS 2008 databases and discover any possible hang-ups during the upgrade process. (I personally haven’t had any for the servers that I have upgraded but you never know!)  By getting your planning & testing done now, you’re in a better position to upgrade when TFS 2010 is released at the beginning of the year.  Another thing you could do to get ready is be sure that you’ve upgraded any prerequisites.  For example, even while you are running TFS 2008 you can upgrade your SQL Server instance to 2008 and upgrade your Windows SharePoint Services install to WSS 3.0.  Using SQL Server 2005 or WSS 2.0 is not supported in TFS 2010 so this will just make things a ton easier for you when it actually is time to upgrade.

Launch Date vs RTM

I mentioned about that the launch date was announced for March 22, 2010.  However, launch doesn’t necessarily mean Release to Manufacturing (RTM.)  Products usually RTM before launch day but there have been a few exceptions.  For example, SQL Server 2008 RTM’d much later than it’s launch date :)  Hopefully that never happens again.  What’s great about RTM is that if you’re an active MSDN subscriber, you usually get access to download the final build shortly after RTM based on past releases of products.  Launch day for Windows 7 is tomorrow but RTM was earlier this summer and MSDN Subscribers have had access since August 6, 2009.  (This does not mean in any way that there will be that much lead time for the Visual Studio 2010 release… I’d say it’s probably very unlikely!)

 

There’s really a lot of news to process so I’ll be posting some articles next week that goes into detail about several of them.  If there’s anything in particular that you’re not quite sure of, feel free to contact me or leave me a comment about something that needs more information.  In the meantime, please do help out by making this the best Visual Studio release ever.  If you find a bug or think a scenario could be improved (be reasonable) be sure to log it at the Microsoft Connect site.

Take care and have fun,

Ed Blankenship

posted on Wednesday, October 21, 2009 11:01:01 PM (Eastern Daylight Time, UTC-04:00)  #    Comments [1] Trackback
# Friday, September 25, 2009

Disclaimer:  I’m writing this at a time when only Beta 1 is available for Visual Studio Team System 2010 so the information may have changed by the time it has been released.  I have included links to the relevant MSDN articles which should remain valid after release time so just double-check.

This small little additional feature is actually one that I have been looking forward to for a long time.  In Visual Studio Team System and Team Foundation Server 2010, you will now be able to limit your test runs to specific test categories with a new command-line option on MSTest.exe and therefore in Team Build 2010 which calls MSTest.exe automatically for you.

Back in the day… You would need to create test lists (.VSMDI files) in VSTS 2005 and VSTS 2008 to basically “categorize” your automated unit tests by putting them into different lists.  One handy thing about them is that the lists could be hierarchical which helps out at build time.  When you wanted to run a specific subset of tests either locally using MSTest.exe or in Team Build, you would just specify the .VSMDI file to use and then the test list you wanted to run.  Not too bad, but it’s a pain to keep up with those test lists.  Serious pain.  However, the thing that I hated absolutely most about them is that you could only edit the .VSDMI files if you purchased Visual Studio Team Suite or the Tester Edition.  So that means that if you have just the VSTS Developer Edition then you are pretty much out of luck.  For most places that I have seen, it’s usually the developers maintaining those test list files not the testers.

For this reason I actually prefer and will be recommending the Test Container and Category approach going forward in 2010.  Test Containers are essentially files that contain tests in them.  For example, unit tests (and other compiled tests) are stored in .dll files and ordered tests are in .orderedtest files.  I like this approach.  In automated builds I just want to specify which files contain the tests that I want to run and then if I want to limit the test run to just a subset I can just list which categories to run. 

A great example of this is what I call the “BVT” category.  These are the tests that you have identified to be your “smoke” tests that make sure a build is okay.  If these tests fail then you’ve probably got a bad build.  (BVT = Build Verification Tests) So I would limit the test runs on any CI or even the new Gated Check-In builds to just those BVT tests.  Quick & dirty verification is really all you need for those builds leaving a more extensive automated test pass to happen during the nightly or weekly build.  If you’re not familiar with the new Gated Check-In feature in TFS 2010, check out Brian’s blog post or Patrick’s blog post for more information.  It’s a killer feature.

This does rely on one thing though… each “developer” of an automated test needs to make sure they add the correct attribute(s) to their test methods.  You don’t have to keep up with maintaining the .VSDMI files any longer but you do have to make sure you mark each method appropriately.

You can even use test categories with the new types of automated tests available in 2010 like Coded UI Tests.  It doesn’t just have to be unit tests.

How to Specify a Category in an Automated Test

This part is pretty easy.  You just add as many TestCategory attributes to the test method as you need.  Here’s an example in C# using multiple test categories for a test method called DebitTest:

[TestCategory("Nightly"), TestCategory("Weekly"), TestCategory("Monthly"), TestMethod()]
public void DebitTest()
{
}

Alternately, you can select a test in the Test View tool window and then set the category by using the Properties tool window in Visual Studio and it will add the appropriate attributes to the methods for you.

image

How to Specify which Categories to Run in an Automated Build with Team Build 2010

Okay… this part is easy too. :)  Build definitions now have build properties that can be exposed to the end user in the Build Definition Details dialog or in the Queue Build dialog.  This is handy because you could by default not set a filter to run under normal circumstances (triggered or default manual builds) or you can change it when manually queuing a build if you want that build to run differently.  Either way it’s the same for setting the categories.  If you’re using the default build process workflow that is available out of the box, then just scroll down through the property list until you reach the Testing section which includes a build property called Test Category.  Leave it blank if you want to run all tests or specify the categories you’d like to limit it too:

image image

According to the MSDN documentation for the Test Category switch, you can combine multiple categories in different combinations instead of just specifying one category.  Very handy – here’s some examples:

  • /category:group1 runs tests in the test category "group1".

  • /category:"group1&group2" runs tests that are in both test categories "group1" and "group2." Tests that are only in one of the specified test categories will not be run.

  • /category:"group1|group2" runs tests that are in test category "group1" or "group2". Tests that are in both test categories will also be run.

  • /category:"group1&!group2" runs tests from the test category "group1" that are not in the test category "group2." A test that is in both test category "group1" and "group2" will not be run.

  • What I’m not sure about is whether you can specify test categories when using the old Upgrade Build Workflow template .xaml file… I’ll check on that and then update the blog post.

    It’s worth noting that if you are going to use the test category method to limit test runs, you must use test containers.

    Limiting Test Runs Based on Test Priorities

    If you noticed in the screenshot above from Team Build, you can also limit your test run to tests that are in a specific priority range.  How do you specify the range for your test methods?  You can use the Properties window when selecting a test in the Test View tool window or you can add the Priority attribute manually to the test method.  After that you just specify the range of priorities to use in the test run.

    [TestCategory("Nightly"), TestCategory("Weekly"), TestCategory("Monthly")]
    [TestMethod()]
    [Priority(1)]
    public void DebitTest()
    {
    }

     

    Additional Note:  It appears that the product team is actually encouraging people to move away from the old .VSDMI approach in favor of categories.  Check their note out:

    NoteNote

    Test categories are recommended for use over the test lists functionality from earlier versions of Microsoft Visual Studio Team System Test, unless you have to create a check-in policy which requires a test list. For more information about check-in policies, see How to: Add Check-In Policies.

     

    Take care and happy testing,

    Ed Blankenship

    posted on Friday, September 25, 2009 11:10:32 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback