Welcome!

.NET Authors: Liz McMillan, Yakov Werde, Matthew Pollicove , Kevin Benedict

Related Topics: .NET

.NET: Article

Team Foundation Fundamentals: A Look at the Capabilities and Architecture

Effective Approaches for Version Control, Defect and Work Item Tracking, and Build Management

The Shape of Team Foundation
Team Foundation is a three-tiered architecture comprised of a client tier, an application tier, and a data tier. Clients interact with the application tier via Web services, and the application tier connects to persistent data stores on the data tier using database connections. An overview of the architecture appears in Figure 1.

Much of the Team Foundation user interface is offered through the Visual Studio IDE. This portion of the UI is implemented with the same VSIP interfaces our customers and partners use. In addition, functionality is exposed on the client through Office applications, specifically Microsoft Word and Microsoft Project. There are some Web elements as well - most notably the team project portal and the report server.

A simplified UI has been created for project managers and other nondevelopers for whom the Visual Studio IDE might be a complex and daunting environment. The Team Foundation Client (TFC) provides access to features that project members outside the technical staff will want to use without the clutter of language tools, debuggers, and developer utilities. This includes creating and monitoring project progress, controlling policies, and tracking work items. Developers and testers who need both the language tools and access to Team Foundation can also easily augment their full-function IDE with the capabilities of the TFC.

Whether a client application is written to run under the VS IDE or as a stand-alone Windows app, it communicates with the Web services on the application tier through an object model and a set of APIs that act as rich proxies. These mechanisms greatly simplify programming against the native Web services layer and provide intelligent caching to minimize server round trips. In fact, because a great deal of functionality including validation, caching, and cross-tool interaction is embedded in the client APIs, it's strongly recommended that toolsmiths and extenders stick to using them and avoid coding directly against the Web services APIs. Even so, all APIs are public including the direct Web services APIs, for which full Web Service Description Language (WSDL) is provided.

The server portion of Team Foundation consists of an application tier and a data tier. Both require the Windows 2003 Server operating system. These tiers really represent logical divisions of functionality to enable scalability. As it happens, though, the functions of the app and data tiers can be collocated on a single machine for smaller installations.

The application tier is where the majority of the work of Team Foundation is done: this is where each tool's Web services are ex-posed. The architecture of Team Foundation does not allow direct access to data stored on the data tier from client applications. All requests for data must be made through the application tier. Furthermore, all communication between components on the application tier is made through Web services.

In addition to each tool's Web services, the application tier hosts the Windows SharePoint Services (WSS) site for the project portal. This site fronts the WSS data store in which project documents are stored. Finally, the SQL Reporting Services Web site is hosted on the app tier.

All persistent data is stored on the data tier. This includes the operational stores of all Visual Studio Team System tools, including the version control store, work item database, test results database maintained by the developer and tester tools, and team build database. In addition to these working production stores, the data tier hosts a hybrid relational and OLAP data warehouse used for project analytics and reporting. The preponderance of data in the data tier is stored in SQL Server databases. Team Foundation requires SQL Server 2005 at a minimum.

In addition to the components that fit directly into the three-tiered architecture, Team Build allows for the introduction of dedicated build machines. Builds are initiated from a client, execute on the build machine, and send results into a results store on the data tier through a Team Build Web service on the application tier.

Next: Elements of Team Foundation...

More Stories By Dennis Minium

Dennis Minium is a lead program manager on Visual Studio Team System. He is responsible for defining and designing the integration architecture for VSTS. Dennis's principal focus is to ensure that the Team Foundation software on which VSTS is built is a rich and friendly environment for extension and customization by partners and customers alike. Prior to joining the VSTS team, Dennis worked on application development tools of various stripe at Microsoft. His career before Microsoft focused on the creation of tools and methods for enterprise application development.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.