Part I
Getting Started
Chapter 1: Introducing Team Foundation Server 2012
Chapter 2: Planning a Deployment
Chapter 3: Installation and Configuration
Chapter 4: Connecting to Team Foundation Server
Chapter 1
Introducing Team Foundation Server 2012
What's in this chapter?
Getting to know Team Foundation Server 2012
Understanding what's new in Team Foundation Server 2012
Acquiring Team Foundation Server 2012
This chapter introduces you to Microsoft Visual Studio Team Foundation Server 2012. Here you will 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 the Team Foundation Service. Later chapters will go into more depth with an examination of the architecture of the Team Foundation Server product.
What Is Team Foundation Server?
Developing software is difficulta fact repeatedly proven by how many projects have failed. An essential factor in the success of any software development team is how well the members of the team communicate with each other, 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
- Reporting
- Lab and environment management
- Feedback management
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 TierThe 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 TierThe data tier is made up of a SQL Server database containing the database logic of the Team Foundation Server application, along with the data for your Team Foundation Server instance. The data stored in the database is used by Team Foundation Server's reporting functionality. All the data stored in Team Foundation Server is stored in this SQL Server database, thus making it 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 is 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 having to worry about integrating the separate systems yourself, you can take advantage of the work that Microsoft has done for you.
Note
Jason Zander, Corporate Vice President for Visual Studio, 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's New in Team Foundation Server 2012
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 2012.
Version Control
One goal for this release was to dramatically improve the experience for developers and other team members who use the version control repository in Team Foundation Server. Many small features and improvements should be noticeable in reducing the friction of working with Team Foundation Server. For example, many of the algorithms used in the merge process have been improved so that you can trust the auto-merge process more, and fewer false positives show up as merge conflicts.
Another notable change for developers who have been using Visual Studio for a long time is the replacement for the Compare/Diff tool that has been around for a while. It now takes advantage of the new code editor in Visual Studio so that you can get IntelliSense, syntax coloring, etc., within the compare tool. There are also several different views you can use based on your preferences for reviewing the differences.
Included with all the small improvements in this release is a large improvement: local workspaces. Local workspaces removes the need to really understand workspaces before getting started and fundamentally changes how you work. Essentially, one of the frustrations of using Team Foundation Server in the past has been that files that have not been checked out have a read-only bit, which prevents someone from editing them without the explicit check-out. Local workspaces change this and detect changes automatically, thus removing the requirement for read-only bits. This allows you to use any editor, including Notepad, on any platform (Windows, Linux, Mac OS, etc.) to make your changes.
Some side benefits to the new local workspaces model include remarkable improvements in being able to work offline. Local workspaces and how this paradigm shift changes are both covered in detail in Chapters 5 and 6.
To date, the Team Foundation Server product team also introduced a fully supported tool for Git integration called Git-tf.exe . It allows a developer to create a local Git repository that is a clone of a central Team Foundation Server version control repository. This tool allows the team to work locally in that Git repository and then commit changes back up to the Team Foundation Server repository when they are ready. Because the command-line tool was implemented in Java, it can be used on several platforms. For example, an iOS developer can now use the native Git integration in the Xcode IDE on Mac OS and still be able to contribute to a Team Foundation Server repository as well, where other team members may be working within their organization.
Next page