Intellitrace: Debugging for the 21st Century

Come out to the next Metro Toronto User Group meeting and see my talk on Intellitrace.

Intellitrace is the new debugging feature in VS 2010 Ultimate. No longer will you have to set a breakpoint at just the right spot and carefully step to it hoping to catch the problem at the source. Instead you can debug backwards to see the prior states of the application without having to restart. Among other things, I will show you how to set up Intellitrace and navigate your application backward and forward so you can find problems faster and easier than ever before.

Date & Time:

6:30 pm on Tuesday October 19th 2010



333 Bay Street
46th floor
Toronto, Ontario

You can Register here.

See you there.

Tech Days Toronto

Tech•Days—back and better than ever

Tech•Days 2010 is traveling across Canada and coming to Toronto on October 27th  and 28th. With 50 sessions across 5 technical tracks, Tech•Days 2010 is a must-attend for IT Professionals and Developers dreaming of the future—today. Immerse yourself in cutting edge technologies that will transform business. Take advantage of learning opportunities that will help you enhance your current skills and develop new ones. And hear from key speakers who will motivate you to explore new ideas, perspectives and knowledge. The track and session abstracts are final and have been designed to help you grow your technical skills and offer you the best learning experience on the latest technologies. Register Now

Tracks include:

  • Developing for Three Screens and the Cloud
  • Optimizing the Development Process
  • Collaboration: The Next Generation
  • All About Deployment
  • Managing and Helping to Secure your IT Infrastructure
  • Local Flavours

This year’s Tech·Days is gearing up to be the best yet. In addition to the great technical learning you will receive, we’ve finalized compelling offers that will be made available only to TechDays attendees, including:

If you are planning to attend any of the Azure sessions at Tech·Days, sign up for an Azure introductory offer to receive your free computer time, storage, and database in the cloud. To sign up, please visit the Azure offer site and select the Introductory offer.  You will require a credit card to sign up; however, you will not be charged unless you exceed the free allowance.

Be sure to take advantage of the Early Bird rate of $349.99 + applicable taxes (nearly 50% savings off the regular price of $699.99). Toronto Early Bird pricing ends on September 16th , 2010.

Register for TechDays Toronto Now

Tech Days 2010

Tech Days 2010 starts next month Vancouver then makes it’s way around Canada.

I’m a Session lead for a session on Build Automation.

Here are dates and locations for a Tech Day near you.

Vancouver   Sep 14-15

Edmonton   Oct 05-06

Toronto      Oct 27-28

Halifax        Nov 02-03

Ottawa       Nov 09-10

Montreal    Nov 23-24

Winnipeg   Dec 07-08

Calgary       Dec 14-15

How to Delete a TFS Project in 2010

In the past if you wanted to delete a TFS project it had to be done at the command line.

Now you can do it right from the Admin console on the Server. “I am loving the TFS Admin console.“

For those of us who create projects just to play with features and then don’t want them hanging around anymore this is much easier.


Building .net 4.0 with TFS 2008

Did you know the TFS 2008 build agent can use MSBuild 4.0 to build VS 2010 solutions

On the Team Foundation Build 2008 machine:

  • Install .NET 4.0
  • Install Visual Studio 2010 (if you are running tests)
  • Edit the TFSBuildService.exe.config file and set the MSBuildPath value to v4


The MetaData Build Process Argument

As you have read on this blog and others, the TFS 2010 build process’ now utilizes Windows WorkFlow to define it’s process. This means you can define Arguments to allow an option to be set in the Build definition instead of being hard coded in the process.

For example when you create a build definition the process tab allows you to set various options like Where to find unit tests, what is the build number format, should the build run Code Analysis? These are all defined as arguments in the build process so they can be changed when creating the build definition or even when you queue the build.

You can of course add your own arguments to a build process. Just to set the stage, lets say for example I wanted the build process to create a work item when the build completed. In the build toolbox there is an OpenWorkItem activity that I can use for this. We’ll have the build create a Task that has someone Validate the Build.

We can set the type and title of the work item we want created. However the AssignedTo might depend on the solution being built. We don’t want to hard code this in the build process but rather allow the author of the build definition the ability to set it for each type of build.


Set the Type = “Task”

Set the Title = “Validate Build (“ + BuildDetail.BuildNumber + “)”

Next create an argument called BuildValidator to take the name of the person the author of the build would like the Task assigned to.

At the bottom of the process editor click on the arguments button to show arguments for the process you are editing. In the last entry where it says Create Argument enter the name of your argument. In our case we’ll call it BuildValidator


Now we can go back and add BuildValidator to the AssignedTo property of the OpenWorkItem Activity to complete our process.

However lets set up some Metadata for this property. This is done using the Metadata Argument. In the list of arguments you will see one called Metadata click on the ellipsis under the Default Value column.

In the dialog that opens you can Add MetaData for a process parameter. Click the Add button and enter BuildValidator into the Paramater Name.

From the screen shot below you can see that you are able to set a DisplayName, Category, Description. Set an editor, whether or not it’s required and where it should show up.


Once you have the metadata entered Click OK, save the process and check it in.

Go and edit or create a build definition using this process and you will see your process argument with all it’s Metadata in the process tab of the build definition.


Canada eh!

Tonight at the Microsoft World Partner Conference MS Canada had a party for all the Canadians. It was wonderful. Food and drinks at the Hard Rock Cafe in Washington.

They brought in Great Big Sea to play for us, and they were wonderful.


Thanks MS Canada you know how to treat your partners.

My first WPC

I arrived in Washington D.C. yesterday morning for the MS World Partner Conference. I have been to many PDC’s and TechEd type conferences but this is my first Partner Conference.

Registration was very well done. Attendees just scan the bar code on a piece of paper they printed at home when they registered. Take that to a desk show ID and they hand you a card. it’s was literally 2 minutes. Very impressive.

Went to a New Horizons/MS  party last night that was fun. I met a bunch of people including a nice couple from Redmond. He works for MS and knows a few people I know from MS Canada.

The last time I was in Washington it was a lot different then it is now. It’s very clean and there is lots of activity. I Found an Irish Pub on my way to the NH party yesterday, it was buzzing with people. Nice atmosphere.

I am going to pack up now and get over to the Verizon Centre for Breakfast and the first Keynotes.

Creating a Video Recording with MS Test Manager

When manual testing using MS Test Manager you may want to change the test settings to include Video Recording.


This will capture a video of the test session so the developer can’t say “Tell me exactly what you did to create this bug.”

To get video recording to work you may have to install the Windows Media Encoder and a support update.

You can find the details and download links here.

Hierarchical Work Items

TFS 2010 has hierarchical work items. This is something that we have been waiting for and are very happy about. Along with hierarchical work items you also get two new query types.

Work Items and Direct Links - Which allows you to query for a work items with specified relationships.

Tree of Work Items – Lets you query for a work item and child work items.

For example if I wanted to return a list of User Stories and all the Development and Design Tasks to implement them it would look something like this.
















The result from this query might look something like this.


Lets say you have created tasks but have not assigned them to Requirements yet. In other words they have no Parent Work Item. Create a query something like this, so it shows Tasks and User Stories in the Parent role. 


The Result will show Tasks that were not assigned to User Stories yet.


Here’s the cool trick I wanted to show you.

By dragging the Task titled “Implement Movie Query” onto the User Story titled “Select Movie Time” it will automatically create the Parent/Child relationship. You can also reassign incorrectly assigned children to another parent.

Nice eh?