You are previewing Professional Team Foundation Server 2010.
O'Reilly logo
Professional Team Foundation Server 2010

Book Description

Authoritative guide to TFS 2010 from a dream team of Microsoft insiders and MVPs!

Microsoft Visual Studio Team Foundation Server (TFS) has evolved until it is now an essential tool for Microsoft's Application Lifestyle Management suite of productivity tools, enabling collaboration within and among software development teams. By 2011, TFS will replace Microsoft's leading source control system, VisualSourceSafe, resulting in an even greater demand for information about it. Professional Team Foundation Server 2010, written by an accomplished team of Microsoft insiders and Microsoft MVPs, provides the thorough, step-by-step instruction you need to use TFS 2010 efficiently so you can more effectively manage and deliver software products in an enterprise.

  • Provides a broad overview of Team Foundation Server for developers, software project managers, testers, business analysts, and others wanting to learn how to use TFS

  • Gives TFS administrators the tools they need to efficiently monitor and manage the TFS environment

  • Covers core TFS functions including project management, work item tracking, version control, test case management, build automation, reporting, and more?

  • Explains extensibility options and how to write extensions for TFS 2010

  • Helps certification candidates prepare for the Microsoft Team Foundation Server 2010 certification exam (Exam 70-512)

The clear, programmer-to-programmer Wrox style of Professional Team Foundation Server 2010 will soon have you thoroughly up to speed.

Table of Contents

  1. Copyright
  2. ABOUT THE AUTHORS
  3. ABOUT THE TECHNICAL EDITORS
  4. CREDITS
  5. ACKNOWLEDGMENTS
  6. FOREWORD
  7. INTRODUCTION
    1. WHO THIS BOOK IS FOR
    2. WHAT THIS BOOK COVERS
    3. HOW THIS BOOK IS STRUCTURED
      1. Developers
      2. Testers
      3. Project Managers and Business Analysts
      4. Executive Stakeholders
      5. Team Foundation Server Administrators
      6. Extensibility Partner
    4. WHAT YOU NEED TO USE THIS BOOK
    5. FURTHER LEARNING
    6. CONVENTIONS
    7. SOURCE CODE
    8. ERRATA
    9. P2P.WROX.COM
  8. I. Getting Started
    1. 1. Introducing Team Foundation Server 2010
      1. 1.1. WHAT IS TEAM FOUNDATION SERVER?
      2. 1.2. WHAT'S NEW IN TEAM FOUNDATION SERVER 2010
        1. 1.2.1. Project Management
        2. 1.2.2. Version Control
        3. 1.2.3. Build
        4. 1.2.4. Administration
      3. 1.3. ACQUISITION OPTIONS
        1. 1.3.1. Trial
        2. 1.3.2. Volume Licensing
        3. 1.3.3. MSDN Subscription
        4. 1.3.4. Microsoft Partner Network
        5. 1.3.5. Retail
        6. 1.3.6. Hosted Team Foundation Server Instances
      4. 1.4. SUMMARY
    2. 2. Planning a Deployment
      1. 2.1. IDENTIFYING AND ADDRESSING SOFTWARE ENGINEERING PAIN
        1. 2.1.1. Transparency into the Release or Project
        2. 2.1.2. Collaboration Across Different Teams and Roles
        3. 2.1.3. Automated Compilation, Testing, Packaging, and Deployment
        4. 2.1.4. Managing Test Plans
        5. 2.1.5. Parallel Development
      2. 2.2. HOW TO ADOPT TEAM FOUNDATION SERVER
        1. 2.2.1. Adoption Timeline
        2. 2.2.2. Phased Approach
        3. 2.2.3. Hosting Team Foundation Server
        4. 2.2.4. Identifying Affected Teams
        5. 2.2.5. Generating Consensus
        6. 2.2.6. Team Foundation Server Administrator
        7. 2.2.7. Pilot Projects
      3. 2.3. MIGRATION STRATEGIES
        1. 2.3.1. Version Control
          1. 2.3.1.1. Visual SourceSafe (VSS)
          2. 2.3.1.2. Other Version Control Systems
        2. 2.3.2. Work Item Tracking
      4. 2.4. STRUCTURING TEAM PROJECT COLLECTIONS AND TEAM PROJECTS
        1. 2.4.1. Considering Limitations in Team Foundation Server
          1. 2.4.1.1. Renaming a Team Project
          2. 2.4.1.2. Moving Work Items Across Team Projects or Team Project Collections
          3. 2.4.1.3. Managing Work Items from Multiple Team Projects in Office Excel or Project
          4. 2.4.1.4. Tracking Merged Changes Across Branches in Multiple Team Projects
          5. 2.4.1.5. Reports and Dashboards Scoped to Team Project
          6. 2.4.1.6. Moving Team Projects Between Team Project Collections
          7. 2.4.1.7. Artifacts Scoped to a Team Project Collection
        2. 2.4.2. Server Limitations
      5. 2.5. PREPARATION FOR A TEAM FOUNDATION SERVER ENVIRONMENT
        1. 2.5.1. Understanding the Architecture and Scale-Out Options
        2. 2.5.2. Hardware Requirements
        3. 2.5.3. Virtualization
        4. 2.5.4. Planning for Software Prerequisites
          1. 2.5.4.1. Operating Systems
          2. 2.5.4.2. SQL Server
            1. 2.5.4.2.1. Included Edition
            2. 2.5.4.2.2. Enterprise Editions of SQL Server
          3. 2.5.4.3. SharePoint Products
        5. 2.5.5. Service Accounts
        6. 2.5.6. File Share Folders
        7. 2.5.7. SMTP Server
        8. 2.5.8. Firewall Concerns and Ports Used
        9. 2.5.9. Friendly DNS Names
        10. 2.5.10. Legacy Visual Studio Versions
      6. 2.6. SUMMARY
    3. 3. Installation and Configuration
      1. 3.1. WHAT YOU'LL NEED
        1. 3.1.1. Team Foundation Server 2010
        2. 3.1.2. Team Foundation Server 2010 Installation Guide
        3. 3.1.3. SQL Server 2008
        4. 3.1.4. Operating System
        5. 3.1.5. SharePoint
        6. 3.1.6. Client Software
        7. 3.1.7. Service Packs and Other Updates
      2. 3.2. INSTALLING TEAM FOUNDATION SERVER
      3. 3.3. INSTALLATION TYPES
      4. 3.4. CONFIGURING TEAM FOUNDATION SERVER
      5. 3.5. CREATING YOUR FIRST TEAM PROJECT
      6. 3.6. CONFIGURE FRIENDLY DNS NAMES
      7. 3.7. SUMMARY
    4. 4. Connecting to Team Foundation Server
      1. 4.1. TEAM FOUNDATION SERVER ARCHITECTURE
      2. 4.2. ADDRESSING TEAM FOUNDATION SERVER
      3. 4.3. INTRODUCING TEAM FOUNDATION SERVER SECURITY AND ROLES
        1. 4.3.1. Users
        2. 4.3.2. Groups
        3. 4.3.3. Permissions
      4. 4.4. TEAM EXPLORER
        1. 4.4.1. Understanding Team Explorer in Visual Studio 2010
          1. 4.4.1.1. Connecting to Team Foundation Server 2010 from Visual Studio 2010
          2. 4.4.1.2. Team Explorer
            1. 4.4.1.2.1. Work Items
            2. 4.4.1.2.2. Documents
            3. 4.4.1.2.3. Reports
            4. 4.4.1.2.4. Builds
            5. 4.4.1.2.5. Source Control
          3. 4.4.1.3. Connecting to Older Versions of Team Foundation Server
        2. 4.4.2. Connecting to Team Foundation Server 2010 from Older Versions of Visual Studio
          1. 4.4.2.1. Visual Studio 2008 and Visual Studio 2005
          2. 4.4.2.2. Prior Visual Studio Versions
        3. 4.4.3. Connecting to Team Foundation Server from Eclipse and Cross-Platform
          1. 4.4.3.1. Team Foundation Server Plug-in for Eclipse
          2. 4.4.3.2. Cross-Platform Command-Line Client for Team Foundation Server
      5. 4.5. ALTERNATE WAYS TO CONNECT TO TEAM FOUNDATION SERVER
        1. 4.5.1. Accessing Team Foundation Server Through a Web Browser
        2. 4.5.2. Using Team Foundation Server in Microsoft Excel
        3. 4.5.3. Using Team Foundation Server in Microsoft Project
        4. 4.5.4. Windows Explorer Integration with Team Foundation Server
        5. 4.5.5. Expression Blend Integration with Team Foundation Server
        6. 4.5.6. Connecting Microsoft Test Manager to Team Foundation Server
        7. 4.5.7. Access to Team Foundation Server via Third-Party Integrations
      6. 4.6. SUMMARY
  9. II. Version Control
    1. 5. Overview of Version Control
      1. 5.1. WHAT IS VERSION CONTROL?
        1. 5.1.1. Repository
        2. 5.1.2. Working Copy
        3. 5.1.3. Working Folder Mappings
        4. 5.1.4. Get
        5. 5.1.5. Add
        6. 5.1.6. Check-out
        7. 5.1.7. Changeset
        8. 5.1.8. Check-in
        9. 5.1.9. History
        10. 5.1.10. Branching and Merging
      2. 5.2. COMMON VERSION CONTROL PRODUCTS
        1. 5.2.1. Microsoft Visual SourceSafe
        2. 5.2.2. Apache Subversion
        3. 5.2.3. Team Foundation Server
        4. 5.2.4. Distributed Version Control Systems
      3. 5.3. SUMMARY
    2. 6. Using Team Foundation Version Control
      1. 6.1. GETTING STARTED WITH TEAM FOUNDATION SERVER VERSION CONTROL
      2. 6.2. TEAM FOUNDATION SERVER VERSION CONTROL CONCEPTS
        1. 6.2.1. Workspace
        2. 6.2.2. Working Folder Mappings
          1. 6.2.2.1. Active Working Folder Mappings
          2. 6.2.2.2. Cloaked Working Folder Mappings
          3. 6.2.2.3. Recursive Working Folder Mappings
          4. 6.2.2.4. Mapping Individual Files
        3. 6.2.3. Get
        4. 6.2.4. Check-out
        5. 6.2.5. Locks
          1. 6.2.5.1. Check-out Lock
          2. 6.2.5.2. Check-in Lock
          3. 6.2.5.3. Using Locks Effectively
        6. 6.2.6. Check-in of Pending Changes
          1. 6.2.6.1. Check-in Notes
          2. 6.2.6.2. Check-in Policies
        7. 6.2.7. Undo Pending Changes
        8. 6.2.8. Changeset
        9. 6.2.9. Shelvesets
        10. 6.2.10. Branches
      3. 6.3. USING SOURCE CONTROL EXPLORER
        1. 6.3.1. Pending Changes View
        2. 6.3.2. Viewing History
        3. 6.3.3. Labeling Files
        4. 6.3.4. Recovering When Things Go Wrong
          1. 6.3.4.1. Get Specific, Force Overwrite, Force Get
          2. 6.3.4.2. Detect Local Changes in Eclipse
          3. 6.3.4.3. Return Online Power Tool
          4. 6.3.4.4. Re-create the Workspace
      4. 6.4. TEAM FOUNDATION SERVER VERSION CONTROL IN ECLIPSE
        1. 6.4.1. Installing the Team Foundation Server Plug-in for Eclipse
        2. 6.4.2. Sharing Eclipse Projects in Team Foundation Server
        3. 6.4.3. Importing Projects from Team Foundation Server
        4. 6.4.4. Differences Between the Eclipse and Visual Studio Clients
      5. 6.5. TEAM FOUNDATION SERVER VERSION CONTROL FROM THE COMMAND LINE
        1. 6.5.1. Getting Help
        2. 6.5.2. Using the Command Line
      6. 6.6. TEAM FOUNDATION VERSION CONTROL POWER TOOLS AND THIRD-PARTY UTILITIES
        1. 6.6.1. Microsoft Visual Studio Team Foundation Server Power Tools
        2. 6.6.2. Team Foundation Server MSSCCI Provider
        3. 6.6.3. Team Foundation Sidekicks
      7. 6.7. CONFIGURING VERSION CONTROL
        1. 6.7.1. Security and Permissions
        2. 6.7.2. Team Project Source Control Settings
          1. 6.7.2.1. Check-out Settings
          2. 6.7.2.2. Check-in Policy Settings
          3. 6.7.2.3. Check-in Notes
        3. 6.7.3. File Types
        4. 6.7.4. Local User Settings
          1. 6.7.4.1. Eclipse Preferences
      8. 6.8. SWITCHING VERSION CONTROL TO TEAM FOUNDATION SERVER
        1. 6.8.1. Team Foundation Server for Visual SourceSafe Users
          1. 6.8.1.1. Speed, Reliability, and Scalability
          2. 6.8.1.2. Versions
          3. 6.8.1.3. Pinning and Sharing
          4. 6.8.1.4. Labels and History
          5. 6.8.1.5. Keyword Expansion
          6. 6.8.1.6. File Timestamps
          7. 6.8.1.7. Concurrent Editing of Files
          8. 6.8.1.8. Get Latest on Check-out
          9. 6.8.1.9. New Features in Team Foundation Server
        2. 6.8.2. Team Foundation Server for Subversion Users
          1. 6.8.2.1. Differences in Terminology
          2. 6.8.2.2. Differences in Version Control Model
          3. 6.8.2.3. Shell Extension Functionality
          4. 6.8.2.4. Differences in History
          5. 6.8.2.5. Offline Support
          6. 6.8.2.6. Administration and Setup
      9. 6.9. SUMMARY
    3. 7. Ensuring Code Quality
      1. 7.1. WHAT IS QUALITY?
      2. 7.2. CHECK-IN POLICIES
        1. 7.2.1. Monitoring Check-In Policy Overrides
          1. 7.2.1.1. E-Mail Alerts
          2. 7.2.1.2. Data Warehouse
        2. 7.2.2. Check-In Policy Pack in Power Tools
        3. 7.2.3. Creating Custom Check-In Policies
        4. 7.2.4. Deploying Check-In Policies
      3. 7.3. GATED CHECK-IN
        1. 7.3.1. Why Gated Check-In?
        2. 7.3.2. When Not to Use Gated Check-In
        3. 7.3.3. Setting Up a Gated Check-In Build
        4. 7.3.4. Checking In for Validation
        5. 7.3.5. Reconciling the Local Workspace
      4. 7.4. MANAGING CODE REVIEWS
        1. 7.4.1. Shelvesets
        2. 7.4.2. Check-In Note for Code Reviewer
        3. 7.4.3. Third-Party Tools
          1. 7.4.3.1. Team Foundation Server Sidekicks
          2. 7.4.3.2. TeamReview
      5. 7.5. SUMMARY
    4. 8. Migration from Legacy Version Control Systems
      1. 8.1. MIGRATION VERSUS UPGRADE
        1. 8.1.1. Upgrade
        2. 8.1.2. Migration
      2. 8.2. MIGRATING HISTORY OR LATEST VERSION
      3. 8.3. MIGRATING FROM VISUAL SOURCESAFE
        1. 8.3.1. Preparing to Use the VSS Converter Tool
        2. 8.3.2. Analyzing the Visual SourceSafe Repository
          1. 8.3.2.1. Analyze Settings File
          2. 8.3.2.2. Executing the Analyze Phase
          3. 8.3.2.3. User Mapping
          4. 8.3.2.4. Reviewing and Resolving Issues
        3. 8.3.3. Migration
          1. 8.3.3.1. Migration Settings File
          2. 8.3.3.2. Executing the Migration
      4. 8.4. TEAM FOUNDATION SERVER INTEGRATION PLATFORM
      5. 8.5. POPULAR THIRD-PARTY MIGRATION TOOLS
        1. 8.5.1. Subversion, CVS, and StarTeam
        2. 8.5.2. ClearCase
      6. 8.6. SUMMARY
    5. 9. Branching and Merging
      1. 9.1. BRANCHING DEMYSTIFIED
        1. 9.1.1. Branch
        2. 9.1.2. Merge
        3. 9.1.3. Conflict
        4. 9.1.4. Branch Relationships
        5. 9.1.5. Baseless Merge
        6. 9.1.6. Forward/Reverse Integration
      2. 9.2. COMMON BRANCHING STRATEGIES
        1. 9.2.1. No Branching
        2. 9.2.2. Branch per Release
        3. 9.2.3. Code-Promotion Branching
        4. 9.2.4. Feature Branching
      3. 9.3. IMPLEMENTING BRANCHING STRATEGIES
        1. 9.3.1. The Scenario
        2. 9.3.2. The Plan
        3. 9.3.3. Implementation
        4. 9.3.4. Dealing with Changesets
          1. 9.3.4.1. Branch from Label
          2. 9.3.4.2. Branch from Changeset
          3. 9.3.4.3. Ladder Merge
          4. 9.3.4.4. Baseless Merge
        5. 9.3.5. Tracking Change Through Branches
      4. 9.4. SUMMARY
    6. 10. Common Version Control Scenarios
      1. 10.1. SETTING UP THE FOLDER STRUCTURE FOR YOUR BRANCHES
        1. 10.1.1. Application Source Code
        2. 10.1.2. Automated Tests Source Code
        3. 10.1.3. Architecture Assets
        4. 10.1.4. Database Schema
        5. 10.1.5. Installer Assets
        6. 10.1.6. Build and Deployment Assets
      2. 10.2. THIRD-PARTY SOURCE CODE/DEPENDENCIES
        1. 10.2.1. Folder Inside Branch
        2. 10.2.2. Folder at Team Project Level
      3. 10.3. INTERNAL SHARED LIBRARIES
        1. 10.3.1. Choosing a Location in Version Control
          1. 10.3.1.1. Dedicating a Branching Structure in the Same Team Project
          2. 10.3.1.2. Dedicating a Branching Structure in a Different Team Project
        2. 10.3.2. Storing Library Assemblies as Dependencies
        3. 10.3.3. Branching into Product Family Branches
      4. 10.4. MANAGING ARTIFACTS USING TEAM FOUNDATION SERVER
        1. 10.4.1. SQL Reporting Services Encryption Key Backup
        2. 10.4.2. Process Templates
        3. 10.4.3. Custom Build Assemblies
        4. 10.4.4. Master Build Process Templates
        5. 10.4.5. Source Code for Custom Tools
      5. 10.5. SUMMARY
  10. III. Project Management
    1. 11. Introducing Work Item Tracking
      1. 11.1. PROJECT MANAGEMENT ENHANCEMENTS IN TEAM FOUNDATION SERVER 2010
        1. 11.1.1. Rich Work Item Relationships
        2. 11.1.2. Agile Workbooks
        3. 11.1.3. Test Case Management
        4. 11.1.4. Enhanced Reporting
        5. 11.1.5. SharePoint Server Dashboards
      2. 11.2. WORK ITEMS
        1. 11.2.1. Work Item Types
        2. 11.2.2. Areas and Iterations
      3. 11.3. PROCESS TEMPLATES
        1. 11.3.1. MSF for Agile Software Development
        2. 11.3.2. MSF for CMMI Process Improvement
        3. 11.3.3. Visual Studio Scrum
        4. 11.3.4. Third-Party Process Templates
        5. 11.3.5. Custom Process Templates
      4. 11.4. MANAGING WORK ITEMS
        1. 11.4.1. Using Visual Studio
          1. 11.4.1.1. Creating Work Items
          2. 11.4.1.2. Work Item Queries
        2. 11.4.2. Using Microsoft Excel
        3. 11.4.3. Agile Workbooks
        4. 11.4.4. Using Microsoft Project
        5. 11.4.5. Using Team Web Access
        6. 11.4.6. Using Third-Party Tools
          1. 11.4.6.1. AIT Task Board
          2. 11.4.6.2. TeamSpec
          3. 11.4.6.3. Urban Turtle
      5. 11.5. PROJECT SERVER INTEGRATION
      6. 11.6. SUMMARY
    2. 12. Customizing Process Templates
      1. 12.1. ANATOMY OF A PROCESS TEMPLATE
        1. 12.1.1. Plug-in Files
        2. 12.1.2. Default Security Groups and Permissions
        3. 12.1.3. Initial Area and Iteration Nodes
        4. 12.1.4. Work Item Type Definitions
          1. 12.1.4.1. Work Item Fields
          2. 12.1.4.2. Work Item States and Transitions
          3. 12.1.4.3. Rules for States and Transitions
          4. 12.1.4.4. Work Item Form Layouts
          5. 12.1.4.5. Standard Work Item Controls
          6. 12.1.4.6. Work Item Categories
          7. 12.1.4.7. Work Item Link Types
          8. 12.1.4.8. Global Lists
          9. 12.1.4.9. Global Workflows and Fields
        5. 12.1.5. Initial Work Items
        6. 12.1.6. Work Item Queries and Folders
        7. 12.1.7. Microsoft Project Column Mappings
        8. 12.1.8. Version Control Permissions and Settings
        9. 12.1.9. SharePoint Project Team Portal Document Library Settings
        10. 12.1.10. SQL Reporting Services Report Definitions
      2. 12.2. USING THE PROCESS TEMPLATE EDITOR
        1. 12.2.1. Installing the Process Template Editor
        2. 12.2.2. Working with a Process Template
        3. 12.2.3. Using an XML Editor and WITAdmin
      3. 12.3. DEPLOYING UPDATES TO PROCESS TEMPLATES
        1. 12.3.1. Uploading Process Templates in Team Foundation Server
        2. 12.3.2. Editing Work Items on an Existing Team Project
          1. 12.3.2.1. Concerns
          2. 12.3.2.2. Using an Automated Build to Deploy Work Item Type Definition Changes
      4. 12.4. COMMON WORK ITEM TYPE CUSTOMIZATIONS
        1. 12.4.1. Adding New States
        2. 12.4.2. Displaying Custom Link Types
        3. 12.4.3. Using Display Name Changes (New syncnamechanges attribute)
        4. 12.4.4. Using a Rich-Text Description
      5. 12.5. INTRODUCING CUSTOM WORK ITEM CONTROLS
        1. 12.5.1. Work Item Clients
          1. 12.5.1.1. Preferred and Fallback Control
        2. 12.5.2. Work Item Control Interfaces
          1. 12.5.2.1. IWorkItemControl
          2. 12.5.2.2. IWorkItemToolTip
          3. 12.5.2.3. IWorkItemUserAction
          4. 12.5.2.4. IWorkItemClipboard
        3. 12.5.3. Deploying Custom Controls
        4. 12.5.4. Work Item Custom Control Deployment Manifest
        5. 12.5.5. Using the Custom Control in the Work Item Type Definition
      6. 12.6. SUMMARY
    3. 13. Reporting and SharePoint Dashboards
      1. 13.1. WHAT'S NEW IN TEAM FOUNDATION SERVER 2010
        1. 13.1.1. Cross-Collection Reporting Support
        2. 13.1.2. Changes to the Relational Warehouse
        3. 13.1.3. Changes to the Analysis Services Cube
        4. 13.1.4. Optional and Richer SharePoint Integration
      2. 13.2. TEAM FOUNDATION SERVER DATA WAREHOUSE
        1. 13.2.1. Operational Stores
        2. 13.2.2. Relational Warehouse Database and Warehouse Adapters
        3. 13.2.3. Querying the Relational Warehouse Database
          1. 13.2.3.1. Querying the Current Work Item View
          2. 13.2.3.2. Querying the Work Item History View
          3. 13.2.3.3. Other Considerations for Querying the Relational Warehouse
        4. 13.2.4. Analysis Services Cube
          1. 13.2.4.1. Cube Perspectives
          2. 13.2.4.2. Cube Processing
        5. 13.2.5. Data Warehouse Permissions
      3. 13.3. SHAREPOINT INTEGRATION
        1. 13.3.1. SharePoint Extensions
        2. 13.3.2. Excel Services and Dashboard Compatibility
        3. 13.3.3. SharePoint Configuration Tool
      4. 13.4. CREATING REPORTS
        1. 13.4.1. Tools
        2. 13.4.2. Excel Reporting from a Work Item Query
        3. 13.4.3. SQL Server Reporting Services Reports
          1. 13.4.3.1. Permissions
          2. 13.4.3.2. SQL Server Report Builder
          3. 13.4.3.3. SQL Server Business Intelligence Development Studio
        4. 13.4.4. SharePoint Dashboards
          1. 13.4.4.1. Accessing Dashboards
          2. 13.4.4.2. Customizing a Dashboard
      5. 13.5. ADVANCED CUSTOMIZATION
        1. 13.5.1. Customizing Project Portals
        2. 13.5.2. Customizing Warehouse Adapters
        3. 13.5.3. TfsRedirect.aspx
      6. 13.6. SUMMARY
  11. IV. Team Foundation Build
    1. 14. Overview of Build Automation
      1. 14.1. LET'S BUILD SOMETHING
      2. 14.2. WHAT IS BUILD AUTOMATION?
      3. 14.3. SCRIPTING A BUILD
        1. 14.3.1. Make
        2. 14.3.2. Apache Ant
        3. 14.3.3. Apache Maven
        4. 14.3.4. NAnt
        5. 14.3.5. MSBuild
        6. 14.3.6. Windows Workflow Foundation
      4. 14.4. USING BUILD AUTOMATION SERVERS
        1. 14.4.1. CruiseControl
        2. 14.4.2. CruiseControl.NET
        3. 14.4.3. Hudson
        4. 14.4.4. Team Foundation Server
      5. 14.5. ADOPTING BUILD AUTOMATION
      6. 14.6. SUMMARY
    2. 15. Using Team Foundation Build
      1. 15.1. INTRODUCTION TO TEAM FOUNDATION BUILD
      2. 15.2. TEAM FOUNDATION BUILD ARCHITECTURE
      3. 15.3. SETTING UP THE TEAM FOUNDATION BUILD SERVICE
        1. 15.3.1. Installing Team Foundation Build
        2. 15.3.2. Configuring the Team Foundation Build Service
        3. 15.3.3. Additional Software Required on the Build Agent
      4. 15.4. WORKING WITH BUILDS
        1. 15.4.1. Creating a Build Definition
          1. 15.4.1.1. General Section
          2. 15.4.1.2. Trigger Section
            1. 15.4.1.2.1. Manual
            2. 15.4.1.2.2. Continuous Integration
            3. 15.4.1.2.3. Rolling Builds
            4. 15.4.1.2.4. Gated Check-in
            5. 15.4.1.2.5. Schedule
          3. 15.4.1.3. Workspace Section
          4. 15.4.1.4. Build Defaults Section
          5. 15.4.1.5. Process Section
          6. 15.4.1.6. Retention Policy Section
          7. 15.4.1.7. Saving the Build Definition
        2. 15.4.2. Queuing a Build
          1. 15.4.2.1. Understanding the Queuing Process
          2. 15.4.2.2. Private Builds
        3. 15.4.3. Build Notifications and Alerts
          1. 15.4.3.1. Build Notification Tool
          2. 15.4.3.2. E-mail Alerts
        4. 15.4.4. Managing Builds
          1. 15.4.4.1. Build Explorer
            1. 15.4.4.1.1. Queued Builds
            2. 15.4.4.1.2. Completed Builds
          2. 15.4.4.2. Deleting Builds
          3. 15.4.4.3. Build Details View
        5. 15.4.5. Managing Build Quality Descriptions
        6. 15.4.6. Managing Build Controllers and Build Agents
      5. 15.5. UNDERSTANDING THE BUILD PROCESS
        1. 15.5.1. DefaultTemplate Process
          1. 15.5.1.1. Understanding the Process
          2. 15.5.1.2. Build Process Parameters
            1. 15.5.1.2.1. Configurations to Build
            2. 15.5.1.2.2. Projects to Build
            3. 15.5.1.2.3. Automated Tests
            4. 15.5.1.2.4. Build Number Format
            5. 15.5.1.2.5. Clean Workspace
            6. 15.5.1.2.6. Logging Verbosity
            7. 15.5.1.2.7. Perform Code Analysis
            8. 15.5.1.2.8. Source And Symbol Server Settings
            9. 15.5.1.2.9. Agent Settings
            10. 15.5.1.2.10. Analyze Test Impact
            11. 15.5.1.2.11. Associate Changesets and Work Items
            12. 15.5.1.2.12. Copy Outputs to Drop Folder
            13. 15.5.1.2.13. Create Work Item on Failure
            14. 15.5.1.2.14. Disable Tests
            15. 15.5.1.2.15. Get Version
            16. 15.5.1.2.16. Label Sources
            17. 15.5.1.2.17. MSBuild Arguments
            18. 15.5.1.2.18. MSBuild Platform
            19. 15.5.1.2.19. Private Drop Location
        2. 15.5.2. Building Ant and Maven Projects with Team Foundation Server
      6. 15.6. SUMMARY
    3. 16. Customizing the Build Process
      1. 16.1. INTRODUCTION TO WINDOWS WORKFLOW FOUNDATION
        1. 16.1.1. Visual Basic.NET Expressions
        2. 16.1.2. Custom Workflow Variables
        3. 16.1.3. Custom Build Parameters
          1. 16.1.3.1. Specifying Metadata
          2. 16.1.3.2. Parameter Visibility
          3. 16.1.3.3. Parameter Categories
          4. 16.1.3.4. Custom Editors for Parameters
        4. 16.1.4. Workflow Activities
          1. 16.1.4.1. Notable Workflow Framework Activities
            1. 16.1.4.1.1. If
            2. 16.1.4.1.2. Sequence
            3. 16.1.4.1.3. Assign
            4. 16.1.4.1.4. Exception Handling
            5. 16.1.4.1.5. Parallel
            6. 16.1.4.1.6. ForEach<T> and ParallelForEach<T>
            7. 16.1.4.1.7. InvokeMethod
          2. 16.1.4.2. Notable Team Foundation Server Activities
            1. 16.1.4.2.1. AgentScope
            2. 16.1.4.2.2. MSBuild and MSTest
            3. 16.1.4.2.3. WriteBuildMessage, WriteBuildWarning, and WriteBuildError
            4. 16.1.4.2.4. InvokeProcess
            5. 16.1.4.2.5. UpdateBuildNumber
            6. 16.1.4.2.6. SetBuildProperties and GetBuildDetail
            7. 16.1.4.2.7. CopyDirectory, DeleteDirectory, and CreateDirectory
            8. 16.1.4.2.8. ConvertWorkspaceItem and ConvertWorkspaceItems
            9. 16.1.4.2.9. FindMatchingFiles
            10. 16.1.4.2.10. SharedResourceScope
            11. 16.1.4.2.11. GetBuildEnvironment
            12. 16.1.4.2.12. InvokeForReason
          3. 16.1.4.3. Build Log Verbosity
      2. 16.2. WHEN TO USE MSBUILD VERSUS WF
      3. 16.3. CUSTOM BUILD WORKFLOW ACTIVITIES
        1. 16.3.1. How to Create a Custom Build Activity
        2. 16.3.2. Integrating Activity into the Build Process Template
        3. 16.3.3. Deployment of Custom Build Activities
      4. 16.4. CUSTOMIZING THE BUILD REPORT OUTPUT
        1. 16.4.1. Creating a Log Data Visualizer
        2. 16.4.2. Build Summary Report Custom Section
      5. 16.5. CUSTOMIZING THE BUILD PROCESS TO STAMP THE VERSION NUMBER ON ASSEMBLIES
        1. 16.5.1. Defining Custom Build Process Parameters
        2. 16.5.2. Allowing the Functionality to Be Optional
        3. 16.5.3. Defining Local Workflow Variables
        4. 16.5.4. Initializing the Local Workflow Variables
        5. 16.5.5. Finding Matching Assembly Info Files
        6. 16.5.6. Adding the Custom TfsVersion Activity
      6. 16.6. SUMMARY
  12. V. Administration
    1. 17. Introduction to Team Foundation Server Administration
      1. 17.1. ADMINISTRATOR TYPES
        1. 17.1.1. Infrastructure Administrator
        2. 17.1.2. Team Foundation Server Administrator
        3. 17.1.3. Project Administrator
      2. 17.2. LOGICAL ARCHITECTURE
        1. 17.2.1. Client Tier
        2. 17.2.2. Application Tier
        3. 17.2.3. Data Tier
          1. 17.2.3.1. Configuration Database
          2. 17.2.3.2. Relational Warehouse and OLAP Cube Database
          3. 17.2.3.3. Team Project Collections
      3. 17.3. BUILT-IN ADMINISTRATION TOOLS
        1. 17.3.1. Team Foundation Administration Console
          1. 17.3.1.1. License Information
          2. 17.3.1.2. Managing Application Tiers
            1. 17.3.1.2.1. Update Service Account Password
            2. 17.3.1.2.2. Change Service Account
            3. 17.3.1.2.3. Reapply Service Account
            4. 17.3.1.2.4. Change URLs
            5. 17.3.1.2.5. Add Team Foundation Server Administration Console User
            6. 17.3.1.2.6. Installed Updates
          3. 17.3.1.3. Managing Team Project Collections
            1. 17.3.1.3.1. General Tab
            2. 17.3.1.3.2. Stop and Start a Collection
            3. 17.3.1.3.3. Status Tab
            4. 17.3.1.3.4. Team Projects Tab
            5. 17.3.1.3.5. SharePoint Site Tab
            6. 17.3.1.3.6. Reports Folder Tab
            7. 17.3.1.3.7. Create a Team Project Collection
            8. 17.3.1.3.8. Move a Team Project Collection
            9. 17.3.1.3.9. Detach a Team Project Collection
            10. 17.3.1.3.10. Attach a Team Project Collection
            11. 17.3.1.3.11. Delete a Team Project Collection
          4. 17.3.1.4. Managing SharePoint Products
          5. 17.3.1.5. Managing Reporting
          6. 17.3.1.6. Other
        2. 17.3.2. Command-Line Configuration Tools
          1. 17.3.2.1. TFSConfig.exe
          2. 17.3.2.2. TFSServiceControl.exe
      4. 17.4. OTHER ADMINISTRATION TOOLS
        1. 17.4.1. Team Foundation Server Power Tools
        2. 17.4.2. Best Practices Analyzer
        3. 17.4.3. Team Foundation Server Administration Tool
        4. 17.4.4. Team Foundation Sidekicks
      5. 17.5. SUMMARY
    2. 18. Scalability and High Availability
      1. 18.1. WHAT'S NEW IN TEAM FOUNDATION SERVER 2010?
      2. 18.2. LIMITING FACTORS
        1. 18.2.1. Microsoft Recommendations
        2. 18.2.2. Data Tier
          1. 18.2.2.1. Storage
          2. 18.2.2.2. SQL Query Plan Cache
          3. 18.2.2.3. SQL Buffer Cache
        3. 18.2.3. Application Tier
          1. 18.2.3.1. Memory
          2. 18.2.3.2. ASP.NET Worker Threads Configuration
        4. 18.2.4. Web Access
        5. 18.2.5. Warehouse
        6. 18.2.6. Team Foundation Proxy
          1. 18.2.6.1. Network Performance
          2. 18.2.6.2. Storage Performance
      3. 18.3. PRINCIPLES
      4. 18.4. SOLUTIONS
        1. 18.4.1. Data Tier
          1. 18.4.1.1. High Availability
            1. 18.4.1.1.1. SQL Server Failover Clustering
            2. 18.4.1.1.2. Failover Topologies
            3. 18.4.1.1.3. SQL Server Database Mirroring
          2. 18.4.1.2. Scalability
            1. 18.4.1.2.1. SQL Server Enterprise and Data Center Editions
        2. 18.4.2. Application Tier and Web Access
          1. 18.4.2.1. Stateless
          2. 18.4.2.2. Load Balancing
            1. 18.4.2.2.1. Idle Timeout
            2. 18.4.2.2.2. Affinity
            3. 18.4.2.2.3. IP Pass Through
            4. 18.4.2.2.4. Advanced Load Balancing
          3. 18.4.2.3. ASP.NET Worker Threads
          4. 18.4.2.4. Version Control Cache Directory
        3. 18.4.3. Team Foundation Proxy
        4. 18.4.4. Virtualization
      5. 18.5. SUMMARY
    3. 19. Disaster Recovery
      1. 19.1. BUSINESS CONTINUITY AND RECOVERY GOALS
      2. 19.2. DEFINING RESPONSIBILITIES
      3. 19.3. BACKING UP TEAM FOUNDATION SERVER
        1. 19.3.1. Components to Back Up
          1. 19.3.1.1. SharePoint Products
          2. 19.3.1.2. Reporting Services Encryption Key
          3. 19.3.1.3. Lab Management
        2. 19.3.2. Types of Database Backups
          1. 19.3.2.1. Full Database Backups
          2. 19.3.2.2. Differential Database Backups
          3. 19.3.2.3. Transaction Log Backups
        3. 19.3.3. Important Considerations
          1. 19.3.3.1. SQL Marked Transactions
          2. 19.3.3.2. New Collections
          3. 19.3.3.3. Virtualization and Backups
          4. 19.3.3.4. Data Security
          5. 19.3.3.5. Software Versions, Installation Media, and License Keys
      4. 19.4. CREATING A BACKUP PLAN
        1. 19.4.1. Team Foundation Server Backup Plan Details
          1. 19.4.1.1. TfsConfigPT.exe and ConfigPT.xml
          2. 19.4.1.2. Take Full Backup Now
          3. 19.4.1.3. Update Account Password
          4. 19.4.1.4. Change Account
        2. 19.4.2. Restoring a Backup to the Original Server
          1. 19.4.2.1. Stop Services That Team Foundation Server Uses
          2. 19.4.2.2. Restore Team Foundation Databases Using the Restore Wizard
          3. 19.4.2.3. Clear the Version Control Cache
          4. 19.4.2.4. Update All Service Accounts
          5. 19.4.2.5. Rebuild the Warehouse
          6. 19.4.2.6. Restart Services That Team Foundation Server Uses
          7. 19.4.2.7. Restoring to Different Hardware
      5. 19.5. SUMMARY
    4. 20. Security and Privileges
      1. 20.1. USERS
        1. 20.1.1. Domain Users
          1. 20.1.1.1. Service Accounts
          2. 20.1.1.2. Machine Accounts
        2. 20.1.2. Local Users
        3. 20.1.3. Identity Synchronization
          1. 20.1.3.1. Identity Synchronization Job
          2. 20.1.3.2. Domains and Trusts
          3. 20.1.3.3. Handling Display Name Changes
          4. 20.1.3.4. Display Name Disambiguation
          5. 20.1.3.5. Alias Mode
      2. 20.2. GROUPS
        1. 20.2.1. Domain Groups
        2. 20.2.2. Distribution Groups
        3. 20.2.3. Local Groups
        4. 20.2.4. Team Foundation Server Groups
          1. 20.2.4.1. Server Groups
          2. 20.2.4.2. Team Project Collection Groups
          3. 20.2.4.3. Team Project Groups
      3. 20.3. PERMISSIONS
        1. 20.3.1. Server Permissions
        2. 20.3.2. Team Project Collection Permissions
        3. 20.3.3. Team Project Permissions
          1. 20.3.3.1. View Project-Level Information
          2. 20.3.3.2. Edit Project-Level Information
        4. 20.3.4. Work Item Tracking
          1. 20.3.4.1. Areas
          2. 20.3.4.2. Iterations
          3. 20.3.4.3. Team Query Folders
          4. 20.3.4.4. Team Web Access and Work Item Only View
        5. 20.3.5. Version Control Permissions
          1. 20.3.5.1. Check-In Policies
          2. 20.3.5.2. Branching and Permissions
          3. 20.3.5.3. Destroy
        6. 20.3.6. Reporting
      4. 20.4. SECURITY MANAGEMENT
        1. 20.4.1. Deny, Allow, and Unset Permissions
        2. 20.4.2. Use Active Directory Groups
        3. 20.4.3. Avoid Granting Individual User Permissions
        4. 20.4.4. Use Inheritance
      5. 20.5. TOOLS
        1. 20.5.1. Command-Line Tools
        2. 20.5.2. Team Foundation Server Administration Tool
      6. 20.6. SUMMARY
    5. 21. Monitoring Server Health and Performance
      1. 21.1. SYSTEM HEALTH
        1. 21.1.1. Storage System Health
      2. 21.2. SQL SERVER
        1. 21.2.1. Dynamic Management Views (DMV)
        2. 21.2.2. Currently Running Processes
          1. 21.2.2.1. Long-Running Processes
          2. 21.2.2.2. High Memory Usage
          3. 21.2.2.3. High Processor Usage
          4. 21.2.2.4. Performance Problems in a Specific Collection Database
          5. 21.2.2.5. Blocking Processes
          6. 21.2.2.6. Resource Contention
        3. 21.2.3. SQL Wait Types
        4. 21.2.4. Storage Health
        5. 21.2.5. Memory Contention
      3. 21.3. TEAM FOUNDATION SERVER
        1. 21.3.1. Command Log
        2. 21.3.2. Active Server Requests
        3. 21.3.3. Server Tracing
        4. 21.3.4. Client Performance Tracing
        5. 21.3.5. Job History
        6. 21.3.6. Storage Usage
        7. 21.3.7. Data Warehouse
      4. 21.4. TOOLS
        1. 21.4.1. Performance Analysis of Logs (PAL) Tool
        2. 21.4.2. Team Foundation Server Best Practices Analyzer (BPA)
        3. 21.4.3. Team Foundation Server Management Pack for System Center Operations Manager (SCOM)
      5. 21.5. SUMMARY
    6. 22. Testing and Lab Management
      1. 22.1. SOFTWARE TESTING
        1. 22.1.1. Test Case Management
        2. 22.1.2. Lab Management
      2. 22.2. TESTING ARCHITECTURE
      3. 22.3. MICROSOFT TEST MANAGER
        1. 22.3.1. Test Plans
        2. 22.3.2. Test Suites
        3. 22.3.3. Test Cases
        4. 22.3.4. Test Runs
        5. 22.3.5. Actionable Bugs
        6. 22.3.6. Test Settings
        7. 22.3.7. Test Attachments Cleaner
        8. 22.3.8. Assigning a Build to a Test Plan
        9. 22.3.9. Analyzing Impacted Tests
        10. 22.3.10. Build Retention
        11. 22.3.11. Custom Work Item Types
      4. 22.4. TEST AUTOMATION
      5. 22.5. VISUAL STUDIO 2010 LAB MANAGEMENT
        1. 22.5.1. Installing and Configuring Lab Management
          1. 22.5.1.1. Ports and Protocols
          2. 22.5.1.2. Capacity Planning
          3. 22.5.1.3. Managing Host Groups and Library Shares
          4. 22.5.1.4. Creating VMs and VM Templates
          5. 22.5.1.5. Working with Virtual Environments
          6. 22.5.1.6. Defining a Build-Deploy-Test Workflow
          7. 22.5.1.7. Lab Management Permissions
          8. 22.5.1.8. Geographically Distributed Teams
          9. 22.5.1.9. Physical Environments
          10. 22.5.1.10. VMware
          11. 22.5.1.11. Advanced Topologies
        2. 22.5.2. Maintaining a Healthy Test Lab
          1. 22.5.2.1. Instilling Good Citizenship
          2. 22.5.2.2. Managing Snapshots
          3. 22.5.2.3. Workflow Customizations
          4. 22.5.2.4. Patching of VMs and VM Templates
        3. 22.5.3. Troubleshooting
      6. 22.6. SUMMARY
    7. 23. Upgrading from Earlier Versions
      1. 23.1. UPGRADING FROM TEAM FOUNDATION SERVER 2005 AND 2008
        1. 23.1.1. In-Place Upgrades Versus Migrating to New Hardware
        2. 23.1.2. Planning Upgrades
          1. 23.1.2.1. Connection URL
          2. 23.1.2.2. Other Servers in Team Foundation Server Environment
      2. 23.2. UPGRADING PREREQUISITES
        1. 23.2.1. SQL Server
        2. 23.2.2. SharePoint
      3. 23.3. USING THE CONFIGURATION UTILITY
        1. 23.3.1. Upgrade Wizard
        2. 23.3.2. Verification of Upgrade
        3. 23.3.3. Consolidating Legacy Servers
      4. 23.4. UPGRADING LEGACY TEAM PROJECTS
        1. 23.4.1. Enabling Branch Visualization
        2. 23.4.2. Enabling Test Case Management
        3. 23.4.3. Upgrading Work Item Type Definitions
        4. 23.4.4. Automated Builds
        5. 23.4.5. Deploying New Reports
        6. 23.4.6. Deploying New SharePoint Team Portal Site
      5. 23.5. SUMMARY
    8. 24. Working with Geographically Distributed Teams
      1. 24.1. IDENTIFYING THE CHALLENGES
        1. 24.1.1. Latency Over the Wide Area Network (WAN)
        2. 24.1.2. Sources of Network Traffic
          1. 24.1.2.1. Version Control
          2. 24.1.2.2. Work Item Tracking
      2. 24.2. SOLUTIONS
        1. 24.2.1. Central Server with Remote Proxy Servers
        2. 24.2.2. Multiple Distributed Servers
        3. 24.2.3. Mirroring
        4. 24.2.4. Remote Desktops
        5. 24.2.5. Internet-Connected "Extranet" Server
        6. 24.2.6. Mirroring to an Internet-Connected Server
        7. 24.2.7. Metadata Filtering
      3. 24.3. BUILD SERVERS
        1. 24.3.1. Local Build Server
        2. 24.3.2. Remote Build Server
      4. 24.4. TEAM FOUNDATION SERVER PROXY
        1. 24.4.1. How the Team Foundation Server Proxy Works
        2. 24.4.2. Compatibility
        3. 24.4.3. Configuring Proxies
          1. 24.4.3.1. Proxy Cleanup Settings
          2. 24.4.3.2. Automatically Detecting the Proxy Settings
          3. 24.4.3.3. Active Directory Sites
          4. 24.4.3.4. Setting a Proxy
        4. 24.4.4. Seeding Proxies
        5. 24.4.5. Personal Proxies
      5. 24.5. MIRRORING WITH THE TEAM FOUNDATION SERVER INTEGRATION TOOLS
        1. 24.5.1. Capabilities
          1. 24.5.1.1. Field Maps, Value Maps, and User Maps
          2. 24.5.1.2. Intelligent Conflict Resolution
          3. 24.5.1.3. Health Monitoring
        2. 24.5.2. Examples
          1. 24.5.2.1. Version Control Two-Way Synchronization to a Second Server
          2. 24.5.2.2. Work Item Synchronization to a Different Process Template
      6. 24.6. WORKING OFFLINE
        1. 24.6.1. Version Control
        2. 24.6.2. Forcing Offline
        3. 24.6.3. Work Items
      7. 24.7. OTHER CONSIDERATIONS
        1. 24.7.1. Maintenance Windows and Time Zones
        2. 24.7.2. Online Index Operations with SQL Server Enterprise
        3. 24.7.3. Distributed Application Tiers
        4. 24.7.4. SQL Mirroring
      8. 24.8. SUMMARY
    9. 25. Extending Team Foundation Server
      1. 25.1. Extensibility Points
        1. 25.1.1. Extensibility Points
      2. 25.2. CLIENT OBJECT MODEL
        1. 25.2.1. Connecting to the Server
        2. 25.2.2. Handling Multiple API Versions
        3. 25.2.3. Displaying the Work Item Form
        4. 25.2.4. Distributing the Client Object Model
      3. 25.3. SOAP EVENT SUBSCRIPTIONS
        1. 25.3.1. Available Event Types
        2. 25.3.2. Building an Endpoint
        3. 25.3.3. Adding the Subscription
        4. 25.3.4. Listing All Event Subscriptions
      4. 25.4. SERVER OBJECT MODEL
        1. 25.4.1. Server Extensibility Interfaces
        2. 25.4.2. Server Plug-Ins
          1. 25.4.2.1.
            1. 25.4.2.1.1. Decision Points
            2. 25.4.2.1.2. Notifications
      5. 25.5. VISUAL STUDIO EXTENSIBILITY
      6. 25.6. EXCEL AGILE WORKBOOKS
        1. 25.6.1. Manually Binding the Iteration Backlog
        2. 25.6.2. Code Behind
      7. 25.7. OTHER RESOURCES
      8. 25.8. SUMMARY