1-click AWS Deployment 1-click Azure Deployment 1-click Google Deployment
Overview
TFS stands for Team Foundation Server which is developed by Microsoft. Integration of TFS with Visual Studio enables a team to work together and organize their efforts to complete a project. Dot Net developers use TFS for source control, bug tracking, requirement gathering and to manage complete lifecycle of software development.
Collaboration: The primary purpose of Team Foundation is to enable collaboration on a team to make it easier to build a product, or complete a project. There are many types of projects. Software projects involve building and releasing a software product that is typically a new product, an upgrade to an existing product, or a minor update release.Team Foundation enables collaboration through enhanced communication, supporting multidisciplinary roles, tracking work status, enacting the team’s process, and integration of tools.
Enhanced Communication
The purpose of enhancing communication on a team is to ensure that no information or work is lost when tasks are handed-off from one team member to another. The central concept when you work with Team Foundation is the team project. A team project is stored on Team Foundation Server and has a name everyone on the team can easily identify. For example, a team working on version 1.0 of Adventure Works would probably have a team project called Adventureworks 1.0. The team project provides a central location for everyone to coordinate his or her work.
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 Windows SharePoint collaborative features like calendars and lists.
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. .
Source Control
Team Foundation source control enables the team to manage all source files for a project. Typically Team Foundation source control is used for source files but you can add non-source files such as important project documentation. .
Builds
Team Foundation Build enables the team to create and manage product builds regularly. For example, a team can run daily builds and post them to a shared server. Team Foundation Build also provides build reports on the status and quality of each build.
Tracking Work Status
The purpose of tracking work status is to understand the health of the project, who is assigned work, and what the status of that work is. 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. For example, a bug work item type tracks problems and issues discovered when you are creating the product, and a task work item type tracks planned development, testing, or other types of tasks.
Work Item History
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.
Queries
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. For example, a query could find all bug work items with a priority of 1. Or a query could find all task work items assigned to the Web development team.
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. Finally, updates can be made to the offline copies of work items in Microsoft Project and Microsoft Excel and published back to the work item database keeping offline work items synchronized with the server.
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. For more information about reports, see Using Reporting and Metrics for Team System.
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. For example, a developer role may be fulfilled by an individual with a job title of software engineer, or Web developer. Also, roles have different meaning depending on their context.
Roles in Help Documentation
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.
Roles in Process
New team projects are created from a process template that defines a set of roles that all team members will participate in. For example, the MSF for Agile Software Development process defines six roles: business analyst, project manager, architect, developer, tester, and release manager. When a team project is created by using the MSF for Agile Software Development process, each team member must assume one of these roles, which will guide how he or she interact and work on the 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. For example, MSF for Agile Software Development defines Contributors and Readers security groups. So on a new team project, a developer is likely mapped to the Contributors security group.
Process Enactment
A common problem many product teams experience is trying to make their tools to follow their process. Team Foundation enacts process in the tools by enabling teams to customize process through a set of XML files. Every team project can follow a different process.Team Foundation supports customization of work items, work item instances, reports, security, project portal, documents and templates, source control settings, and process guidance content.
Tool Integration
To enhance collaboration, the tools that a team uses must work in an integrated manner to avoid duplication of work, such as repeating security configurations in multiple tools, and manual yet obvious steps, such as having to manually update status in a report when a work item is closed.
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.
Integration in the Integrated Development Environment
Many Team Foundation tools are integrated with the Visual Studio integrated development environment (IDE). 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 Team Build Browser.
Team Foundation Extensibility
Team Foundation can also be extended to integrate additional tools that are created by third-party organizations.
Integration with Other Tools
Team Foundation can be used with older Visual Studio projects and other tools and code projects. Even though you cannot view and compile these types of projects using Team Foundation, you can run them side-by-side. You can use Team Foundation to collaborate on the projects, when you are using an older version of Visual Studio, or the other tools, to build the code.
TFS is the heart of VSTS. It pumps the required data and provides required services to the various client applications. It allows all the team members to collaborate with each other. It is a server which incorporates some of the best software technologies created by Microsoft like ASP.NET 2.0, Windows SharePoint Services, SQL Server 2005 etc.
TFS Architecture
Logical Architecture
TFS is a multilayered server. It is divided in the layers of Data Layer and Application Layer.
The data layer and the application layer can be on the same machine if the number of clients is less than 20.
Data layer is implemented in SQL Server 2005. When TFS is installed it creates number of database and tables for maintaining the data of the users, work items, source control and other resources. Being implemented on SQL Server 2005, data layer provides excellent scalability and performance.
Application layer is implemented through set of services which are available over the network. Most of them are configured as webservices which makes them possible to be accessed even over the Internet.
Physical Architecture
It is possible to create a single tier architecture for installations which do not demand high scalability. It is suggested that for any non-trivial installation the data layer and the application layer should be on different servers to meet the scalability and reliability requirements. For meeting the requirements of teams which are geographically scattered and connected through internet, TFS provides the ability to use proxy to fulfill the requirements of distant users. Although proxy will be caching the source code, main source control where changes are allowed to be stored is where the main installation of TFS is. It is also suggested 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 hamper the performance of TFS adversely. Fig 2 shows the suggested physical architecture of TFS for any non trivial installation.
Services Offered by TFS
The main set of services offered by TFS are to improve collaboration between multiple users. We can enumerate those as shown in Figure below:
Source Code Control (SCC)
SCC is the major contributor to Software Configuration Management. SCC in TFS includes normal version control, Branching, Merging, Shelving and Unshelving etc. TFS maintains the source control in SQL Server 2005. By default it allows multiple check-out. We can place locks in such a way that either the locked files cannot be checked out or if they are checked out they cannot be checked in. TFS also supports check-in policies which make it mandatory on the team members to execute certain actions when they are checking in some source code.
SCC also works as a point of convergence between the team project and the technological solution. Team project allows for architecture, collaboration, monitoring and control of the project. It is very peripherally concerned with the technology. The technological solution does not involve itself with project management or versioning etc. Every unit of source code to be generated is tagged with a work item. Work item store the management data about the technological entities. Storage and management of work items is done through SCC.
Project Portal
For every team project TFS creates a SharePoint portal site. This site contains sections for Process guidance, Reports and documents. It provides appropriate permissions to contributors, readers and guests. Through the process guidance we can learn about the process template that is selected for the project. Various reports provide the health and progress of the project. Clients can have a look at the reports even across the Internet for status monitoring.
Work Item Tracking
Work items are tagged collection of data representing some abstract entities like task, bug, Quality of Service Requirement etc. We need to monitor status of each of these entities. At the same time each work item and entity pair will belong to a user at any given moment. The user will work upon the entity like task or bug and then either set the status of the work item to close or re-assign it to some other user for further work on the entity. TFS keeps track of status of each work item and the user who owns that work item at that time.
Build Automation
Each developer compiles the application in his / her 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
TFS uses a separate data warehouse to generate reports. There are number of predefined reports as per the process template which are created by default. TFS uses SQL SERVER 2005 Reporting Service to create these reports. Each report indicates either of status of the project, quality of the software which is being maintained, progress of the project. These reports are based upon work items, source code, test results and builds. The status and progress of each is initially stored in the normalized tables in the database. TFS creates the non-normalized entries in the data warehouse for the use of creating reports. Reports Data Warehouse object model allows developers to create custom reports in the form of .rdl files using report designer. These reports can also be made available through the reports site.
Installation of TFS
Download TFS. You can install TFS on a client or on a server operating system. For clients, use Windows 7 or Windows 8, 32-bit or 64-bit. For servers, you have to use 64-bit. Go here for the complete list of system requirements for TFS.If you install on a server operating system, you can add a SharePoint portal and SQL Server reporting later, even if you skip those features during initial installation.
Use the Basic configuration wizard for a quick and simple installation.
After finishing, close the basic configuration wizard.
Once you’ve installed TFS, you might need to add antivirus exceptions.
Install the build service
After finishing the basic configuration wizard, you can install the build service on the same server. The build service automates builds of your software projects. Launch the build service configuration wizard.
Close the wizard after it finishes. Now your build server is ready to go.
Team Explorer installs with each version of Visual Studio, or you can download it for free. Although Team Explorer isn’t necessary for most administration tasks, it is required to create team projects, which your software teams will require, and to support work item tracking customization. Installing it on the server is a convenient way to ensure that you can create team projects whenever necessary without having to go to another computer
Team Foundation Server (TFS) is a Microsoft product that provides source code management (either via Team Foundation Version Control or Git), reporting, requirements management, project management (for both agile software development and waterfall teams), automated builds, lab management, testing and release management capabilities.It covers the entire application lifecycle. TFS can be used as a back-end to numerous integrated development environments (IDEs) but is tailored for Microsoft Visual Studio and Eclipse on all platforms.
Team Foundation Server 2015 on Cloud runs on Amazon Web Services (AWS), Azure and Google Cloud Platform (GCP) is built to add steps for MSBuild, Ant, Maven, PowerShell etc. (readymade templates are also provided) without creating build and to build cross platform solutions.
Cognosys Provides Hardened images of TeamFoundation on the cloud ( AWS marketplace, Azure and Google Cloud Platform).
Deploy TeamFoundation securely on cloud i.e. AWS marketplace, Azure and Google Cloud Platform (GCP)
Team Foundation Server 2015 on cloud for AWS
Features
Major features
The features offered by TFS can be divided in five categories:
1. Work item tracking
The work item tracking (WIT) system enables you to create, modify, copy, and query work items. In TFS, the term work item denotes an item that you want to track during the development process. Work items include bugs, tasks, scenarios, requirements, change requests, and so on. The work item types that are available in a team project are defined in the corresponding process template. You can also create custom work item types in addition to the built-in ones.
A work item type definition contains field definitions, form layout information, and state transition rules. Work item type definitions are stored in XML files associated with process templates. Work items can be queried using a SQL-like query syntax called Work Item Query Language (WIQL). The VSTS IDE includes a graphical query editor for creating and executing queries. You can also create and execute WIQL queries from custom program code using the TFS object model.
The work item form is fully customizable. You can change the look and feel by creating new tabs, adding or removing form fields, and inserting custom controls. Work items can be linked to one other (support for hierarchically linked work items is coming in the next version), can contain attachments, and also have an audit log showing the change history.
Work items can be bidirectionally synchronized with Excel and Project for consumption by stakeholders who may use these products for data entry and project management. You can also use the TFS object model to synchronize work items with other products as needed (such as your enterprise project management system).
Version control
Team Foundation version control (TFVC) provides the capability to store files in a central repository, along with their version information. Effective support for managing and evolving source files is critical for implementing an ALM platform that helps, not hinders, the development process. Arguably, the most important asset in your development effort is the source code itself. You need a flexible and reliable system for developers to store code files, secure them, retrieve them as needed, isolate concurrent development efforts, and attach metadata to each check-in.
TFVC provides reliable change management via atomic check-ins. When you check in a set of changes as part of a single changeset, either all changes will be committed to the repository or none will be committed. This transactional check-in behavior ensures that the codebase remains in a consistent state at all times. You don’t have to worry about a partial update breaking the internal consistency of the codebase.
TFVC supports check-in policies that help protect the integrity of the codebase. Check-in policies help ensure that the code being checked in meets appropriate quality criteria. The quality criteria may include passing static code analysis, associating check-ins with work items, and so on. You can also create custom check-in policies and implement your own change control criteria. If a developer checks in code by overriding a policy, TFVC can send out an email alert containing the reason. The policy override information is also recorded in the data warehouse, allowing the creation of reports to track the action.
TFVC makes it possible for developers to create shelvesets. Shelvesets are used to store pending version control changes, associated work-item links, and comments on the server without performing a check-in operation. Developers can use shelvesets to back up changes before starting a new task, to easily share changes between multiple developers, or to perform code reviews.
TFVC offers low-overhead branching and merging capabilities to facilitate parallel development. Branching allows a collection of files to evolve on two independent paths, or branches. Branching creates a parent-child relationship between the two collections of files, such that changes made on one side of the relationship don’t affect the other until an effort is made to merge the changes from one branch to another. Branching is commonly used at various milestones within the development lifecycle. During the development phase, multiple child branches can be used to allow teams to develop features in isolation before merging back to a common parent branch. When the product ships, a “release” branch can be created so that product maintenance is done in isolation from the next version’s development. After release, branching can be used to create service packs and patches to support the product.
Merging is used to integrate code between branches. TVFC enables you to easily merge code that’s located in related branches (branches that are related via parent-child relationships). Although less straightforward, TFVC allows you to merge code between unrelated branches using a baseless merge. Typically, all changesets up to a particular point are included in a merge. However, TFVC also supports cherry pick merges, where you can specify certain changesets to be included in the merge. You can also view merge candidates, review merge histories, detect and resolve merge conflicts, and roll back merges.
When you put it all together, you’ll find that TFVC provides a scalable enterprise-class infrastructure for supporting your code management needs. Using third-party products, you can use TFVC within other IDEs and operating systems. Whether you follow an agile or a more formal development methodology, you’ll find that TFVC provides strong support during all phases of the software lifecycle—including development, testing, release, and maintenance.
Build automation
An automated build system that empowers you to build early and often is crucial for success. In addition to simply compiling the source files, a good build system generates tracking and quality information for each build. The tracking information should include which files were changed, which bugs were fixed, which features were implemented, who launched the build, and so on. The quality information should include which build verification tests (BVTs) ran successfully, what kind of code coverage was achieved, and the like.
Team Build provides an out-of-the-box integrated infrastructure for managing automated builds. Under the covers, Team Build uses the MSBuild engine to generate assemblies. However, Team Build adds a host of other features that facilitate traceability, collaboration, and quality. For example, Team Build generates a unique number for each build, downloads source code from TFVC, associates appropriate work items with the build, performs static code analysis, executes BVTs, generates code coverage information, and pushes the generated binaries to designated drop locations. You also get a build report showing the changesets that were included in the build, the work items that were resolved, relevant quality and timing information, and other metadata associated with the build.
You can customize the build process in several ways. You can create custom MSBuild tasks that can fine-tune the build process using the full power of your chosen programming language. These tasks can be invoked at specific points during the build process. Team Build specifically provides customizable targets that you can override for extending the build process. Additionally, Team Build provides a number of properties that you can configure to customize the build process.
Team Build also provides a number of features that facilitate build management. You can specify which kinds of binaries to retain in the drop location and for how long, when to trigger builds (Team Build supports continuous integration builds and rolling builds as well as scheduled builds), which build machine to use for executing builds, which directories to use for downloading the source files and for generating the output binaries, and so on. Appropriate team members can also indicate the quality and QA status of each build (such as Initial Test Passed, UAT Passed, Ready for Deployment, and so forth). Team Build can also generate notifications when a build is completed or when a build quality is changed.
Project portal
Effective communication between stakeholders is a key enabler of success in any software development effort. Without effective communication, requirements get misconstrued, priorities get misaligned, and resources get misplaced. When working with distributed or offshore teams, the need for effective communication is magnified many times. In any software project, you must ensure smooth information flow and augment it with effective metrics.
TFS facilitates information exchange by creating a SharePoint-based project portal for each team project. The project portal serves as the focal point for all stakeholders, across departmental boundaries. The portal hosts shared documents, reports, and key performance indicators (KPIs), threaded discussions, announcements, process guidance information, meeting workspaces, custom links, and whatever else you might consider appropriate for promoting collaboration. Anybody can access the project portal and obtain relevant information using just a web browser from anywhere in the world—without installing Visual Studio, acquiring VSTS licenses, or worrying about firewalls. In addition to offering timely information, the portal provides a sense of community, continuity, and context. The project portal can also serve as an executive dashboard for members of the executive team.
TFS supports project portals based on Windows SharePoint Services 3.0, Microsoft Office SharePoint Server 2007, and Windows SharePoint Services 2.0. The default project portal is created during the creation of a team project. You can customize the portal using the standard customization options available in SharePoint.
You can change the look and feel of the portal using SharePoint Designer, as well as create custom web parts and add them to the portal. You can create custom reports and perform additional analysis. You can also create custom workflows associated with shared documents. The default document libraries and their contents can be customized by modifying the WssTasks.xml file associated with the process template. The site template itself can also be customized so that new portals are based on your custom design.
Reporting
Reports enable you to keep your finger on the pulse of your development project. You can view information in near–real-time regarding critical aspects of project health—bug rates, velocity, test results, regressions, remaining work, build results, work items, and so on . Additionally, you can create custom reports and KPIs to better understand progress, identify bottlenecks, detect trends, and predict outcomes. Effective project management is impossible unless you have access to accurate data and can easily analyze the information using your preferred representational formats (views).
TFS reports are based on SQL Server Reporting Services (SSRS). You can use the included reports out of the box, modify them, or create new ones using Visual Studio Report Designer. Your custom reports can be included in the process template so that the new reports are automatically included in new team projects (which are created based on the modified process template). For wide distribution, reports can be placed in the SharePoint-based project portal, in addition to being accessible from Team Explorer.
Reports access the data stored in back-end relational and Analysis Services databases. The TFS data repository consists of a number of operational databases (not used for reporting), a relational data warehouse, and an Analysis Services database (OLAP cube). At regular intervals, the content and the schema of the data warehouse as well as the cube are refreshed based on the data in the operational databases.
The Analysis Services database contains a cube named Team System that is most often used in reports to display aggregate information. The cube contains several measure groups (such as code churn, test result, and current work item) and dimensions (such as date, team project, and build quality). For ease of navigation, and to provide focused context, the cube is logically subdivided into a number of categories called perspectives (such as build, current work item, and test result). Like any other Analysis Services cube, you can enhance the Team System cube as needed to meet your unique needs.
Major Features of Team Foundation Server
- Version control, for managing source code and other deliverables that require versioning.
- Work item tracking, for keeping track of such things as defects, requirements, tasks, and scenarios.
- Project management functions, which allow the shaping of a team project based on a user-specifiable software process, and which enable planning and tracking using Microsoft Excel and Microsoft Project.
- Team build, for enabling a common process for building executable products.
- Data collection and reporting, which aid in the assessment of a team project’s state, based on information gleaned from Team Foundation Server tools.
- The Team Project Portal, which provides a central point of communication for a team project packaged as a Microsoft Windows SharePoint Services site.
- Team Foundation Shared Services, which provide a number of common infrastructure services that invisible to end users but that are important to toolsmiths and extenders.
AWS
Installation Instructions for Windows
Note: How to find PublicDNS in AWS
Step 1) RDP Connection: To connect to the deployed instance, Please follow Instructions to Connect to Windows instance on AWS Cloud
Connect to the virtual machine using following RDP credentials:
- Hostname: PublicDNS / IP of machine
- Port : 3389
Username: To connect to the operating system, use RDP and the username is Administrator.
Password: Please Click here to know how to get password
Step 2) On the Start page, type Team Foundation Server 2015 and then click on Team Foundation Server.
or Open from the Desktop Shortcut icon Team Foundation Server.
Step 3) Other Information:
1.Default installation path: will be in your root folder “C:\Program Files\Microsoft Team Foundation Server 14.0”
2.Default ports:
- Windows Machines: RDP Port – 3389
- Http: 80
- Https: 443
AWS Step By Step Screenshots
Installation Instructions for Windows
Step 1) VM Creation:
- Click the Launch on Compute Engine button to choose the hardware and network settings.
2.You can see at this page, an overview of Cognosys Image as well as estimated cost of running the instance.
3.In the settings page, you can choose the number of CPUs and amount of RAM, the disk size, and type, etc.
Step 2) On the Start page, type Team Foundation Server 2015 and then click on Team Foundation Server.
or Open from the Desktop Shortcut icon Team Foundation Server.
Step 3) Other Information:
1.Default installation path: will be in your root folder “C:\Program Files\Microsoft Team Foundation Server 14.0”
2.Default ports:
- Windows Machines: RDP Port – 3389
- Http: 80
- Https: 443
Configure custom inbound and outbound rules using this link
For Installation steps Please check on Team Foundation Server.
Videos
Introducing Team Foundation Server 2015 Basic