Team Foundation Server SDK Architecture

The Team Foundation Server SDK provides resources, documentation, and samples that you can use to extend Visual Studio Team Foundation Server, to create integrated solutions, and to create custom tools and add-ins.

The Team Foundation Server API consists of a set of .NET object models that are grouped by feature area. This grouping makes it easier to program a set of related tasks. The object models provide a robust programming interface that enables you to build your functionality. In fact, Team Explorer, which is the client software included with Team Foundation Server, is built on the same API set discussed in this SDK.

API for Team Foundation Server

The Team Foundation Server architecture consists of an application tier and a data tier. Part of the API resides on the application-tier server computer. The other part resides on the client computer where users install client software such as Team Explorer.

You should always use the object models to access the Team Foundation Server API. Never access the data tier directly. In other words, always program to access the object models instead of the specific data that is stored in Team Foundation Server.

Client Object Models for Access by SDK Programmers

  • Work Item Tracking

  • Version Control

Application Tier Object Models for Access by SDK Programmers

  • Eventing Service

  • Linking Service

  • Security Service

  • Registration Service

The functionality in your application determines whether you use assemblies that are on a client computer or assemblies that are on the application-tier server. This model provides an abstraction over the underlying proprietary server architecture.

For more information about the tiers and supported topologies in Team Foundation Server, see the topics in Team Foundation Server Product Overview in the Team Foundation Administrator's Guide.

Using the Object Models

To use the object models, add a reference to an appropriate namespace to your .NET code. The code in this SDK is C#, but you can use other .NET languages. You can find the complete set of namespaces in the Reference for Team Foundation Server SDK.

The following table shows the integration points for integrating a requirements management tool with Team Foundation Server.

Functionality to Add

Integration Point

Make requirements management appear as a node in Team Explorer, and integrate the tool's ability to provide a view into the data it holds.

Client object model for Team Explorer.

Integrate the tool's SQL server database by using the Team Foundation Server data tier. The tool creates the artifacts that it needs and stores its data and stored procedures in SQL.

No integration point is necessary. Team Foundation Server can use the same SQL server if that meets your needs.

Add a new page to the Project Creation Wizard that gives the user an opportunity to customize requirements management for this project.

Client object model for Team Explorer.

Register the Web service by using the Team Foundation server's Registration Service. You can locate a Web service anywhere as long as it is a Web service and was registered by using the Team Foundation server's Registration Service.

Registration Service of the application-tier object model.

Create a policy that a requirement (type) must be associated with a work item.

Check-in policy of the client object model.

Make it possible for the requirements management tool to participate in the Eventing Service to raise events and listen for events. In response to an event, the tool creates an e-mail.

Eventing Service of the application-tier object model.

See Also

Other Resources

Team Foundation Server SDK

Team Foundation Server Product Overview