Microsoft Team Foundation Server (TFS) is the on-premises (rather than cloud-based) product that provides complete Application Lifecycle Management (ALM) features.
It provides the following ways of extensibility:
- Client Object Model: you can use or extend the features of Team Foundation that relate to version control, tracking work items, and build. You can use several approaches:
- Using .NET, extend the Team Explorer toolwindow of Visual Studio.
- Using .NET, create a standalone application (independent of Visual Studio) that connects to a Team Foundation server. But even in this case, in order to get the Client Object Model libraries, you need to install Visual Studio Team Explorer (which is an independent download), even if you don’t want to extend the Team Explorer.
- Using Java, you can use Team Foundation Server SDK for Java to extend Java IDEs or create standalone applications.
- Server Object Model: extensions that use the server object model must run on an application-tier server for Team Foundation. You typically use this model to integrate other tools and data into Team Foundation Server.
- Build Process Object Model: you can customize your build process by using the build process object model, which is installed with the Team Foundation Build Service.
The following image from the MSDN Documentation shows the object models: