Access Team Foundation Server 2010 on Multiple Devices Using the OData Service
Microsoft recently announced the beta release of OData Services for Team Foundation Server 2010, which provides access to the TFS object model on any device that supports the HTTP protocol. OData services have existed for some time in several Microsoft products, including SharePoint Server 2010 and SQL Server 2008 R2, but this is its first implementation in Team Foundation Server.
Senior Technical Evangelist Brian Keller offered the caveat that this is as yet an unsupported product. He says that they’re working on incorporating customer feedback now, and that v1 should be available within a few months. Developers can view his demonstration of the OData Service for TFS on Channel 9, and download the beta release directly from Microsoft.
Keller also told us more about OData Services for TFS 2010.
We are very excited about the combination of Team Foundation Server and OData, and [this project] might help the product team decide whether or not to provide native OData support in a future release of Team Foundation Server. Also, even though this is unsupported, we provide all of the source code for this service so that developers can customize it, extend it, and adapt it for their own uses.
I’ve already been overwhelmed by the positive feedback I’ve received from the developer community in just the last week alone. I don’t want to steal their thunder since they haven’t all made their applications public yet, but I can share one example that is. Check out TFS Monitor, a Windows Phone 7 application from Ordina Belgium. This app uses the OData Service for Team Foundation Server to provide a really nice interface into your Team Foundation Server projects. I really like what they’ve done with support for notifications, offline support, and an easy way to contact team members on your project.
Another great example is what Doug Finke did by creating PowerShell commandlets to interact with the OData Service. I’m very excited to see the other types of experiences people will create with this.
The service connects to a specific Team Project Collection, so users are able to view Builds, Changesets, Changes, Branches, WorkItems, Attachments, Projects, Queries, and Area Paths. WorkItems and Attachments can also be created or updated. Developers can either run the service on Windows Azure, or use an existing CodePlex project with Microsoft’s hosted service.
We spoke to Keller about a few other details of the service, including its relationship with the future of Web Services.
InfoQ: With the recommended switch from Web Services to OData, is it to be expected that Web Services will be phased out in the future?
Web services continue to be integral to the Team Foundation Server architecture. But they have never been a supported way for third-parties to extend or customize Team Foundation Server, since they are subject to change over time (between releases, and even during servicing such as when service packs are released). Instead, we tell developers who wish to extend and interoperate with Team Foundation Server to use the client object model (which in turn uses the Web Services behind the scenes).
Our approach with the OData Service for Team Foundation Server 2010 is to then provide a layer on top of the client object model to provide the OData interfaces we wish to expose. This approach provides us with the best stability and isolation from potential changes in the Team Foundation Server Web Services layer over time. This diagram should help illustrate the way our OData Service for Team Foundation Server 2010 is architected (the clients on the left are just a few of the possible clients – you can imagine other devices, tablets, etc.):
InfoQ: What kinds of authentication does the OData Service support?
The OData Service for Team Foundation Server 2010 uses Basic Authentication over HTTPS. This allows users of the service to pass their credentials as plain text via the web request, and this in turn is Base64-encoded via HTTPS to provide security. It’s important to note that the OData Service for Team Foundation Server 2010 does not cache or otherwise store any user credentials. The OData Service provides a pure pass-through of the authentication to the underlying Team Foundation Server object model.