Welcome to EMC Consulting Blogs Sign in | Join | Help

Howard van Rooijen's EMC Consulting Blog (2004 - 2010)

This blog has now moved to http://howard.vanrooijen.co.uk/blog - please update your subscriptions if you wish to receive new content.

Team Foundation Server Notification Web Services: Visual Studio 2005 Project Template

Team Foundation Server offers some extensibility through event notifications these can either be in the form of an email notification or a SOAP Endpoint. To register a notification subscription you have to use the BisSubscribe.exe tool (see http://blogs.msdn.com/psheill/archive/2006/02/01/522386.aspx for more information) - which allows you to register an email address (to which an email will be sent with the event details as long as you supply the appropriate email template to convert the serialized event) or a SOAP Endpoint which will be called when the event is raised.

Scrum for Team System uses event notification to calculate work remaining at the Product Backlog level (it aggregates all child Sprint Backlog Items’ Work Remaining field) – while developing this functionality I thought it would be good to develop a template that other people could utilize for their own modifications to Team Foundation Server. It wasn’t until I stumbled across the MSDN Magazine article “Create Reusable Project And Item Templates For Your Development Team” that I found a decent mechanism for packaging and distributing this project.

This version of "TFS Notification Web Services" supports the following events:

  • AclChangedEvent
  • Branchmovedevent
  • BuildCompletionEvent
  • BuildStatusChangeEvent
  • CommonStructureChangedEvent
  • DataChangedEvent
  • IdentityChangedEvent
  • IdentityCreatedEvent
  • IdentityDeletedEvent
  • MembershipChangedEvent
  • WorkItemChangedEvent

This Visual Studio 2005 Project Template will create a SOAP Endpoint for each of the above events. Each service has one method by default; called "Notify" this accepts two parameters - a serialized version of the event and a serialized version of the identity of the Team Foundation Server which raised the event. For ease of use I have generated types for the events and have added basic deserialization code to convert the raw XML to the type so you can perform analysis directly on them.

For example:

  public void Notify(string eventXml, string tfsIdentityXml)
      AclChangedEvent aclChangedEvent = this.CreateInstance<AclChangedEvent>(eventXml);
      TFSIdentity tfsIdentity = this.CreateInstance<TFSIdentity>(tfsIdentityXml);

To install the template, download the zip from my projectDistributor workspace, extract and copy the "TFS Notification Web Services.zip" file to the directory "X:\Documents and Settings\YOUR_USER_NAME\My Documents\Visual Studio 2005\Templates\ProjectTemplates" and then open Visual Studio 2005 and select File > New Web Site. From the "My Templates" section and then select "TFS Notification Web Services

Published Saturday, April 29, 2006 9:54 PM by howard.vanrooijen

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS



John Lawrence (MSFT) said:

A couple of people have contacted me in the past wanting more details on how to subscribe to the various...
May 7, 2006 5:51 PM

John Lawrence (MSFT) said:

A couple of people have contacted me in the past wanting more details on how to subscribe to the various...
May 7, 2006 5:51 PM

My VSTS Blog said:

I read an interesting post from John Lawrence this morning where he points us to&amp;nbsp;a VS2005 template...
May 7, 2006 11:04 PM

TrackBack said:

May 8, 2006 8:41 AM

TrackBack said:

May 8, 2006 8:41 AM

Pete Sheill said:

Howard van Rooijen is doing interesting things with Team Foundation Server events, and sharing his work.&amp;nbsp;...
May 9, 2006 10:20 PM

Howard van Rooijen's Blog said:

Roy Osherove has been blogging about Generics a few times1&amp;nbsp;2&amp;nbsp;3 this week - which reminded me...
May 21, 2006 7:41 PM

Howard van Rooijen's Blog said:

Shortly after the release of v1.0 I spotted a post from Pete Sheill, who said I had missed a couple of...
June 25, 2006 9:32 PM

SRLTeam said:

Team System has a built-in, extendable alerting mechanism. It is based on SQL Server 2005 Notification

November 20, 2006 4:52 PM

Lorenzo Barbieri @ UGIblogs! said:

February 15, 2007 10:47 AM

hinshelm said:

TFS Event Handler on CodePlex: http://www.codeplex.com/TFSEventHandler

May 1, 2007 10:08 AM

Johan; thinking out loud. » TFS Listener for logview4net said:

May 11, 2007 11:13 AM

Johan, babblar p??. » En TFS-lyssanre ??t logview4net said:

May 11, 2007 11:15 AM

How can I listen to TFS Events (without building everything from scratch)? | Where Technology Meets Teamwork said:

November 12, 2007 11:07 PM

PC152 said:

The link for TFS Notification Web Services this no good. Where I can download ? Thank you
December 21, 2007 1:59 PM

Robert Blackwood said:

We need to migrate several TFS 2008 servers to several offshore locations that will support dev/qa activities, and came across a tool called Data Manager by Onepulse, Inc. The info on their site sounds like it will suit our requirements. Who has experience with this product?  See http://www.onepulse.com.



March 23, 2009 10:41 PM

David said:

I am trying to use this new product TFS Data Manger. It looks like it will solve my problem of backing up and recovering an entitiy.  Has anyone used it for project renaming or other functions?  Can some of you try it as well?

April 6, 2009 10:05 PM

The Home Team System. | 7Wins.eu said:

July 15, 2009 4:52 PM

Simon Bennett's Blog said:

In Scrum for Team System 2.x Product Backlog Items (PBI’s) lived a simple life. They had an iteration

November 11, 2009 3:51 PM

Simon Bennett's Blog said:

It’s always been possible to descope work in the Scrum for Team System template. But the method employed

January 22, 2010 4:08 PM

Leave a Comment


This Blog



This blog has now moved - please visit http://howard.vanrooijen.co.uk/blog for new content!
Add to Live.com
Powered by Community Server (Personal Edition), by Telligent Systems