OData Service for Team Foundation Server 2010

October 26 2011 Update: The beta has been replaced by v1 of this release. Please visit this page.

I’m pleased to announce the beta of the OData Service for Team Foundation Server 2010 is now available!

What the heck is an OData Service for Team Foundation Server 2010?
I’m glad you asked. The purpose of this project is to help developers work with data from Team Foundation Server on multiple device types (such as smartphones and tablets) and operating systems. OData provides a great solution for this goal, and has been embraced by numerous developers for building great device-specific applications. OData is accessible from any device and application stack which supports HTTP requests. This OData service interacts directly with the
TFS client object model.

What is OData?
OData exposes a way to work with data over the web. If you’re new to OData, I suggest spending a few minutes at http://www.odata.org/ reading about this evolving standard. It uses interfaces similar to REST, so that you can programmatically consume and manipulate data from any device or application stack which supports HTTP requests. DPE has been working with several organizations (such as PayPal, Facebook, and Netflix) and product groups to enable OData where it makes sense to do so. Team Foundation Server was an obvious choice since it not only allows developers to extend TFS in new and interesting ways, but it also allows us to further showcase support for this evolving standard with the developer community at large.

Can I see a demo?
Of course! I filmed a
video for Channel 9 which shows you how to get started using this service. When you’re ready to get started, just download the beta which includes full documentation. The service can be easily hosted in Windows Azure to front-end your own Team Foundation Server instance, or if you want to use this with CodePlex we’ve already hosted this service for you at https://codeplexodata.cloudapp.net/. As long as you have contributor rights on any CodePlex project backed by Team Foundation Server 2010 you can start making OData calls immediately. We also have included a sample Windows Phone 7 application, and WebMatrix Helpers, which show you how to get started building applications which consume this service.

(ignore the blank stare on my face in the screen grab above – this is really far more exciting than the picture implies!)

So this is a beta – when will the official release happen?
That all depends on the type of feedback we get, but we’d like to release v1 of this service in the next few months. We are asking users to email their feedback to
TFSOData@Microsoft.com. We’ll do our best to incorporate all feedback into the final release. But the license permits you to take this now (even in beta) and begin using it for real projects. All of the source code is available so you are free to customize it and make it your own. This project is provided as-is and is not officially supported.

If I build an application using this service, will users need client access licenses (CAL’s)?
In most cases, they will. Connecting to Team Foundation Server via OData has the same licensing implications as connecting via Team Explorer, the web, or any other client. But there are a few exceptions where users working with Team Foundation Server don’t need CAL’s. Please refer to the
Visual Studio 2010 licensing whitepaper for all of the details.

I hope you enjoy this – if you build something interesting please be sure to drop us a line and let us know!

Comments (8)
  1. Ramon Durães says:

    Good news!!!

  2. DMX says:

    Hi Brian!

    Thanks! That's exactly what I've been waiting for!

  3. Sumeet says:

    Build Definitions are missing. I think we should add them as a first class citizen to the API followed by ability to trigger a manual build.

  4. Brian Keller says:


    I’m trying to figure out what you would get in this scenario that you wouldn’t get from either a continuous build environment (where every change is getting built) or a manual build. Since the most likely time to build (I would guess) is after you make a change (a check-in) and our API doesn’t address check-ins, it seems to me that whenever you are checking in (using Team Explorer or Team Explorer Everywhere) this would be the most likely time you would want to create a build. So maybe you can elaborate on the scenario a bit so I can try to rank it against other scenarios.

  5. Sumeet says:

    First of all.. nice work.

    Before I go into detailed scenario:

    I added the support for getting the Build Definitions and sent you the updated code at the email address.

    So I was writing from 2 different prespectives…

    1. Listing Build Definitions

    2. Triggering Build

    Here is the motivation for both:

    1. Having ability to navigate the project structure. (I have been writing a Phone 7 application). Having a list of build definition gives us an ability to provide overall project struture in a cleaner manner. I can create views like following:


    Test (Last run on, status)

    Integration (Last run on, status)

    Staging (Last run on, status)

    Production (Last run on, status)

    Basically as a project manager for an agile team it is giving me a snapshot of what is going on with the delivery and client.

    2. Ability to trigger build is of course a very powerful tool. I have been fine tuning the process for couple of years and here is something which has worked extremely well in our environment (and I hope that is the case with many fellow TFS users)

    a. I have given different teams their own builds to test (QA, Operations, Load and Performance, Client QA, Client Demo etc)

    b. Some of these builds cannot be CI because they need some limited lifetime.

    c. So instead of calling anybody in my team, my client's testing teams, or my (non developer) QA and integration testing team has an ability to trigger certian types of builds.

    d. So most of this audience (Project Managers, Client Demo team, QA, BA) are not caring about a build but they do want to know what is happening with a specific build definition.

    e. Of course I can get all builds and reverse engineer all builds definition names but I think it will be more efficient if we just expose the listof the build definitions.

    I hope this is helpful.

  6. Brian Keller says:

    Excellent ideas and feedback, thanks Sumeet!

  7. Pedro Castelo Branco Lourenco says:

    Hi Brian!

    Really nice stuff! I could not wait and I setted it up on my company environment. Next I will create one Windows Phone 7 App to play more. It is also awesome that you provided this demo WP7 app.  It will really help! My idea is to make something fancy on the app to get also something from the sharepoint portal(mainly excel reports).

    If get excel reports became to be too complicated my idea is that I could generate charts based on the WI times. I will keep you posted when I have one beta. 🙂

  8. Pedro Castelo Branco Lourenco(PCBL) says:

    Hi Folks,

    I just published one app(on WP7 Market Place) as well based on the TFS Odata Service.

    The App name is "TFS On The Road".

    You can find more Information under:





Comments are closed.

Skip to main content