Professional Visual Studio 2005 Team System (Programmer to Programmer)

Overview

One of the biggest problems with most software development packages is a lack of integration between the build engine and the rest of the systems. As a project leader, deployment manager, or build manager, a lot of your time is spent writing build scripts and configuring your environment to try to integrate other "closed" systems and tools. Another challenge you might have to face is scalability: The build server has to be able to handle multiple requests from members of your team. MSBuild is meant to be used on a single machine and doesn't scale very well on its own. NAnt is a great .NET build tool, but it hasn't yet reached v.1.0 status at the time of writing (and therefore would not be a likely candidate for an enterprise environment).

When you are using Agile process methodologies, the build step is a key component of your project: The quality of your end product (the compiled code) is wholly dependent on the quality of your build. Agile methodologies typically advocate quick iterative cycles with an emphasis on avoiding "build breaks." Builds are produced every hour (depending on your churn and the size of your team, you might be rebuilding several times per hour). The resulting binaries serve as a yardstick for determining the health of a project.

Team System simplifies the integration of Visual Studio 2005 and the build system with Team Foundation Build. What are the differences between Team Foundation Build and MSBuild? MSBuild is a new build engine specially designed for Visual Studio 2005. Team Foundation Build, conversely, is a build automation tool that "wraps" around MSBuild to provide that end-to-end build experience. Using Team Foundation Build, you can automate your build tasks and generate rich metrics.

Important

The code name for Team Foundation Build is BigBuild.

Here is a rundown of the typical execution steps using Team Foundation Build. In most scenarios, you would have to script these steps using other build engines:

The tight integration between Team System components provides an added benefit of automating many of your tasks. For example, a build report will be automatically generated and displayed on the Project Site via SQL Reporting Services once a build has been completed. Work items are updated automatically based on the results of a build. The build engine runs through a gamut of tests and enables you to integrate customized or generic tests in the process using Team Test.

These build steps are not etched in stone. You can customize the build process to fit your needs. You can also customize your build settings, tests, and reports. You'll learn more about Team Foundation Build customization later in the chapter.

Team Foundation Build can be launched manually, scripted to provide continuous integration during your development process, or set up to run nightly. Team Foundation Build can also be installed locally on your desktop or installed as part of Team Foundation Server. Using custom tasks and types, you can configure with a very high level of granularity your builds on a per-project basis.

In this chapter, you'll learn the important features of Team Foundation Build. You'll first find out how to set up the build engine, including planning a build strategy and setting up build security. Next, you will learn the tasks for the day-to-day operations of Team Foundation Build, such as creating build types, configuring e-mail notifications, and running builds. You will get a good overview of the command-line tools you can use, and learn how to leverage the tools in setting up your recurring build schedules (such as nightlies and short iterative builds). Team Foundation Build has effective reporting features to help you determine the health of a build. Finally, the chapter covers Team Foundation Build extensibility, and you will learn how to program and configure Team Foundation Build using XML configuration files and the .NET API.

Without further ado, you can begin with the preliminary setup of Team Foundation Build.

Категории