Professional Team Foundation Server 2013 (2013)
· CHAPTER 1: Introducing Visual Studio Online and Team Foundation Server 2013
· CHAPTER 2: Planning a Deployment
· CHAPTER 3: Installation and Confi guration
· CHAPTER 4: Connecting to Team Foundation Server
Introducing Visual Studio Online and Team Foundation Server 2013
What's in this chapter?
· Getting to know Team Foundation Server 2013
· Understanding what's new in Team Foundation Server 2013
· Acquiring Team Foundation Server 2013
This chapter introduces you to Microsoft Visual Studio Team Foundation Server 2013. Here you learn what it is for, the key concepts needed when using it, and how to acquire it.
For those users already familiar with Team Foundation Server, the discussion in this chapter highlights areas that are new or have changed substantially. However, because understanding the legacy of a technology is always helpful, this chapter also includes some of the history of the Team Foundation Server product, which will help explain how it became what it is today.
This chapter also discusses the improved release model, including the ability to have Microsoft manage hosting, frequent upgrades, and backups by leveraging Visual Studio Online (formerly Team Foundation Service). Later chapters go into more depth with an examination of the architecture of the Team Foundation Server product.
What is Team Foundation Server?
Developing software is difficult—a fact repeatedly proven by how many projects run overtime or over budget, or fail completely. An essential factor in the success of any software development team is how well the members of the team communicate with one another, as well as with the people who wanted the software developed in the first place.
Team Foundation Server provides the core collaboration functionality for your software development teams in a very tightly integrated product. The functionality provided by Team Foundation Server includes the following:
· Project management
· Work item tracking (WIT)
· Version control
· Test case management
· Build automation
· Release management
· Lab and environment management
· Feedback management
· Chat and team communication tools
Each of these topics is explored extensively in this book
Team Foundation Server is a separate server product designed specifically for software engineering teams with developers, testers, architects, project managers, business analysts, and anyone else contributing to software development releases and projects. Logically, Team Foundation Server is made up of the following two tiers, which can be physically deployed across one or many machines:
· Application tier—The application tier primarily consists of a set of web services with which the client machines communicate by using a highly optimized, web service-based protocol. It also includes a rich web access site to interact with a server without having to install a client such as Visual Studio.
· Data tier—The data tier utilizes SQL Server to house the databases that contain the database logic for the Team Foundation Server application, the data for your Team Foundation Server instance, as well as the data for your Team Project Collection. The data stored in the data warehouse database and Analysis Services cube are used by Team Foundation Server's reporting functionality. All the data stored in Team Foundation Server is stored in the SQL Server databases, thus making the system easy to back up.
Team Foundation Server was designed with extensibility in mind. It can integrate with a comprehensive .NET Application Programming Interface (API). It also has a set of events that allow it to integrate with outside tools as first-class citizens. The same .NET programming model and event system are used by Microsoft to construct Team Foundation Server, as well as the client integrations into Visual Studio.
Team Foundation Server has plenty of competitors, including other enterprise Application Lifecycle Management (ALM) systems and purpose-specific products (such as source control systems). The main benefit of having all the different systems available in one product is that Team Foundation Server fully integrates the different systems. This allows for true innovation in the development tools space, as you will notice with several of the new tools available in this latest release. Instead of worrying about integrating the separate systems yourself, you can take advantage of the work that Microsoft has done for you. Jason Zander, currently Corporate Vice President of development for Windows Azure, makes this particular point well in a blog post originally about Team Foundation Server 2010. You can find the blog post at http://aka.ms/IntegratedALMSolution.
When you compare enterprise ALM products currently on the market, you will discover that Team Foundation Server was designed to be easily customized and extended. Team Foundation Server ensures that developers using any development platform can participate and easily use Team Foundation Server, including Visual Studio, Eclipse-based development, Xcode, and many more.
What is Visual Studio Online?
Installing and configuring Team Foundation Server has traditionally meant a significant investment in time and infrastructure. In addition to the initial setup, maintenance of an on-premises Team Foundation Server instance required ongoing effort.
In October 2012, a hosted Team Foundation Server was released to the general public under the name Team Foundation Service. This hosted service meant that a team could make use of many of the features of Team Foundation Service without the significant investment in infrastructure and maintenance. Since its initial release, the product has been continuously extended and improved.
In November 2013, Team Foundation Service was rolled into a new product called Visual Studio Online, which incorporates a number of developer services, including most of the features of an on-premises Team Foundation Server installation as well as Visual Studio, collaboration tools, load testing and build services, a diagnostic service called Application Insights, and even an online code editor.
Visual Studio Online is free for teams up to five users, and is also available on a per-user per-month subscription basis. A number of plans are available that include various features. These features include access to a hosted Team Foundation Server with unlimited Team Projects and basic project planning tools, and either the Visual Studio Express or Visual Studio Professional IDE. The plans also include a certain amount of cloud build and load testing time.
What's New in Team Foundation Server 2013?
If you have used legacy versions of Team Foundation Server, you may be curious about what is new in the latest release. As this book demonstrates, it is a big release with considerable new functionality and improvements across the board. While many of these features are explained throughout this book, if you have used a previous version of Team Foundation Server, the features described in the following sections will be new to you. Some of the client-side topics are covered in more detail in the companion book to this volume, Professional Application Lifecycle Management with Visual Studio 2013 by Mickey Gousset, Martin Hinshelwood, Brian A. Randell, Brian Keller, and Martin Woodward (Wiley, 2014).
One major change with this release was the addition of an alternative, distributed source control option within Team Foundation Server. While this was seen as a surprising move by many, it was really just addressing a common complaint many organizations had with source control in Team Foundation Server.
There are many powerful project management features provided by Team Foundation Server, but the primary reason for adopting a system like Team Foundation Server will always be source control. Developers have increasingly been moving to distributed version control products, such as Git or Mercurial, and the limitations of the centralized source control system provided by Team Foundation Server was a common reason cited by organizations choosing to use an alternative product. While support for disconnected workspaces was provided with the addition of Local Workspaces in the 2012 release of Team Foundation Server, team members were still limited to a single server-side repository for a workspace.
By adopting Git as a first-class version control alternative, Microsoft has added true distributed version control to the product. Developers can keep a full local repository, which allows them to work with multiple branches and commit locally before pushing their changes to the server.
We want to note two important points with respect to the distributed version control offering in Team Foundation Server. First, the Git implementation is a standard implementation of Git rather than one that has been specifically written for Team Foundation Server. This means you can work with a Git repository in Team Foundation Server in exactly the same way as you would with any other implementation. Second, despite the history of Team Foundation Server, both version control options are considered equals and are supported fully. The project management functions in Team Foundation Server are still available and code changes can still be linked to work items. Distributed version control is covered in detail in Chapter 7.
Team Foundation Server 2012 introduced a built-in set of experiences for requesting, responding, and managing code reviews. It uses the powerful work item tracking experiences behind the scenes as well as some specialized user experiences to help you discuss changes. This was a powerful way of formalizing collaboration between team members.
A new feature has been included in Team Foundation Server 2013 that allows team members to make comments directly against code, right from Team Web Access. You can make comments on an entire file, specific lines of code, or even a complete changeset, and just like code reviews, you can have threaded discussions. This provides a great way for team members to collaborate, directly against the code itself, without having to manage the complete code review process.
A new Team Room has also been added to Team Web Access in the 2013 release. This feature not only allows developers to chat in real time, but it notifies them of relevant events such as build completions and code changes.
Team Web Access was completely redesigned in Team Foundation Server 2012 to provide an even better experience for those without any of the traditional clients available. It is friendly to modern browsers, including mobile browsers, and works well with both desktop and tablet devices.
Microsoft has further updated and improved Team Web Access in Team Foundation Server 2013. The agile management tools have also been improved and now have support for tags, backlog and board improvements, updated process templates, and support for Agile Portfolio Management. Some new features have been implemented for Team Web Access as well, including a new Test Hub, Team Rooms for live chat, and work item charts.
Agile Product Management
Additional new experiences added to Team Web Access are agile project management and product planning. The new Agile Planning tools are specifically designed for users practicing Agile development, but can actually be beneficial for those using any process.
The primary changes introduced in this release include Agile Portfolio Management and a set of improved process templates for managing projects.
The great thing about these changes is that they allow you to roll-up requirements so management can see just the level of detail they are interested in. Each team can have its own set of backlog items that contribute to a shared “feature” backlog.
Release Management for Visual Studio 2013 is a powerful tool for automating the deployment pipeline for developed applications. Formerly known as InRelease, Microsoft acquired the product from a Canadian company called InCycle in June 2013.
The Release Management tool allows teams to deploy applications to multiple server environments and has strong integration with Team Foundation Service. Complex release workflows can be defined with a visual interface. Importantly, teams can define the promotion path of a single build through multiple environments and enforce a process of approval and promotion.
Release Management for Visual Studio 2013 is discussed in more detail in Chapter 20.
Microsoft has also greatly improved how you may acquire Team Foundation Server. Several options are available to you, as discussed in the following sections.
Licensing can be somewhat confusing, but Team Foundation Server licensing follows the licensing pattern of other Microsoft server products. There is a server license. Additionally, with some notable exceptions, each user that connects to the server should have a Client Access License (CAL) for Team Foundation Server.
For more information about those potential exceptions, or questions about what you will need to purchase, you can seek help from a Microsoft Partner with the ALM Competency or your local Microsoft Developer Tools Specialist, or you can refer to the End-User License Agreement (EULA). A licensing white paper dedicated to Visual Studio, MSDN, and Team Foundation Server is also available at http://aka.ms/VisualStudioLicensing.
Visual Studio Online
By far, the easiest way to get started with adopting Team Foundation Server is through a new hosted option available directly from Microsoft called Visual Studio Online (formerly Team Foundation Service). It shares a majority of the same code base as the same Team Foundation Server product used on-premises but modified to be hosted from Windows Azure for multiple tenants. It is available at http://tfs.visualstudio.com.
The best part of using Visual Studio Online is that your team need not worry about backups, high availability, upgrades, or other potentially time-consuming administration and maintenance tasks. Another nice thing is that Visual Studio Online customers will receive frequent updates that even include new features before on-premises customers.
Brian Harry, Product Unit Manager for Team Foundation Server, announced that the internal product teams improved their engineering process so well over the past two to three years that they are able to quickly provide more frequent updates. Starting with Team Foundation Server 2012, the product team has provided frequent updates that include the typical performance and bug fixes but also brand new features. The frequency of updates since this announcement has been significantly faster than in the past, with four post-RTM releases to Team Foundation Server 2012 and one Team Foundation Server 2013 release in the past 12 months.
Team Foundation Service customers have seen updates made more frequently than the on-premises edition. Brian mentioned that his teams are able to deploy hotfixes daily, but full-featured updates have thus far been released every three weeks (with a small number of exceptions), which lines up with the internal sprint schedule. You can learn more about this topic from Brian Harry's blog post at http://aka.ms/TFSReleaseCadence.
One thing to take away from this discussion is to make sure that your team always uses the latest update of Team Foundation Server if you choose to install it on-premises.
Teams using Visual Studio Online are able to leverage an elastic set of standard build servers. This elastic build service provides standard build machines available and clean for each of your builds. Teams can even integrate their elastic builds with their Windows Azure accounts to provide continuous deployment to instances of their applications or sites hosted in Windows Azure. Teams can also take advantage of on-premises build servers connected to Visual Studio Online.
Microsoft released the Team Foundation Service as a free trial in late 2012 and rolled it into the commercial Visual Studio Online service in November 2013. They announced that the full feature set will be provided to teams of up to five at no cost. Additionally, MSDN subscribers will be able to leverage Visual Studio Online as an additional benefit to their MSDN subscription.
Visual Studio Online is offered under a subscription model. The Basic plan is free for five users, and subsequent users can be added on a per-user, per-month basis. In addition to the Basic plan, two other user plans are available with differing capabilities and inclusions.
To date, Visual Studio does not have full parity with the on-premises product. For example, the lab management, reporting, and process template customization capabilities are features not currently available. As Visual Studio Online evolves over time, there will be greater, if not full, parity with the on-premises edition.
In the meantime, for teams that would like the full set of features but still have someone else manage their Team Foundation Server instance, options are available through several third-party hosting companies.
Small software engineering teams can leverage an Express version of Team Foundation Server 2013 that is available and free for up to five developers. Team Foundation Server Express is available at http://aka.ms/TFS2013Express. The Express edition includes, but is not limited to, the following core developer features:
· Version control
· Work item tracking
· Build automation
This is a perfect start for small teams that want an on-premises Team Foundation Server instance without any additional costs. If your team grows beyond five, you can always buy CALs for users six and beyond. The Express instance can even be upgraded at any time to take advantage of the full set of features without losing any data.
One of the easiest ways to acquire Team Foundation Server is on a 90-day trial basis. You can download the full version of Team Foundation Server and try out all of the features without having to purchase a full copy. The DVD ISO image for the trial edition is available at http://aka.ms/TFS2013Downloads.
If you install the trial edition of Team Foundation Server, you can easily apply a product key to activate the trial edition. You could even move the team project collection from the trial server to a different server instance once your team has decided to fully adopt Team Foundation Server.
Alternatively, if you need a 30-day extension, you can perform one extension using the Team Foundation Server Administration Console once you're near the end of the trial period. You can find out more information about extending the trial by visitinghttp://aka.ms/ExtendTFSTrial.
If you would rather have a virtual machine that is ready to use (including all of the software necessary to demo and evaluate Visual Studio 2013 and Team Foundation Server 2013), you can download the all-up Visual Studio 2013 virtual machine image. The virtual machine has a time limit that starts from the day that you first start the machine. You can always download a fresh copy of the machine to begin your demo experience over.
You can find the latest version of the virtual machine available at http://aka.ms/vs13almvm.
Microsoft has plenty of options for volume licensing, including Enterprise, Select, Open Value, and Open License Agreements, that will help your company significantly reduce the overall cost of acquiring an on-premises edition of Team Foundation Server. Different options are available based on your company size and engineering team size. This option is by far the most popular choice for companies looking to acquire Team Foundation Server, MSDN subscriptions, and Visual Studio licenses.
If your company acquired an earlier version of Team Foundation Server through a volume licensing program, and also purchased Software Assurance (SA), you may be entitled to a license for Team Foundation Server 2013 without additional cost, if the SA was still active on the date that Team Foundation Server 2013 was released.
For more information about volume licensing, discuss your options with your Microsoft internal volume licensing administrator, your local Microsoft Developer Tools Specialist, or a Microsoft Partner with ALM Competency. You can find out more information from the Visual Studio Licensing white paper available at http://aka.ms/VisualStudioLicensing.
Beginning with the Visual Studio 2010 release, a full production-use license of Team Foundation Server 2013 is included with each license of Visual Studio that includes an MSDN subscription. Those MSDN subscribers also receive a Team Foundation Server 2013 CAL available for production use.
This now enables developers, testers, architects, and others with an active MSDN subscription to take advantage of Team Foundation Server without additional licensing costs.
For more information about MSDN subscriptions and for links to download Team Foundation Server 2013, visit the MSDN Subscriber Downloads website at http://msdn.microsoft.com/subscriptions.
Microsoft Partner Network
Companies that are members of the Microsoft Partner Network and have achieved certain competencies can be entitled to development and test-use licenses of several of the products included with an MSDN subscription, including Team Foundation Server 2013.
For more information about the requirements and benefits available for Microsoft Partners, visit http://partner.microsoft.com.
If you are not able to use any of the other acquisition methods, you can always acquire Team Foundation Server 2013 through retail channels, including the online Microsoft Store. You can purchase the product directly from Microsoft online athttp://aka.ms/TFS2013Retail. It is also available from many other popular retail sites.
One of the nice benefits of purchasing a server license using the retail channel is that you also receive a CAL exclusion for up to five named users. This benefit is available only from licenses purchased through the retail channel, and it is not included with other acquisition avenues discussed in this chapter.
As you learned in this chapter, Team Foundation Server is a product with lots of features and functionality. This chapter introduced the types of features available, including those new to the latest release. Additionally, you learned about the different acquisition methods for getting the software for Team Foundation Server.
The next few chapters will familiarize you with planning a Team Foundation Server deployment and installing a brand-new server. You will also learn about the different methods available for connecting to your new server. Chapter 2 begins that discussion with an examination of deploying Team Foundation Server.