Understand differences between VSTS and TFS
VSTS | TFS 2018 | TFS 2017 | TFS 2015 | TFS 2013
VSTS and Team Foundation Server (TFS) both provide an integrated, collaborative environment that supports Git, continuous integration, and Agile tools for planning and tracking work.
VSTS is the cloud offering that provides a scalable, reliable, and globally available hosted service. It is backed by a 99.9% SLA, monitored by our 24-7 operations team, and available in local data centers around the world.
Team Foundation Server is the on-premises offering built on a SQL Server back end. Enterprises typically choose on-premises TFS when they need their data to stay within your network, or they want access to SharePoint sites and SQL Server reporting services that integrate with TFS data and tools.
While both offerings provide the same essential services, compared with TFS, VSTS provides organizations the following added benefits:
- Simplified server management
- Immediate access to the latest and greatest features
- Improved connectivity with remote sites
- A transition from capital expenditures (servers and the like) to operational expenditures (subscriptions).
Use this topic to determine which offering—cloud or on-premises—meets your organizational needs by considering these important areas:
- Fundamental differences between TFS and VSTS
- Differences in specific feature areas between TFS and VSTS
For each area, we'll discuss both the current state of the world and the expected impacts from short and medium-term plans. Check back here for updates, because this information may change frequently.
If you're on TFS and considering moving to VSTS, read Migrate data from TFS to VSTS to understand your options.
Fundamental differences between TFS and VSTS
When you plan a move, there are a few fundamental differences between TFS and VSTS that are important for you to understand.
Scope and scale data
TFS has three options for scoping and scaling data—deployments, team project collections, and team projects. In the simplest case, deployments are just servers. Deployments can also be more complicated, however, including everything from a two-server deployment where SQL is split out on a separate machine to high availability farms comprising lots of servers. Team project collections serve as containers for security and administration in addition to serving as physical database boundaries. They are also used to group related team projects. Finally, team projects are used to encapsulate the assets of individual software projects, including source code, work items, and so on. Learn more about these concepts at Manage team project collections.
VSTS is slightly different. It currently only has two options for scoping and scaling
data—organizations and team projects. Organizations in VSTS get their own URLs (for example,
and always contain exactly one team project collection. Organizations can contain multiple team projects, like
TFS team project collections.
We are planning a third option for scoping and scaling data in VSTS—a new entity called an Enterprise. Rather than adding support for multiple team project collections within an organization, multiple organizations could be grouped within an organization. Additionally, we will merge organizations and their single team project collections into a single entity. The organization will be similar to the TFS deployment, and the organization will be similar to the TFS collection.
To be ready to use the organization entity, we recommend that you create organizations in VSTS whenever you would have created collections in TFS. In the short term, having your work split across multiple organizations can cause some problems, but we plan to address these when the organization entity is introduced. In particular:
You purchase VSTS users per organization, meaning that paid users only have access to the VSTS organization in which the payment is made. If you have users who need access to multiple organizations, Visual Studio subscriptions can be an attractive option, since subscribers can be added to any number of VSTS organizations at no charge. We arealso considering other ways we might make access to multiple organizations grouped into an organization available.
You currently have to administer organizations one at a time, which can be cumbersome when you have many organizations. We're working to support enterprise-wide policies.
With TFS, you typically connect to an intranet server (for example,
You authenticate with Windows Authentication and your Active Directory (AD) domain credentials. Usually this
process is transparent, and you'll never see any kind of sign-in experience.
With VSTS, you connect over the public internet (for example,
https://contoso.visualstudio.com). You'll either
authenticate with Microsoft Organization credentials or with
Azure Active Directory (Azure AD)
credentials, depending on your VSTS organization setup. You can also set up Azure AD to require features like multi-factor-authentication, IP address restrictions, and so on.
We recommend that organizations configure their VSTS organizations to use Azure AD rather than Microsoft Accounts. This provides a better experience in many scenarios and more options for enhanced security.
Users and groups
In TFS, you provide users access to deployments by adding Active Directory (AD) groups to various TFS groups (for example the Project Contributors group for an individual team project). The AD group memberships are kept in sync. As users are added and removed in AD they also gain and lose access to TFS.
In VSTS, you can use a similar mechanism to provide access to groups of users by adding Azure AD groups to TFS groups. If you use Microsoft Accounts instead of Azure AD, you will have to add users one at a time.
Manage user access
In TFS and VSTS, you can give free access to work item features to an unlimited number of Stakeholders. Also, unlimited Visual Studio subscribers can have access to all Basic features at no additional charge. You only need to pay for other users who need access.
In TFS, all use is on the honor system. To set access levels for users based on their licenses, use specify their access levels administration page. For example, assign unlicensed users Stakeholder access only. Users with a TFS Client Access License (CAL) can have Basic access. Visual Studio subscribers can have either Basic or Advanced access, based on their subscriptions. Note that TFS does not attempt to verify these licenses or enforce compliance.
In VSTS, you must assign an access level to each user in your organization's Users hub. VSTS validates Visual Studio subscribers as they sign in. You can assign Basic access for free to five users without Visual Studio subscriptions. To give Basic access to more users, you'll need to set up billing for your organization and pay for more users. Otherwise, all other users get Stakeholder access.
If you use Azure AD groups to provide access to groups of users, VSTS will assign appropriate access levels to them automatically when they sign in for the first time. For VSTS organizations configured to use Microsoft Accounts for sign-in, you will have to assign access levels to each user explicitly.
Security and data protection
Many organizations want to know more about data protection when they consider moving to the cloud. Microsoft is committed to ensuring that VSTS projects stay safe and secure. We have technical features and business processes in place to deliver on that commitment. You can also take steps to secure your data. Learn more in our Data Protection Overview white paper.
Key feature differences between VSTS and TFS
Even though VSTS is a hosted version of TFS, there are some differences between the features available in the two products. Some TFS features are not supported in VSTS at all—for example, VSTS does not support integration with SharePoint or Project Server.
You customize the work tracking experience in two different ways depending on the supported process model:
- For VSTS, you use the Inheritance process model which supports WYSIWYG customization
- For TFS, you use the On-premises XML process model which supports customization through import/export of XML definition files for work tracking objects
While the On-premises XML process model option is quite powerful, it also can cause a number of problems. Chief among these is that processes for existing team projects do not update automatically when TFS is upgraded.
For example, TFS 2013 introduced several new features which depended on new work item types and other process template changes. When you upgrade from TFS 2012 to TFS 2013, each team project collection gets new versions of each of the "in the box" process templates which include these changes. However, these changes are not automatically incorporated in existing team projects. Instead, after you finish upgrading you have to include them in each team project by using the Configure Features wizard or a more manual process.
To avoid these issues in VSTS, custom process templates and witadmin.exe have always been disabled (only export functions are enabled). This has enabled us to automatically update all team projects with each VSTS upgrade. Meanwhile, the product team has been working hard to make customizing processes possible in ways that we can support easily and continuously. These first of these changes was recently introduced, and more changes are on the way.
With these new VSTS process customization capabilities, you can make customizations directly within the VSTS Web UI. If you want to customize your processes programmatically, you can also make customizations through REST endpoints. When you customize team projects in this way, those projects will continue to update automatically when we release new versions of their base processes with VSTS updgrades.
To learn more, see Customize your work tracking experience.
Over time we will support more and more types of process customizations with this new approach. If you need process customization features which are not yet available and cannot wait for them, a second option for process customization in VSTS is available, referred to as Hosted XML process model, and in private preview and by request only.
With this option, you import customized process templates. This option is quite similar to using custom process templates in TFS, except that:
Restrictions exist in the customizations that can be imported into VSTS.
Process templates are associated with all team projects created from them, and changes made to the process are reflected in each team project.
Team projects in organizations which participate in this process customization private preview will not update automatically with VSTS upgrades.
Both TFS and VSTS have a variety of tools to give you insight into the progress as well as the quality of your software projects. These include:
- Dashboards and lightweight charts, available in both TFS and VSTS. These are very easy to set up and use.
In addition, with VSTS you have access to the following services:
- Analytics service and Analytics widgets. The Analytics service is optimized for fast read-access and server-based aggregations.
- PowerBI integration which supports getting Analytics data into Power Bi reports, providing a nice combination of simplicity and power.
- OData support which allows you to directly query the Analytics Service from a supported browser and then use the returned JSON data as you desire. Enterprise organizations can generate queries that span multiple team projects or their entire VSTS organization.
We plan to make these services available in TFS in a future release.
The following reports and dashboards are only available in TFS:
And, available today only in VSTS:
- A PowerBI connector which provides a nice combination of simplicity and power. We plan to make it available in TFS in a future release.
- Analytics which is the reporting platform for Visual Studio Team Services (VSTS), which answer quantitative questions about the past or present state of your projects. This service provides a concise data model over the VSTS suite. Built for reporting, the Analytics Service is optimized for fast read-access and server-based aggregations. We plan to make it available in TFS in a future release.