One of Microsoft's goals when Team Foundation Server (TFS) 2005 was first released was to make the platform extensible. Although Microsoft's intention was to provide a set of tools and guidance for conducting application lifecycle management using TFS, the company also knew that people and organizations already have their own methodologies. And although people may want to use TFS for their tooling, they still want to follow their own software development process.
So Microsoft provided several extensibility points within TFS to extend different aspects of the system as needed. It also provided an API that developers can use for creating custom applications to access and utilize different systems in TFS, such as work item tracking and version control.
As you've seen in previous chapters, TFS itself is made up of a variety of web services, so you might think that you could just write custom applications to utilize those web services. And you could, but that would not be considered best practice. Instead, you should make use of the APIs (which interact with the web services). This ensures that any customizations or extensions you create should be forward compatible with future versions of TFS.
This chapter is ...