Why Did We Write the CodePlex Client?

I want to answer some speculation about what motivated our team to write the CodePlex source control client.

When we chose Team Foundation Server as our source control system, we knew that there would be big reactions to our choice. We knew there would be a decent number of people who wanted the tight Visual Studio integration provided by Team Explorer. For many developers in the Windows space, the Team Explorer GUI is a natural extension of the source control systems they're used to using.

Additionally, though, we heard from a contingent of users who were accustomed to the tools provided by other open source community sites. The biggest difference is support for offline use. Team Explorer builds in a lot of assumptions about working online. Since TFS was designed primarily to support enterprise development on LANs, this seems like a reasonable requirement. When trying to use TFS in the distributed world of open source development, the lack of an offline story can become significant.

We wanted to provide the offline experience for that contingent of users, while preserving the tight integration with Visual Studio for the rest of our users. By developing directly against the TFS web service APIs, we were able to write an offline client that behaved similarly to those available with other environments. The command line version is just our starting point, but we think it hits the critical mass of features to start allowing people to experience TFS source control offline.

Was it six months well spent? I’m sure our customers will let us know. :)

Tags: CodePlex Client, CodePlex, cpc

Comments

  • Anonymous
    March 30, 2007
    The comment has been removed

  • Anonymous
    March 30, 2007
    Great work. Just wondering if you plan on exposing a restricted set of webservices for CodePlex site as a whole to enable custom client development.

  • Anonymous
    March 30, 2007
    codekaizen, We have plans to open up some APIs as well as provide help with builds and such. Our April 24 deployment will contain some of our first efforts in this regards. Having MSBuild APIs exposed for the client is an interesting idea. You should open that as a feature request in our issue tracker. :) Kris, The CodePlex Client itself is coded against the standard TFS web service APIs. The documentation for the APIs can be found in the latest Platform SDK releases. Be warned, they can be non-trivial. :-p

  • Anonymous
    April 01, 2007
    The comment has been removed

  • Anonymous
    April 01, 2007
    Ah, just saw your response to my question on your last post. It sounds like this client SHOULD work with any TFS instance. I'll have to give it a try. Thanks for all your work. (And by the way, you really should release all of your sourcecode for a site that is trying to build a community of shared source - has there been a published explanation yet?)

  • Anonymous
    April 01, 2007
    The comment has been removed

  • Anonymous
    April 04, 2007
    Well worth it!  I use this over the visual studio source control.

  • Anonymous
    April 04, 2007
    Ok, I think I misunderstood you (in a moment of wishful thinking). I think you are now saying "we just used the available, documented TFS web APIs to create our offline capable client. You can also use those exact same APIs to create your own offline client (without making use of any of our work because our stuff is TOP SECRET)". (That's a playful jab; I'm sure you have your reasons.)

  • Anonymous
    April 04, 2007
    In .NET, is anything ever really top secret? ;)