

TEAM FOUNDATION SERVER OVERVIEW
Visual Studio Team System (VSTS) integrates in one place a set of tools that enable a team to collaborate and coordinate their efforts on building and completing an application.
A team project is stored on Team Foundation Server (TFS) and has a name everyone on the team can easily identify.
TFS Architecture
Logical Architecture
TFS is a structured as a multi-layered application, consisting of a client layer, a business or application layer and data layer.
Data is stored in a MS-SQL server 2005 database. TFS creates a number of databases and tables for maintaining users, work items, source control and other resources.
The Application layer consists in a set of services which are available over the network. Most of these services are configured as web services which makes them accessible over the Internet.
Physical Architecture
It is recommended that for any installation, the data tier and the application tier are on different servers to meet the scalability and reliability requirements. Nevertheless, it is possible to have them in the same tier for installations which do not demand high scalability.
It is recommended to have a separate build server since the build activity is very highly CPU intensive. Keeping the main TFS and build server on same machine with frequent builds may undermine the performance of TFS adversely.
TFS supports the development of projects for teams that are working locally as well as for teams which are geographically scattered and connected remotely. To do that it uses proxies.
The following figure shows the standard physical architecture of TFS.
Services Offered by TFS
The main goal of TFS is to improve collaboration between multiple users in a development team. To do that it provides the following services:
Source Code Control (SCC)
SCC is the source control system of TFS. It includes operations such as versioning, Branching, Merging, Shelving, Un-shelving, etc. The source control is maintained in a SQL Server 2005 database. It allows multiple check-outs, placing locks on files, check-in policies which makes team members to execute certain actions when they are checking in source code.
Typically Team Foundation version control is used for source files but it is possible to add non-source files such as important project documentation.
Project Portal
Each team project has an associated project portal that is a Windows SharePoint Web site. Team members can use the project portal to store documents, find reports, and use other collaborative features.
Team Explorer
All team members work with team projects by using Team Explorer in the Visual Studio IDE. Team Explorer connects to one Team Foundation Server and displays team projects from that server. By using Team Explorer, every team member can find and update work items, view reports, manage documents, and work with product builds.
Alerts
Team Foundation provides alerts that are sent to you through e-mail when something changes on the team project. Alerts can be sent when the status of a work item changes, a check-in occurs, a build is completed, or when a build status changes.
Work Item Tracking
Team Foundation uses the concept of a work item to track fundamental pieces of work on a team project. Various types of work items are available and are based on the type of work that they represent.
Work item queries are used to find work items that match a specific set of criteria. Queries are useful to find the current status on work items.
All work items have a running history that logs all activity. Whenever a work item changes, whether the item's status changes to closed or notes are updated with new information, all the changes are logged so that anyone can review the complete history of activity on a work item at any time.
Microsoft Project and Excel Integration
Work items are stored in a database on the Team Foundation server; however, copies of work items can be imported and tracked in Microsoft Project or Microsoft Excel. For example, task work items can be imported into Microsoft Project and organized to load balance work for team members. Also, bug work items can be imported into Microsoft Excel to create a list of top priority bugs that must be fixed.
Building Automation
Each developer compiles the application in its workspace on the local machine. After compilation, the code is checked in the source code control. The checked in code has to be built to ensure its interoperability with code created at other time, maybe, by some other developers. This build process should be carried out periodically to ensure integrity of all the checked in code. TFS allows creation of build at pre-determined time using a component called Team Build. Team build schedules the build script created using MS-Build to be executed at the predetermined time.
Reporting
Reports are stored in a database on the Team Foundation server, and they track status and trend information over time on a team project. The data for the reports is stored in a data warehouse and collected from the operational databases on Team Foundation server. Types of information that can be tracked in reports are work item changes, check-ins, status on product builds, and test results. Also, cross-project reports can compare historical data for multiple projects.
Roles
Roles are assumed by one or more team members on a team project, and each role represents one or more disciplines that are required to successfully complete the team project.
Roles do not represent a one-to-one relationship with job titles or disciplines.
The Help documentation organizes content into three general roles: Administrators, Project Leads, and Project Members. These general roles are used by the Help documentation to help you find the tasks and information that most likely apply to you when you work on a team project.
Security Groups
Team Foundation security groups enforce permissions available for each team member. When a new team project starts, the administrator maps process roles for that team project to specific security groups and permissions. Additionally, the process template defines a default set of security groups.
Tool Integration
Team Foundation tools integrate with each other to automate many tasks that typically do not occur between tools. For example, when you check in source code to fix a bug, you can automatically resolve the work item that describes the bug.
Many Team Foundation tools are integrated with the Visual Studio. Team Explorer is the main window to work with team projects. Additional windows are available from Team Explorer such as Source Control Explorer, and the Build Explorer.
Team Foundation can also be extended to integrate additional tools that are created by third-party organizations.
Team Foundation can be used with older Visual Studio projects.
Customisation
Team Foundation supports customization of work items, work item instances, reports, security, project portal, documents and templates, source control settings, and process guidance content.