Everything you want to know about Visual Studio ALM and Farming
Brian Harry is a Microsoft Technical Fellow working as the Product Unit Manager for Team Foundation Server. Learn more about Brian.
More videos »
The October release of the Team Foundation Power Tools includes a new feature called "Team Members" that allows you to collaborate with your team even better. One of the features is integration with instant messaging that allows you to see presence, IM, video, audio, etc from inside Team Explorer. You can read more about the feature here: http://blogs.msdn.com/bharry/archive/2008/10/01/preview-of-the-next-tfs-power-tools-release.aspx.
One of the key design points of this new IM integration is extensibility. The Power Tools included providers for Office Communicator and Live Messenger. However, there are a ton of other IM systems/clients out there and we wanted to make sure no one would be left out in the cold. As a proof point, one of our MVP's has just announced a new provider for Skype. You can read about it here: http://msmvps.com/blogs/vstsblog/archive/2008/11/13/skype-collaboration-provider-for-tfs.aspx. Further, we've created a CodePlex project for people who want to write and share TFS collaboration providers (and the Skype provider will be uploaded shortly). You'll find the CodePlex project here: http://www.codeplex.com/tfscollab
If you are interested in building a provider, you can look at the Skype example. I've also included here some basic information on getting started. I've attached in a zip file that contains the source code for all of the provider interfaces and support code. You will find 3 files in the zip:
All of this is in the Microsoft.TeamFoundation.Collaboration.dll that comes with the Power Tool download - you can see them with intellisense, but having some of the comments might be useful.
You start building a provider by creating a class that implements ICollaborationProvider (or inherits from CollaborationProviderBase). Implementing it will require to you implement a few more classes:
Once you've built all of the classes you can copy your dll into the PublicAssemblies\CollaborationProviders folder under your Team Explorer installation and TFS will provide it as a choice in the list of available providers.
A few random comments that may help you getting started.
There's probably more I should tell you. Feel free to ask questions about anything you run into and I'll update the post as I see more things people are going to want to know.
Brian
Hi,
I'm very interested in this new collaborative tool. I'm trying to get it work with WLM, but i can't find where Team Members IM are defined ??
Should it be part of User AD info ?
It uses the groups in your TFS project groups: Team -> Team Project Settings -> Groups (or something like that).
You can add AD groups to those groups and that will work too.
There is a menu option when you right click on the Team Project in Team Explorer and click Team Project Settings for configuring which group with be your "team group". All groups contained in that group will be sub teams and so on.
Thanks Brian, I already have my team members visible (team & sub team). My question was : where does the WLM collaboration provider plugin take the IM-address ? I found, in my case, that it takes the mail-address from the user AD page. The problem is, my team members have different work-email and IM-account. Is there a solution to link them without creating a new provider ?
Thanks Brian - always enjoy your posts. I have a similar question to one posted by Tof - we are using Live Messenger, but each dev has their own "private" signon name (while AD is configured with "corporate" emails). We want to extend the Messenger provider in such a way as to configure the username/password (and save it to some config or registry). It looks like the SignIn() method takes a username and password, but it is unclear when (if at all) this method is called. Any tips?
So it seems similar to Colin remark...
You are correct. We use the email address from AD for your IM address. The issue was that we didn't have any obvious place to put a separate IM address. Fixing that issue is my #1 priority for our next update (in a couple of months).
Good news! I'm looking forward to this update! Thank you Brian.
Patrice Calve on Migrating VSS 2005 to TFS 2008 Ayman Badawi on TFS 2008 Web Services List Brian Harry...
Hi Brian,
I tried to implement just a basic "dummy" provider which just tells TeamExplorer that it's capable of all things.
By doing this in IsSupportedCapability, the context menu of TeamExplorer contains several more entries, but all of them are grayed.
I simply return SignedIn in AutoSignIn and SignIn and Running in ProviderReadiness.
Any hints for me? When is "AddContact" called?
Is it possible to extend team member functionality for a NON-IM function? I was thinking of a somthing that would allow members/admins to manage the public info on for each user on the team sharepoint portal
There's no specific extensibility in Team Members for this but I can't think of anything you would need. VS is extensible - you can add menu items and such. Team Explorer is also extensible - you can find the currently selected node, etc. You can use the VS SDK to get the info you need to write an add in for Team Explorer.