One of the nice things about Team Foundation Server is its extensibility. Team Foundation Server was developed from the ground up with extensibility in mind. While Microsoft tried to provide all the tools and accessories that a development team would need, they also understood that they would not be able to please everyone. As such, they have provided the tools and hooks so anyone can develop add-on tools for Team Foundation Server for a variety of scenarios. By building Team Foundation Server around the principles of objects and Web services, they have made it easy to develop custom tools that work with all the services provided by Team Foundation Server.
This chapter is all about the extensibility of Team Foundation Server, and how you can use that extensibility to build your own custom tools. You start out by looking at the differences between extensibility and customization. Then you move on to get a brief overview of the Team Foundation Core Services. These are Web services used by team foundation server itself to handle all the different functionality for Team Foundation Server.
Then you move into the real meat of the chapter, the Team Foundation Server Object Model. You will use this object model to create your own custom tools, which interact with the Team Foundation Server and the Team Foundation Core Services. Several code samples and sample tools are listed throughout this section, giving you a feel for how you can develop you own custom tools. These code samples provide you with a good starting point for delving into the object model in more detail.
Enough talk; let's start learning how to create some custom tools.