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

Elements of Team Foundation
As mentioned at the beginning of this article, Team Foundation includes several major features. Here we'll explore them further.

Project Management
Using work item tracking and the Office suite, along with information stored and analyzed in the reporting warehouse, users have the tools they need to be able to monitor a project's progress and health. Additionally, with Team Foundation's process template mechanism, they can tune the project process to their environment. A process template defines a set of instructions for setting up a new project, including such items as work item types, project roles and permissions, a set of prepopulated tasks to act as a project roadmap, document templates, and report definitions. Default process templates for the Microsoft Solutions Framework's Agile and Formal processes are installed with Team Foundation. These templates can be modified and extended and new templates created to enable customers to tailor the development process to their needs.

By the way, the concept of "team project" is very different from a Visual Studio language project. A team project involves a server-based, shared assortment of work items, source branches, reports, and documents, whereas a Visual Studio language project is typically a collection of data required to produce an executable or a .dll. The contents of a team project can be viewed through the team explorer.

Version Control
Team Foundation includes an industrial strength version control system that targets enterprise source control requirements. Underpinned by SQL Server, this feature has been built from the ground up to offer reliable, secure, high-speed access to versioned data. Team Foundation has standard version control mechanisms for check-in, check-out, version management, and diff/merge. It also includes novel features like shelving (the ability to store partial changes without performing a fully validated check-in) and dynamic check-in policies to address specific issues of large-scale development.

Work Item Tracking
Team Foundation's work item tracking system is used to store and assess bugs, requirements, scenarios, tasks, and any other sort of work item you choose to monitor. Work item types are stored as XML, so out-of-the-box work item types can be easily extended and modified with additional field types and rules. Additionally, whole new work item types can be created on a project-by-project basis.

Users can view and modify work items directly in the Visual Studio IDE. The work item tracking system is also integrated with Microsoft Excel and Microsoft Project to enable viewing and editing of work items using familiar Office products.

Team Build
Team build provides a simple way to produce public builds. It augments the MSBuild engine with Team System-specific tasks such as automated testing, determining code churn, and updating work items. While team build interacts with clients via a Web service on the application tier, it also supports a separate "build server" on which builds and tests execute. The build server logs status and results to the team build store on the data tier. These data are subsequently pulled into the warehouse for analysis and reporting.

Data Collection and Reporting
Data persisted by Team Foundation tools are stored in SQL Server databases on the data tier. Each tool includes a warehouse adapter that pulls data from its normalized operational tables into a data warehouse used for analytics and reporting. This data warehouse is an SQL Server database organized by a starlike schema into fact tables and dimension tables. SQL Server Analysis Services cubes are built over these tables to allow easy aggregation, slicing, and dicing. Standard reports against the warehouse built using SQL Server Reporting Services are included in Team Foundation. These include a variety of reports that cut across tools and projects: bug trends, test coverage, code churn, and so on. Customers can also use Microsoft Excel and third-party reporting packages to produce custom reports.

The Project Portal
When a team project is created using the project creation wizard, a Windows SharePoint Services site is instantiated on the application tier. The site acts as a portal for the team project. By default, the site's home page shows a set of project health reports. Its document library is prepopulated with user-modifiable document templates and sample files. The site can be customized individually for each project. An organization can redesign the templates used to create the project site.

Shared Services
The Team Foundation architecture rests on a set of shared services designed to simplify extensibility. The tools use these shared services to integrate. Customers and partners can also use them to make their tools behave as first-class citizens in the Team Foundation environment. These services are explored more fully in the following section.

Next: Architected for Extensibility...

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.