More great resources from Microsoft


Announcing the Microsoft Cloud Roadshow

This is a free, two day technical training event for IT Professionals and Developers that provides best practices and insight from those who run cloud services across Office 365, Micros oft Azure, and Windows 10.

Developer Interview Series #1 -

In this interview series, we bring you best practices, anecdotes, and insights from developers who are building creative solutions using Microsoft technologies.

The Power of Cross Platform Development with Universal Apps and Xamarin

We're on the road to self-driving business applications

A blog by Steve "Guggs" Guggenheimer on self-driving ERP (Enterprise Resource Planning software)

Memory Compression in Windows 10 RTM

The OS is doing some clever optimizations that allow your processes to trim some of the memory but not necessarily page it out to disk.

Managing hidden apps, beta apps and visibility of in-app purchases in Dev Center

The unified Dev Center introduced several new options to manage the visibility of apps and in-app purchase.

Looking for some good resources for Windows 10 and VS 2015?


You're welcome.

Join Live Q&As and interact with the architects and engineers who are building the latest features. 

Great blog for Universal Windows Platform (UWP) devs to understand .NET Native

The latest Windows 10 developer training contents

How Microsoft Edge and Internet Explorer 11 on Windows 10 work better together in the Enterprise

Download any Visual Studio skus, including VS 2015

All the info developers may need to write apps

Great site to get online courses on Windows 10

Another great online resource for Windows 10 related videos


Ways to learn how to develop Windows 10 applications

Here is a bunch of links to resources that will help you get up to speed on what's new for developing Windows 10 applications.

Want to download Visual Studio SKU's including VS 2015 click here

Everything you needed to know to write applications using MS Tools

    Windows 10 and what's new

    Get Started




Want to take Microsoft Virtual Academy (MVA) Windows 10 Courses click here

Channel 9 has some great windows 10 related videos here


Teaching Students how to program with Python @ Synergy

Next week I will be going back to school. Well sort of.

I am going to teach a one day seminar on programming to students grades 6-12 at Synergy.

Synergy is a summer experience program offered by the DeGroote School of Business at McMaster University for students in grades 5 -12.  It affords students the opportunity to experience business as a field of study in a post-secondary setting.

I'm teaching the class using Python and Visual Studio.

Should be a lot of fun.

Gartner’s Public Cloud Storage Services


Microsoft Named a Leader in Gartner's Public Cloud Storage Services for Second Consecutive Year

Check out the details in Nicole Herskowitz's Blog.

VS 2015 Goes RTM!



You are invited to join an online event on July 20th to learn about the new features and technologies coming with this release. No registration is required! Just follow the link and save the date on your calendar! There will be live Q&A session with the VS developers involved in building the app after the pre-recorded show video. 


Visual Studio Release Event



For more details about Visual Studio 2015, check out the VS 2015 feature topics available here.

PowerShell & TFS

There have been occasions where I've wanted to create work items in bulk.

For example: Every time you create a User Story your team has several standard Tasks that need to be created. Write Test Cases, Execute test cases, Deploy to QA, etc. I don't want to manually go through dozens or work items adding the same set of work items as children to each one over and over.

Excel is a pretty good option, certainly faster than doing it one at a time via Team Explorer or the Web interface. In the past I have written C# applications to do this through the TFS API. This works great and is very easy to code.

I am always trying to force myself to get better with PowerShell, so I started searching for examples of calling the TFS API from PowerShell. This helped me piece together the parts I needed to solve this problem with PowerShell.

These were my requirements:

  • There are N Stories in TFS each one represents an existing report that needs to go through several stages of work.
  • We want 6 new Stories created as children of each Report Story so the work can be assigned to different teams in the organization then the individual teams can create their own tasks.
  • We don't want the Child Stories to all have the same title. That is fine when you see them in context of their parent like this:
    • Report 1
      • Report Attributes
      • Data Lineage
      • Gap Analysis
    • Report 2
      • Report Attributes
      • Data Lineage
      • Gap Analysis
  • However when you see the Report Attributes Story on its own it means very little.
  • Therefore I want was something like this:
    • Report 1
      • Report Attributes for Report 1
      • Data Lineage for Report 1
      • Gap Analysis for Report 1
    • Report 2
      • Report Attributes for Report 2
      • Data Lineage for Report 2
      • Gap Analysis for Report 2
  • Plus each sub story needs to have the same Area, Team and other attributes as its Parent Story

As you can see a simple cut and paste in Excel won't do, because I would still have to edit each work item to add the report name to the title and populate the fields from the parent that I want brought over.

PowerShell to the rescue

if ( (Get-PSSnapin -Name Microsoft.TeamFoundation.PowerShell -ErrorAction SilentlyContinue) -eq $null )

{ Add-PSSnapin Microsoft.TeamFoundation.PowerShell }







#Get the TFS Collection

$tfsCollectionUrl = "http://Server:8080/tfs/CollectionName"

$teamProjectCollection = [Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory]::GetTeamProjectCollection($tfsCollectionUrl)


#Get the WorkItemStore Service

$ws = $teamProjectCollection.GetService([type]"Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemStore")


#Get the Team Project

$proj = $ws.Projects["Team Project"]


Write-Host "Team Project Collection: "$teamProjectCollection

Write-Host "Project:" $proj.Name

Write-Host "---------------------"


#Write a query to get the parent work items

$ParentWorkItems = $ws.Query("SELECT [System.Id] FROM WorkItems WHERE [System.AssignedTo] = 'Dave Lloyd' ")


#the Sub Stories you want to create as Children

$ChildStoryTitles = @( "Report Attributes","Data Lineage","Gap Analysis","Impact Analysis","Remediation","Testing")


#For each Parent Work item

foreach ($WorkItemParent in $ParentWorkItems)



Write-Host "Parent workItem:" $WorkItemParent.ID "-" $WorkItemParent.Title


#For each Parent create 6 New User Stories

foreach ($childTitle in $ChildStoryTitles)


$story = $proj.WorkItemTypes["User Story"]

$workitemChild = $story.NewWorkItem()

#Append the Parent Title to the end of the Child Title

     #System fields like title can be referenced directly and show up in intelliSence

$workItemChild.Title = $childTitle + " for " + $WorkItemParent.Title

#There is an order so I used a counter to set the Stack Rank on the CHild Stories

#For non-system fields use the fields member the name of the field and the value property

$workItemChild.Fields["Stack Rank"].value = $counter

#take any fields from the parent that you want to bring down into the child

$workItemChild.AreaId = $WorkItemParent.AreaId



Write-Host " Child workItem" $workitemChild.ID $WorkItemChild.Title


#Link the CHild work item to the Parent Work item

$linkType = $ws.WorkItemLinkTypes[[Microsoft.TeamFoundation.WorkItemTracking.Client.CoreLinkTypeReferenceNames]::Hierarchy]

$link = new-object Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemLink($linkType.ReverseEnd, $workitemParent.ID)









Couldn't go to //Build/? Not to worry Build is coming to you.

June 12th at the Design Exchange you can see Joe Stegma, Jeff Burtoft, Nikola Metulev and Vlad Kolesnikov deliver a day of sessions from Build.


8:00 - close


8:00 - 9:00


9:00 - 10:30


10:30 - 10:45


10:45 - 11:45

Session #1 Universal Windows Platform

11:45 - 12:45


12:45 - 13:00


13:00 - 14:00

Session #2 Microsoft Edge & Web Apps

14:00 - 15:00

Session #3 Lightning Talks

15:00 - 15:30


15:30 - 16:45

Panel Q/A

16:45 - 17:00

Closing remarks


Register here or if you can't get there but would like to join the Live Webcast register here.

ObjectSharp at the Movies!

If you haven't registered what are you waiting for?

Click the movie poster below to Register.

MVP Virtual Conference May 14th and 15th

World-class free online conference that features technical content presented by Americas' region MVPs that is open to the public

More technical content (Level 200, 300, 400), less marketing

5 tracks: IT Pro English, Dev English, Consumer English, Mixed Spanish, Mixed Portuguese

Event will be broadcast via Lync using L+ which enhances the conferencing capabilities of Lync

Two full days of sessions with simultaneous webcasts running across all 5 tracks

Thursday May 14th and Friday, May 15th

Start at 8am PT and running until 6pm PT (Pacific)

Day 1: 45 sessions + Keynote, Day 2: 50 sessions

Keynote on Day 1 to be delivered by Steve 'Guggs' Guggenheimer, Corporate VP of DX

On Demand content available via Channel9

This event is not just for MVPs, it's for everyone!