Team Foundation Server is a Microsoft product that is a complete solution that combines version control, data collection, report generation, status tracking and project changes, and is designed to work together on software development projects. This product is available as a stand-alone application or as a server platform for the Visual Studio Team System (VSTS).
Team Foundation Server operates in a three-tier architecture: 'client layer', 'application layer' and 'data layer'. The "client layer" is used to create and manage projects, as well as to access the stored and managed elements of the project. At this level, TFS does not contain any user interfaces, but it provides Web Services that can be used by client applications for self-integration into TFS functionality. These Web services are used by applications such as Visual Studio Team System to apply TFS as a server storage infrastructure or dedicated TFS application management, such as the included "Team Foundation Client" application. The web services themselves are at the "application level". Application layer also includes the Web portal and repository (repository) documentation supported by Windows SharePoint Services. The web portal, called the Team Project Portal (portal of the team project), acts as an interaction center for projects managed by TFS. The document repository is used both for project elements, and for tracking audits (documenting changes), as well as for the accumulation and processing of data and the generation of reports. The "Data Layer", which is based primarily on the installed SQL Server 2005 Standard Edition, provides permanent data storage services for the document repository. "Data Layer" and "Application Layer" can exist on different physical or virtual servers when using Windows Server 2003 or more specialized versions. Data Layer does not interact with the client layer directly, only through the application layer.
Most of the activities in Team Foundation Server occur with "work items". Working elements are the individual units (steps) of work performed in turn. In many sources, they are identified with the "bug" elements in the Error Tracking Systems like Bugzilla, that is, in this case the work item has the Area (bound field), Iteration State), Assignee (linked to), Reported By (by whom created) to specify the relevant information, history, attached files, and many other attributes. The work items themselves can be of several types, for example, "Error", "Task", "Quality requirement", "Script", etc. The selected framework for any project in Team Foundation Server Determines what types of work items will be available and what attributes each type will possess. These elements inside the application are stored in XML format, and their schema can be easily modified to add new attributes to different elements or create new elements on a project basis. Each working element has appropriate control techniques that determine who exactly which elements are available and what actions it can take with them (viewing, editing, creating, deleting, etc.). It also means the use of notifications and the ability to maintain logs, to track the history of the entire creation process, access to or modify the item (defined by rights), and provide additional notification to certain users when certain events occur.
Any Team Foundation Server contains one or more "Team Projects" consisting of Visual Studio-based solutions, configuration files for Team Build and Team Load Test Agents, and a single SharePoint-based repository containing project-related documentation. The joint project includes custom work items, source code versions (branches), reports managed by TFS. TFS provides opportunities to manage these projects. When creating a new project, you need to choose a software development framework that can not be changed later. TFS includes several of the most common templates, among which are both methods of flexible development, and formal. The choice of the framework fills the project with predefined elements, such as roles and authorities, as well as other documentation, for example, the project roadmap, document templates, report preparation. These elements can be associated with work items. The status of certain project elements can be automatically updated when the work items change. TFS can be integrated with Microsoft Excel to create and track project elements. The status of the elements in this case can be specified and edited directly in Excel, and the resulting tables can be processed by TFS, which will import the data taking into account the features of managing this project.