You are previewing Team Development with Visual Studio® Team Foundation Server.
O'Reilly logo
Team Development with Visual Studio® Team Foundation Server

Book Description

This guide shows you how to get the most out of Visual Studio 2005 Team Foundation Server to help improve the effectiveness of your team-based software development. Whether you are already using Team Foundation Server or adopting from scratch, you'll find guidance and insights you can tailor for your specific scenarios.

Table of Contents

  1. Team Development with Microsoft® Visual Studio® Team Foundation Server: Patterns & Practices
    1. SPECIAL OFFER: Upgrade this ebook with O’Reilly
    2. Foreword by Jeff Beehler
      1. Foreword
    3. Foreword by Brian Harry
      1. Foreword
    4. Foreword by Rob Caron
      1. Foreword
    5. Introduction
      1. Team Development
      2. Scope of This Guide
      3. Why We Wrote This Guide
      4. Who Should Read This Guide
      5. How to Use This Guide
      6. Organization of This Guide
        1. Parts
          1. Part I, Fundamentals
          2. Part II, Source Control
          3. Part III, Builds
          4. Part IV, Large Project Considerations
          5. Part V, Project Management
          6. Part VI, Process Templates
          7. Part VII, Reporting
          8. Part VIII, Setting Up and Maintaining the Team Environment
          9. Part IX, Visual Studio Team System 2008 Team Foundation Server
        2. Guidelines
        3. Practices
        4. Questions and Answers
        5. "How To" Articles
        6. Resources
      7. Feedback and Support
        1. Feedback on the Guide
        2. Technical Support
        3. Community Support
      8. The Team Who Brought You This Guide
        1. Contributors and Reviewers
      9. Tell Us About Your Success
    6. I. Fundamentals
      1. 1. Introducing the Team Environment
        1. Objectives
        2. Overview
        3. How to Use This Chapter
        4. Logical Workflow of Team Foundation Server
        5. Logical Workflow of Development, Test, and Production Environments
          1. Development Processes
          2. Test Processes
        6. Development and Test Physical Environments
          1. Development Environment
          2. Test Environment
        7. Summary
        8. Additional Resources
      2. 2. Team Foundation Server Architecture
        1. Objectives
        2. Overview
        3. How to Use This Chapter
        4. Team Foundation Server Architecture
          1. Client Tier
          2. Application Tier
            1. Team Foundation Data Services
            2. Team Foundation Integration Services
          3. Data Tier
        5. Deployment Topology
          1. Key Requirements
          2. Single-Server Deployment
          3. Dual-Server Deployment
        6. Summary
        7. Additional Resources
    7. II. Source Control
      1. 3. Structuring Projects and Solutions in Source Control
        1. Objectives
        2. Overview
        3. How to Use This Chapter
        4. Strategies for Solution and Project Structure
          1. Single Solution
          2. Partitioned Solution
          3. Multiple Solutions
        5. Large Project Considerations
        6. Summary
        7. Additional Resources
      2. 4. Structuring Projects and Solutions in Team Foundation Source Control
        1. Objectives
        2. Overview
        3. How to Use This Chapter
        4. Server-Side Structure
          1. Storing Unit Tests
            1. UnitTests As a Peer to the Source folder
            2. UnitTests in Each Project
          2. Storing Documents
        5. Client-Side Structure
        6. Branched Folders
        7. Workspaces Explained
          1. Creating a New Workspace Mapping
          2. Where Are Workspace Mappings Stored?
          3. Cloaking
        8. What Files Should Be Version Controlled?
        9. What Files Should Not Be Source Controlled?
        10. Summary
        11. Additional Resources
      3. 5. Defining Your Branching and Merging Strategy
        1. Objectives
        2. Overview
        3. How to Use This Chapter
        4. Scenarios for Branching and Merging
        5. Common Scenarios in Practice
        6. Example Folders and Their Purpose
        7. Scenario 1—No Branches
        8. Scenario 2—Branch for Release
        9. Scenario 3—Branch for Maintenance
        10. Scenario 4—Branch for Feature
        11. Scenario 5—Branch for Team
        12. Logical Structure
        13. Release Scenario
        14. Isolated Development Scenario
        15. Branching Considerations
        16. Large Project Considerations
        17. Summary
        18. Additional Resources
      4. 6. Managing Source Control Dependencies in Visual Studio Team System
        1. Objectives
        2. Overview
        3. How to Use This Chapter
        4. Scenarios and Solutions
          1. Referencing Assemblies Generated by another Project in the Same Solution
          2. Referencing Assemblies Generated by Projects in a Separate Solution
          3. Referencing an Assembly from another Team Project
          4. Referencing a Third-Party Assembly
        5. Referencing Projects
          1. Branching
          2. Workspace Mapping
        6. Referencing Third-Party Assemblies
          1. Branching
          2. Workspace Mapping
        7. Guidelines for Referencing Projects and Assemblies
          1. Automated Dependency Tracking
        8. Referencing Web Services
          1. Use Dynamic URLs When Referencing Web Services
          2. How to Use Dynamic URLs and a User Configuration File
        9. Referencing Databases
          1. How to Use User Configuration Files for Database Connection Strings
        10. Summary
        11. Additional Resources
    8. III. Builds
      1. 7. Team Build Explained
        1. Objectives
        2. Overview
        3. How to Use This Chapter
        4. Architecture
          1. Physical Architecture
          2. Logical Workflow
          3. Key Points
          4. How Team Build Works
        5. How to Determine Your Build Strategy
          1. Consider Your Build Consumers
          2. Review Solution Scenarios
            1. Build Scenarios
            2. Scheduled Builds
            3. Continuous Integration Build
            4. Gated Check-ins
          3. Understand Common Stumbling Blocks
        6. Considerations for Large Project
        7. Build Customization
        8. Summary
        9. Additional Resources
      2. 8. Setting Up Continuous Integration with Team Build
        1. Objectives
        2. Overview
        3. How to Use This Chapter
        4. Strategies for Continuous Integration Builds
          1. Build on Each Check-In
          2. Rolling Build After a Specific Number of Check-ins
          3. Rolling Build After a Specific Time Interval
          4. Rolling Build After a Specific Number of Check-Ins or Time Interval
          5. Determining Your Rolling Build Interval
        5. Continuous Integration Build in Team Foundation Server
        6. Summary
        7. Additional Resources
      3. 9. Setting Up Scheduled Builds with Team Build
        1. Objectives
        2. Overview
        3. How to Use This Chapter
        4. Strategy for Scheduled Build Frequency
          1. Hourly Builds
          2. Nightly Builds
          3. Weekly Builds
        5. Scheduled Build in Team Foundation Server
        6. Summary
        7. Additional Resources
    9. IV. Large Project Considerations
      1. 10. Large Project Considerations
        1. Objectives
        2. Overview
        3. How to Use This Chapter
        4. Logical Workflow for Large Projects
        5. Source Control Considerations
        6. Branching and Merging Considerations
        7. Build Considerations
        8. Summary
        9. Additional Resources
    10. V. Project Management
      1. 11. Project Management Explained
        1. Objectives
        2. Overview
        3. How to Use This Chapter
        4. Project Management Summary
        5. Traditional Project Management Issues
        6. Project Management Features in Team Foundation Server
          1. Benefits
        7. Creating and Managing Projects with Team Foundation Server
        8. Strategies for Team Projects
          1. Team Project per Application
          2. Team Project per Release
          3. Team Project per Team
        9. Process Management
          1. Process Templates
          2. MSF for Agile Software Development and MSF for CMMI Process Improvement Process Templates
        10. Security and Permissions
        11. Work Item Management
          1. MSF for Agile Software Development Process Template
          2. MSF for CMMI® Process Improvement Process Template
          3. Microsoft Project Integration
          4. Microsoft Excel Integration
        12. Progress and Reporting
        13. Summary
        14. Additional Resources
      2. 12. Work Items Explained
        1. Objectives
        2. Overview
        3. How to Use This Chapter
        4. Scenarios and Solutions
        5. Work Item Structure
        6. Work Item Types
          1. MSF Agile Work Item Types
          2. MSF CMMI Work Item Types
        7. Work Item Workflow
          1. Workflow Examples
            1. MSF CMMI Task
            2. MSF Agile Bug
        8. Customizing Work Items
        9. Summary
        10. Additional Resources
    11. VI. Process Templates
      1. 13. Process Templates Explained
        1. Objectives
        2. Overview
        3. How to Use This Chapter
        4. MSF Agile and MSF CMMI Process Templates
        5. Customizing Process Guidance
          1. Process Template Architecture
            1. Process Template Plug-ins
            2. XML Process Definition Files
            3. New Team Project Wizard
          2. Customization Approach
          3. Common Customizations
        6. How Does the Customization Process Work?
        7. Summary
        8. Additional Resources
      2. 14. MSF for Agile Software Development Projects
        1. Objectives
        2. Overview
        3. How to Use This Chapter
        4. Workflow for MSF for Agile Software Development
        5. MSF for Agile Software Development Defaults
        6. Work Items
        7. Reports
        8. Groups and Permissions
        9. Source Control
        10. Areas and Iterations
        11. Examples of MSF for Agile Software Development in Practice
          1. Example 1: patterns & practices Teams
            1. New Project Through Iteration 0
            2. Pre-Iteration Planning
            3. Iteration Planning
            4. During the Iteration
            5. After the Iteration
          2. Example 2: Field Customer Engagement
            1. New Project Through Iteration 0
            2. During the Iteration
            3. After Iteration 0
        12. Customizing the MSF Agile Process Template
        13. Summary
        14. Additional Resources
    12. VII. Reporting
      1. 15. Reporting Explained
        1. Objectives
        2. Overview
        3. How to Use This Chapter
        4. Scenarios and Solutions
        5. Team Foundation Server Reports
          1. Bugs
          2. Release Management
          3. Testing
          4. Work Items
        6. Customizing Reports
          1. More Information
        7. Physical Architecture
          1. Components of the Reporting System
            1. Server-Side Components
            2. Client-Side Components
            3. Report Development Tools
        8. Summary
        9. Additional Resources
    13. VIII. Setting Up and Maintaining the Team Enviornment
      1. 16. Team Foundation Server Deployment
        1. Objectives
        2. Overview
        3. How to Use This Chapter
        4. TFS Architecture
        5. Deployment Scenarios
          1. Single-Server Deployment with Workgroup
          2. Single-Server Deployment with Active Directory
          3. What Is the Right Type of Deployment for My Organization?
            1. Advantages of Single-Server Deployments
            2. Advantages of Dual-Server Deployments
          4. Single-Server Deployment
          5. Dual-Server Deployment
          6. Other Servers
            1. Build Server Installation
            2. Team Foundation Proxy Server
        6. Team Foundation Server Topologies
          1. Simple Topology
          2. Moderate Topology
          3. Complex Topology
          4. Additional Considerations
        7. Team Foundation Server Scaling and Backup Strategy
          1. Choose the Appropriate Installation and Backup/Recovery Strategies for Your Company
          2. Recommended Team Foundation Server Hardware
          3. Backup and Failover Strategy
            1. Backup
            2. Application-Tier Standby Server
            3. Failover
          4. The Data Tier
            1. Clustering the Data-Tier Servers
            2. Mirroring the Data-Tier Servers
            3. Failing over a Mirrored Server
          5. The Application Tier
            1. Failover the Application Tier
            2. Standby Hardware and Software
            3. Failing over the Application Tier Server
        8. Verify that the correct application-tier server is connected to the correct data-tier server
        9. Summary
        10. Additional Resources
      2. 17. Providing Internet Access to Team Foundation Server
        1. Objectives
        2. Overview
        3. How to Use This Chapter
        4. Key Strategies
        5. Common Scenarios
        6. Using a VPN connection
          1. Advantages
          2. Disadvantages
        7. Publishing TFS Through a Reverse Proxy
          1. Networks without a domain controller on the perimeter
          2. Networks with a domain controller on the perimeter
          3. Advantages
          4. Disadvantages
        8. Locating TFS in an Extranet ("Hosted Scenario")
          1. Advantages
          2. Disadvantages
        9. Basic Authentication / SSL
          1. More information
        10. Team Foundation Server Proxy
          1. Tips to improve proxy performance
          2. Mirrored Accounts
          3. More information
        11. Remote Build Server
        12. Summary
        13. Additional Resources
    14. IX. Visual Studio Team System 2008 Team Foundation Server
      1. 18. What’s New in Visual Studio Team System 2008 Team Foundation Server
        1. Administration, Operations & Setup
        2. Build
        3. Version Control
        4. Work Item Tracking
        5. Compatibility Issues with Visual Studio 2005 Team System
        6. Impact on the Guidance
        7. Additional Resources
    15. A. Guidelines: Team Build
      1. Index
        1. Strategy
        2. Branching
        3. Check-in Policies
        4. Continuous Integration Builds
        5. Customization
        6. Deployment
        7. Performance
        8. Projects
        9. Scheduled Builds
        10. Test-Driven Development
        11. Work Items
        12. Strategy
        13. Use a Scheduled Build to Produce Regular Builds
          1. Additional Resources
        14. Use a Continuous Integration Build to Get Rapid Feedback on Check-ins
          1. Additional Resources
        15. Use a Rolling Build if CI Builds Are Adversely Impacting Build Server Performance
          1. Additional Resources
        16. Use Branching to Reduce Build Breaks
          1. Additional Resources
        17. Use Check-in Policies to Improve Check-in Quality
          1. Additional Resources
        18. Use Build Notification Alerts to Learn When the Build Has Completed
          1. Additional Resources
      2. Branching
        1. Use New Team Build Types When Creating a Partial Branch
          1. Additional Resources
        2. Modify the Paths to Solutions in the TFSBuild.proj Files, When Creating a Complete Branch
          1. Additional Resources
      3. Check-in Policies
        1. Use Check-in Policies to Improve Check-in Quality
          1. Additional Resources
        2. Use Check-in Policies to Associate Work Items with the Build
          1. Additional Resources
      4. Continuous Integration Builds
        1. Use a CI Build to Get Rapid Feedback on Check-ins
          1. Additional Resources
        2. Use a Rolling Build if CI Builds Are Adversely Impacting Build Server Performance
          1. Additional Resources
        3. Ensure That the Frequency of Your Rolling Builds Is Less Often than the Build Times
          1. Additional Resources
      5. Customization
        1. Use a Custom Post-Build Step to Build an Installer Project
          1. Additional Resources
        2. Use MS Build Toolkit Extras to Build Microsoft .NET 1.1 Applications
          1. Additional Resources
        3. Use TFSBuild.proj to Modify Your Build
          1. Additional Resources
        4. Use a Custom Pre-build Step to Build a Project That Has Dependencies to Another Team Project
          1. Additional Resources
      6. Deployment
        1. On Larger Teams, Install the Build Services on a Separate Server
          1. Additional Resources
      7. Performance
        1. Use Incremental Builds to Improve Performance
          1. Additional Resources
        2. Avoid Synchronizing Redundant Folders in Your Build
          1. Additional Resources
        3. Use Workspaces to Avoid Checking Out Unwanted Files and Projects When Doing a Team Build
          1. Additional Resources
        4. Consider Using Multiple Build Machines to Improve Performance
          1. Additional Resources
      8. Projects
        1. Avoid Dependencies Across Team Projects
          1. Additional Resources
        2. Use Project References Instead of File References
          1. Additional Resources
        3. Use Web Deployment Project for Web Applications
          1. Additional Resources
        4. Use a Single-Solution Strategy if You Are Working on a Small Team Project
          1. Additional Resources
        5. Use a Partitioned-Solution Strategy if You Are Working on a Large Team Project with Multiple Independent Sub-Projects
          1. Additional Resources
        6. Use a Multiple-Solution Strategy if You Are Working on a Very Large Team Project That Requires Many Dozens of Independent Sub-Projects
          1. Additional Resources
      9. Scheduled Builds
        1. Use a Scheduled Build to Produce Regular Builds
          1. Additional Resources
      10. Test-Driven Development
        1. Run Code Analysis on Each Build
          1. Additional Resources
        2. Run Automated Tests on Each Build
          1. Additional Resources
        3. Consider Setting Builds to Fail When Automated Tests Fail
          1. Additional Resources
        4. Work Items
        5. Use Work Items to Track Build Breaks
          1. Additional Resources
      11. Build Resources
    16. B. Guidelines: Source Control
      1. Index
        1. Accessing Version Control
        2. Administration
        3. Branch / Label / Merge
        4. Check-ins and Check-in Policies
        5. Checkout, Get, and Lock
        6. Dependencies
        7. Distributed / Remote Development
        8. Migration
        9. Project / Workspace Management
        10. Shelving
      2. Accessing Version Control
        1. Consider Using Command-Line Tools
          1. Additional Resources
        2. Use Team Foundation Power Tools to Unshelve a Change
          1. Additional Resources
        3. Use Team Foundation Power Tools to Roll Back a Change
          1. Additional Resources
        4. Use Team Foundation Power Tools to Work Offline
          1. Additional Resources
        5. Use Team Foundation Power Tools to Get a Changeset
          1. Additional Resources
        6. Use Team Foundation Power Tools to Remove Pending Edits
          1. Additional Resources
      3. Administration
        1. Turn Off Inherited Permissions on Maintenance Branches
          1. Additional Resources
        2. Deny Check-in Permissions to Developers You Do Not Yet Trust to Make Changes to Your Source
          1. Additional Resources
      4. Branch / Label / Merge
        1. Use Labels to Mark Builds You Might Need to Return To
          1. Additional Resources
        2. Use Branches to Isolate Supported Releases
          1. Additional Resources
        3. Plan Your Branching Structure Along Merge Paths
          1. Additional Resources
        4. Branch at a High Level, Including Configuration and Source Files
          1. Additional Resources
        5. Do Not Branch Too Deeply
          1. Additional Resources
        6. Do Not Branch Unless You Need To
          1. Additional Resources
        7. Avoid Baseless Merges Where Possible
          1. Additional Resources
        8. Prefer Full Merges to "Cherry-Pick" Merges
          1. Additional Resources
        9. Merge Frequently
          1. Additional Resources
        10. Always Create a Top-Level Folder for a New Team Project to Serve as a Main Branch
          1. Additional Resources
        11. Consider Using the Candidate or Preview Switch to Double-Check Before Merging
          1. Additional Resources
        12. When Renames Are Part of the Merge, Pay Close Attention to the Path That the Tool Recommends
          1. Additional Resources
        13. Be Careful When Resolving Merge Conflicts
          1. Additional Resources
        14. Check In the Results of One Merge At a Time
          1. Additional Resources
        15. Build and Run Tests After the Merge and Prior to Check-in
          1. Additional Resources
      5. Check-in and Check-in Policies
        1. Only Check In Your Code When You Are Ready to Share It
          1. Additional Resources
        2. Use Shelvesets to Back Up or Share Pending Changes
          1. Additional Resources
        3. Resolve One Work Item per Check-in
          1. Additional Resources
        4. Use Check-in Policies to Enforce Coding Standards
          1. Additional Resources
        5. Use Check-in Policies to Enforce a Code Quality Gate
          1. Additional Resources
        6. Detect When a Policy Has Been Overridden
          1. Additional Resources
        7. Plan to Avoid Conflicts
          1. Additional Resources
      6. Checkout, Get, and Lock
        1. Get the Latest Source Before Making Changes
          1. Additional Resources
        2. Use the lock Command with Discretion
          1. Additional Resources
        3. Communicate with Your Teammates When Locking Files
          1. Additional Resources
      7. Dependencies
        1. Use Project References Whenever Possible
          1. Additional Resources
        2. Use File References Only Where Necessary
          1. Additional Resources
        3. Use copy local = true for Project and File References
          1. Additional Resources
        4. Use Dynamic URLs When Referencing Web Services
          1. Additional Resources
      8. Distributed / Remote Development
        1. Make Sure That You Get an Appropriately Sized Disk Drive for Your Proxy
          1. Additional Resources
        2. Create a Scheduled Task to Pull the Latest Files on a Periodic Basis
          1. Additional Resources
        3. Periodically Monitor Proxy Performance Counters and the Event Log
          1. Additional Resources
        4. Configure executionTimeout Based on File Sizes and Bandwidth
          1. Additional Resources
        5. Disable the Proxy if It Is Going to Be Down for an Extended Time Period
          1. Additional Resources
        6. Consider Workspace Cloaking to Reduce Unnecessary File Transfers
          1. Additional Resources
      9. Migration
        1. Use the VSS Converter to Migrate to Team Foundation Server Source Control
          1. Additional Resources
        2. Migrate from Other Source-Control Systems to Team Foundation Server Source Control
          1. Additional Resources
      10. Project / Workspace Management
        1. Isolate a Single Developer Using Workspaces Rather Than Branches
          1. Additional Resources
        2. Delete and Rename Files by Using Source Control, Not Windows Explorer
          1. Additional Resources
        3. Only Delete and Rename with Your Solution Open
          1. Additional Resources
        4. Create One Team Project per Application if You Want to Move Your Assets Between Application Versions
          1. Additional Resources
        5. Create One Team Project Per Version If You Want to Start Fresh With Each Application Version
          1. Additional Resources
        6. Use Branching to Share Code and Binaries that Require Integration Testing
          1. Additional Resources
        7. Avoid Workspace Mapping to Support Cross-Project Dependencies
          1. Additional Resources
        8. Create Workspace Mappings at the Team Project Root Level
          1. Additional Resources
        9. Use a Unique Local Folder Path on Shared Computers
          1. Additional Resources
        10. Consider Mapping Only Part of the Source Tree
          1. Additional Resources
        11. Structure Your Source Tree to Support Branching
          1. Additional Resources
      11. Shelving
        1. Use Shelving to Share Pending Changes for Review or Handoff
          1. Additional Resources
        2. Use Shelving to Back Up Pending Changes to the Server
          1. Additional Resources
        3. Use Shelving if Interrupted by Higher-Priority Work
          1. Additional Resources
      12. Source Control Resources
    17. C. Guidelines: Reporting
      1. Index
        1. Administration
        2. Creating / Customizing
        3. Viewing
      2. Administration
        1. Ensure That Users Are in the Correct Security Groups
          1. Additional Resources
        2. Create a Report Dashboard to View Project Status and Health Metrics in One Location
          1. Additional Resources
      3. Creating / Customizing
        1. Make Sure That the Server Name Is Correct When Deploying Reports
          1. Additional Resources
        2. Create Scheduled Report Snapshots That You Can View over Time
        3. Modify Existing Reports to Gain Access to Additional Data
          1. Additional Resources
      4. Viewing
        1. Ensure That the Warehouse Web Service Has Run If You Want the Latest Data
          1. Additional Resources
      5. Team Foundation Reporting Resources
    18. D. Guidelines: Project Management
      1. Index
        1. Areas and Iterations
        2. Check-in Policies
        3. Process Templates
        4. Security Groups and Permissions
        5. Team Projects
        6. Work Items
      2. Areas and Iterations
        1. Use Areas for Better Traceability
          1. Additional Resources
        2. Use Iterations to Represent Milestones in Your Project
          1. Additional Resources
        3. Determine Appropriate Iteration Cycle Duration
          1. Additional Resources
      3. Check-in Policies
        1. Use Check-in Policies to Enforce Code Quality
          1. Additional Resources
        2. Use Check-in Policies to Ensure That Developers Associate Work Items with Check-ins
          1. Additional Resources
        3. Create Check-in Policies to Enforce Coding Standards
          1. Additional Resources
        4. Set Up Notifications to Inform You When Developers Bypass Check-in Policies
          1. Additional Resources
      4. Process Templates
        1. Use the MSF Agile Process Template When Working on Projects That Only Require a Lightweight or Informal Process
          1. Additional Resources
        2. Use the MSF CMMI Process Template When Working on Projects Requiring a More Formal Process or Conformance with CMMI Standards
          1. Additional Resources
        3. Consider Using a Minimal Process Template
          1. Additional Resources
        4. Modify an Existing Process Template to Match Your Team’s Process
          1. Additional Resources
      5. Security Groups and Permissions
        1. Create Security Groups to Grant a Specific Set of Permissions
          1. Additional Resources
        2. Assign Team Members to the Appropriate Security Group
          1. Additional Resources
      6. Team Projects
        1. Create One Team Project per Application if You Want to Migrate Work Items and Other Assets Between Application Versions
          1. Additional Resources
        2. Create One Team Project per Version if You Want to Start with New Work Items and Other Assets with Each Application Version
          1. Additional Resources
        3. Grant Only Required Permissions on Project Assets
          1. Additional Resources
        4. Structure Your Source Tree to Support Branching
          1. Additional Resources
      7. Work Items
        1. Capture Your Scenarios at the Start of Your Project
          1. Additional Resources
        2. Define Your Quality of Service Requirements Appropriately
          1. Additional Resources
        3. Break Scenarios into Manageable, Modular Development Tasks
          1. Additional Resources
        4. Set Acceptance Criteria for Each Task
          1. Additional Resources
        5. Link Requirements and Tasks to Scenarios
          1. Additional Resources
        6. Use Microsoft Excel for Bulk Editing of Work Items
          1. Additional Resources
      8. Team Foundation Project Management Resources
    19. E. Practices at a Glance: Team Build
      1. Index
        1. Administration
        2. Check-in Policies
        3. Continuous Integration Builds
        4. Customization
        5. Deployment
        6. General
        7. Projects
        8. Reporting
        9. Scheduled Builds
        10. Test-Driven Development
      2. Administration
        1. How to Secure Your Build Server
          1. Additional Resources
        2. How to Delete a Build
          1. Additional Resources
        3. How to Delete a Build Type
          1. Additional Resources
        4. How to Associate a Work Item with a Build
          1. Additional Resources
      3. Check-in Policies
        1. How to Use Check-in Policies to Improve Check-in Quality
          1. Additional Resources
        2. How to Use Check-in Policies to Associate Work Items with the Build
          1. Additional Resources
      4. Continuous Integration Builds
        1. How to Automatically Run Continuous Integration Builds
          1. Additional Resources
        2. How to Determine if You Need a Rolling Build
          1. Additional Resources
        3. How to Determine Your Rolling Build Time Interval
          1. Additional Resources
      5. Customization
        1. How to Modify the Build Number
          1. Additional Resources
        2. How to Set Up Workspace Mapping to Get and Build a Subset of the Tree
          1. Additional Resources
        3. How to Build a Project with Dependencies on Another Team Project
          1. Additional Resources
        4. How to Change the Build Configuration (Release/Debug)
          1. Additional Resources
      6. Deployment
        1. How to Set Up a Build Server
          1. Additional Resources
        2. How to Determine if You Need Multiple Build Servers
      7. General
        1. How to Build and Deploy an ASP.NET Application with Team Build
          1. Additional Resources
        2. How to Build a .NET 1.1 Application with Team Build
          1. Additional Resources
        3. How to Build Setup and Deployment Projects with Team Build
          1. Additional Resources
        4. How to Create a Team Build
        5. How to Create Multiple Build Types
        6. How to Create a Team Build for a Project That References Assemblies from Another Project
          1. Additional Resources
        7. How to Subscribe to Build E-mail Events
          1. Additional Resources
        8. How to Receive Notification When a Build Has Failed
          1. Additional Resources
        9. How to Start a Build
        10. How to Verify That the Build Succeeded
        11. How to View the Build Output
        12. How to Change the Build Server Location
          1. Additional Resources
        13. How to Change the Build Output Location
          1. Additional Resources
        14. How to Determine What Changesets Are Part of the Build
        15. How to Change the Reported Build Quality
      8. Projects
        1. How to Use a Single-Solution Strategy
          1. Additional Resources
        2. How to Use a Partitioned-Solution Strategy
          1. Additional Resources
        3. How to Use a Multiple-Solution Strategy
          1. Additional Resources
      9. Reporting
        1. How to View Build Quality
        2. How to View All the Check-ins for a Build
        3. How to View Work Items or Bugs Closed for a Build
        4. How to View Open Work Items or Bugs for a Build
        5. How to Track Velocity from Build to Build
        6. How to Track Test Case Pass/Fail results for a Build
        7. How to Review Build Status (BVT Results)
      10. Scheduled Builds
        1. How to Automatically Run Nightly Builds
          1. Additional Resources
        2. How to Decide on a Build Frequency and Type for Your Project
          1. Additional Resources
      11. Test-Driven Development
        1. How to Create a "Hello World" Acceptance Test
          1. Additional Resources
        2. How to Run Automated Tests as Part of the Build
          1. Additional Resources
        3. How to Run Code Analysis as Part of the Build
          1. Additional Resources
        4. How to Get Failed Tests to Fail a Build
          1. Additional Resources
      12. Team Build Resources
    20. F. Practices at a Glance: Source Control
      1. Index
        1. Accessing Version Control
        2. Administration
        3. Branch/Label/Merge
        4. Builds
        5. Check-ins and Check-in Policies
        6. Checkout, Get, and Lock
        7. Code Sharing
        8. Dependencies
        9. Distributed/Remote Development
        10. Migration
        11. Project/Workspace Management
        12. Security
        13. Shelving
      2. Accessing Version Control
        1. How to Use Version Control from Non–Visual Studio Clients
          1. MSSCCI Integration
          2. Third-Party Integration
            1. Custom Integration
          3. Additional Resources
        2. How to Automate Common Version-Control Tasks
          1. Additional Resources
        3. How to Work Offline
          1. Additional Resources
      3. Administration
        1. How to Add a New Developer to Your Project
          1. Additional Resources
        2. How to Remove a Developer Who Has Left Your Project
          1. Additional Resources
        3. How to Grant Permissions Within Your Source Tree
          1. Additional Resources
        4. How to Move Team Foundation Version Control to Another Server
          1. Additional Resources
      4. Branch/Label/Merge
        1. How to Use Labels
          1. Additional Resources
        2. How to Branch
          1. Additional Resources
        3. How to Plan Your Branching Structure
          1. Additional Resources
        4. How to Use Branching to Support a Release
          1. Additional Resources
        5. How to Use Branching to Maintain a Previous Release
          1. Additional Resources
        6. How to Use Branching to Stabilize Your Development and Build Process
          1. Additional Resources
        7. How to Use Branching to Stabilize Feature Development
          1. Additional Resources
        8. How to Use Branching to Stabilize Development Across Teams
          1. Additional Resources
        9. How to Use Branching to Isolate External Dependencies
          1. Additional Resources
        10. How to Retire an Old Release
          1. Additional Resources
        11. How to Perform a Merge
          1. Additional Resources
        12. How to Perform a Baseless Merge
          1. Example
          2. Additional Resources
        13. How to Resolve Merge Conflicts
          1. Additional Resources
      5. Builds
        1. How to Use TFS to Perform Continuous Integration Builds
          1. Additional Resources
      6. Check-ins and Check-in Policies
        1. How to Work with Source Control Change Sets
          1. Additional Resources
        2. How to Enforce Coding Standards Prior to Check-in
          1. Additional Resources
        3. How to Override a Check-in Policy
          1. Additional Resources
        4. How to Undo a Check-in
          1. Additional Resources
        5. How to Resolve a Conflict
          1. Additional Resources
        6. How to Avoid Conflicts
          1. Additional Resources
        7. How to Create a Custom Check-in Policy
          1. Additional Resources
      7. Checkout, Get, and Lock
        1. How to Synchronize Your Computer with TFS
          1. Additional Resources
        2. How to Prepare a File for Editing
          1. Additional Resources
      8. Code Sharing
        1. How to Share Code
          1. Additional Resources
        2. How to Manage Shared Binaries
          1. Additional Resources
      9. Dependencies
        1. How to Manage Web Service Dependencies
          1. Additional Resources
        2. How to Manage Database Dependencies
          1. Additional Resources
      10. Distributed/Remote Development
        1. How to Access TFS over the Internet
          1. Additional Resources
        2. How to optimize TFS Version Control proxy performance
          1. Additional Resources
      11. Migration
        1. How to Migrate Your Source from Visual SourceSafe
          1. Additional Resources
        2. How to Migrate Your Source from other Version-Control Systems
          1. Additional Resources
      12. Project/Workspace Management
        1. How to Choose One Team Project vs. Multiple Team Projects
          1. Additional Resources
        2. How to Organize Your Source Tree
          1. Additional Resources
        3. How to Define Workspace Mappings
          1. Additional Resources
        4. How to use Workspaces to Isolate Code Changes on Your Computer
          1. Additional Resources
      13. Security
        1. How to Secure the Channel Between a Developer Workstation and TFS
          1. Additional Resources
      14. Shelving
        1. How to Use Shelving to Back Up Pending Work
          1. Additional Resources
        2. How to Use Shelving to Share Code with a Team Member
          1. Additional Resources
      15. Source Control Resources
    21. G. Practices at a Glance: Reporting
      1. Index
        1. Administration
        2. Creation / Customization
        3. Viewing
      2. Administration
        1. How to Set Up a Report Dashboard
          1. Additional Resources
        2. How to Set Permissions on Reports
          1. Additional Resources
      3. Creation / Customization
        1. How to Customize an Existing Report
          1. Additional Resources
        2. How to Create a New Report in Visual Studio
          1. Additional Resources
        3. How to Create a New Report in Excel
          1. Additional Resources
        4. How to Create a Scheduled Report Snapshot
        5. How to Create a Report Subscription
        6. How to Add a New Report to an Existing Process Template
          1. Additional Resources
      4. Viewing
        1. How to Analyze the Status of a Project
        2. How to Analyze Application Quality
        3. How to Review Remaining Work
        4. How to Review Build Status
        5. How to Review Bugs and Test Results
        6. How to Review Scheduled Work versus Actual Work on an Iteration
        7. How to Determine the Owner of the Last Edit on a File
          1. Additional Resources
        8. How to Discover All the Code Changes Made by a Developer
          1. Additional Resources
        9. How to Discover All the Code Changes Made to a File
          1. Additional Resources
        10. How to Discover All the Code Changes Associated with a Specific Work Item
          1. Additional Resources
        11. How to Generate Code Churn Metrics
        12. How to Generate Workspace Metrics Such as Number of Files, Lines of Code, and Number of Projects
          1. Additional Resources
      5. Team Foundation Reporting Resources
    22. H. Practices at a Glance: Project Management
      1. Index
        1. Check-in Policies
        2. Project Management
      2. Check-in Policies
        1. How to Set Up Check-in Policies to Enforce Code Quality
          1. Additional Resources
        2. How to Set Up Check-in Policies to Ensure That Developers Associate Work Items with Check-ins
          1. Additional Resources
        3. How to Set Up Check-in Policies to Enforce Coding Standards
          1. Additional Resources
      3. Project Management
        1. How to Use Microsoft Project to Manage Your Project
          1. Additional Resources
        2. How to Use Microsoft Excel to Manage Your Project
          1. Additional Resources
        3. How to Create a Minimal Process Template
          1. Additional Resources
        4. How to Customize a Process Template
          1. Additional Resources
        5. How to Customize a Work Item Type Within a Process Template
          1. Additional Resources
        6. How to Customize a Work Item Type Within an Existing Team Project
          1. Additional Resources
        7. How to Create an Iteration
          1. Additional Resources
        8. How to Create an Area
          1. Additional Resources
        9. How to Add a Check-in Event Notification
          1. Additional Resources
        10. How to Set Up a Report Dashboard
          1. Additional Resources
        11. How to Create Folders in Your Source Control Repository
          1. Additional Resources
        12. How to Delete a Project from Team Foundation Server
          1. Additional Resources
      4. Team Foundation Project Management Resources
    23. I. Questions and Answers: Source Control
      1. Index
        1. Accessing Version Control
        2. Administration
        3. Branch/Label/Merge
        4. Check-ins and Check-in Policies
        5. Checkout, Get, and Lock
        6. Distributed/Remote Development
        7. Migration
        8. Project/Workspace Management
        9. Shelving
      2. Accessing Version Control
        1. What is the MSSCCI Provider and when is it used?
          1. Additional Resources
        2. What other IDEs support TFS?
          1. Additional Resources
        3. When should I use the Team Foundation Server Power Tool?
          1. Additional Resources
        4. What are the most common version control extensibility scenarios?
          1. Additional Resources
        5. How do I work with version control from the command line?
          1. Additional Resources
      3. Administration
        1. How do I grant permissions on a file within a folder that has inherited permissions?
          1. Additional Resources
        2. What should I do if a developer has left the project?
          1. Additional Resources
        3. How do I manage interns or other developers that I do not trust to perform check-ins?
          1. Additional Resources
        4. How should I modify permissions after my application has shipped?
          1. Additional Resources
      4. Branch/Label/Merge
        1. When should I use labels?
          1. Additional Resources
        2. How do TFS labels differ from VSS labels?
          1. Additional Resources
        3. What is branching?
          1. Additional Resources
        4. When should I consider branching?
          1. Additional Resources
        5. What are the reasons not to branch?
          1. Additional Resources
        6. How do I use branching to release my application?
          1. Additional Resources
        7. How do I use branching to maintain my application?
          1. Additional Resources
        8. How do I use branching to reduce conflicts between teams?
          1. Additional Resources
        9. How do I use branching to reduce conflicts between features?
          1. Additional Resources
        10. What are the proven practices for branching and merging?
          1. Additional Resources
        11. What is the difference between branching and labeling?
          1. Additional Resources
        12. What is the "path space" branching model?
          1. Additional Resources
        13. How does the TFS promotion model work?
          1. Additional Resources
        14. How do I merge two branches?
          1. Additional Resources
        15. Can I merge across team projects?
          1. Additional Resources
        16. What is a baseless merge?
          1. Additional Resources
        17. What is the code promotion model?
          1. Additional Resources
        18. What is the difference between the logical and physical view of branches?
          1. Additional Resources
        19. If I use the code promotion model, how often should I merge?
          1. Additional Resources
      5. Check-in and Check-in Policies
        1. What is a changeset?
          1. Additional Resources
        2. What is a check-in policy?
          1. Additional Resources
        3. When and how can I override a check-in policy?
          1. Additional Resources
        4. How do I enforce a policy?
          1. Additional Resources
        5. How do I use a check-in verification system?
          1. Additional Resources
        6. If I modify file names or delete files on the disk, does version control get out of sync?
        7. How does automatic conflict resolution work?
          1. Additional Resources
        8. How do I resolve conflicts manually?
          1. Additional Resources
        9. How do I avoid conflicts?
          1. Additional Resources
      6. Checkout, Get, and Lock
        1. How do I find out who was the last developer to modify a file?
          1. Additional Resources
        2. How does the get command work?
          1. Additional Resources
        3. What is the difference between shared and exclusive checkout?
          1. Additional Resources
        4. When should I use the lock command?
          1. Additional Resources
        5. What lock types does TFS support?
          1. Additional Resources
      7. Distributed/Remote Development
        1. How do I work offline?
          1. Additional Resources
        2. How do I optimize for distributed team development?
          1. Additional Resources
        3. What is the TFS Version Control proxy?
          1. Additional Resources
        4. How do I optimize TFS Version Control proxy performance?
          1. Additional Resources
      8. Migration
        1. How is TFS version control different from VSS?
          1. Additional Resources
        2. How is the checkout model different from VSS?
          1. Additional Resources
        3. How should I migrate my source from VSS to TFS?
          1. Additional Resources
        4. How should I migrate my source from other version-control systems?
          1. Additional Resources
      9. Project/Workspace Management
        1. How should I organize my team projects?
          1. Create one project per application
          2. Create one project per release
          3. Additional Resources
        2. How should I manage dependencies between projects?
          1. Additional Resources
        3. What is a workspace?
          1. Additional Resources
        4. How do I use workspaces to isolate the work of a developer?
          1. Additional Resources
        5. What are the proven practices for workspace mapping?
          1. Additional Resources
        6. When should I create a new Team Project versus a new Branch?
          1. Additional Resources
        7. How should I manage source code that is shared across multiple projects?
          1. Additional Resources
        8. How should I manage binaries that are shared across multiple projects?
          1. Additional Resources
        9. How should I organize my source tree?
          1. Additional Resources
      10. Shelving
        1. What is shelving?
          1. Additional Resources
        2. What is a shelveset?
          1. Additional Resources
        3. When would I typically use shelving?
          1. Additional Resources
        4. How do I use shelving to back up my work?
          1. Additional Resources
        5. Why would I want to unshelve a shelveset?
          1. Additional Resources
      11. Source Control Resources
    24. J. How To: Add a New Developer to Your Project in Visual Studio 2005 Team Foundation Server
      1. Applies To
      2. Summary
      3. Contents
      4. Objectives
      5. Overview
      6. Summary of Steps
      7. Step 1—Grant Access to the Team Project
      8. Step 2—Grant Access to the SharePoint Project Site
      9. Step 3—Grant Access to SQL Server Reporting Services
      10. Additional Resources
    25. K. How To: Automatically Run Code Analysis with Team Build in Visual Studio Team Foundation Server
      1. Applies To
      2. Summary
      3. Contents
      4. Objective
      5. Overview
      6. Summary of Steps
      7. Before You Begin
      8. Step 1—Test the Build
      9. Step 2—Turn On Code Analysis for the Build
      10. Step 3—Test Code Analysis
      11. Additional Resources
    26. L. How To: Create a Custom Report for Visual Studio Team Foundation Server
      1. Applies To
      2. Summary
      3. Contents
      4. Objectives
      5. Overview
      6. Summary of Steps
      7. Before You Begin
      8. Step 1—Create a new reporting project
      9. Step 2—Create the data sources
      10. Step 3—Create a new report in your project
      11. Step 4—Modify the report
      12. Step 5—Deploy the report to your Team Foundation Server
      13. Step 6—Test the report
      14. Additional Resources
    27. M. How To: Create a "Risk over Time" Report for Visual Studio Team Foundation Server
      1. Applies To
      2. Summary
      3. Contents
      4. Objectives
      5. Overview
      6. Summary of Steps
      7. Before You Begin
      8. Step 1—Create a New Reporting Project
      9. Step 2—Create the Data Sources
      10. Step 3—Create a New Report in Your Project
      11. Step 4—Modify the Report
      12. Step 5—Deploy the Report to your Team Foundation Server
      13. Step 6—Test the report
      14. Additional Resources
    28. N. How To: Create Custom Check-in Policies in Visual Studio Team Foundation Server
      1. Applies To
      2. Summary
      3. Contents
      4. Objectives
      5. Overview
      6. Before You Begin
      7. Summary of Steps
      8. Step 1—Create and Build a Custom Policy Class
      9. Step 2—Register the Custom Policy in the Windows Registry
      10. Step 3—Apply the Custom Policy
      11. Step 4—Validate the Custom Policy
      12. Additional Resources
    29. O. How To: Create Your Source Tree in Visual Studio Team Foundation Server
      1. Applies To
      2. Summary
      3. Contents
      4. Objectives
      5. Overview
      6. Summary of Steps
      7. Step 1 – Create a New Team Project
      8. Step 2 – Create a Workspace Mapping
      9. Step 3—Create Your Folder Structure in Source Control
      10. Step 4—Add Your Source Code to Your Source Tree
      11. Additional Resources
    30. P. How To: Customize a Process Template in Visual Studio Team Foundation Server
      1. Applies To
      2. Summary
      3. Content
      4. Objectives
      5. Overview
      6. Summary of Steps
      7. Step 1—Install Process Editor
      8. Step 2—Choose the Process Template
        1. MSF Agile
        2. MSF CMMI
      9. Step 3—Download the Process Template
      10. Step 4 – Open the Process Template in Process Editor
      11. Step 5—Modify Work Item Types
      12. Step 6—Modify the Default Work Items
      13. Step 7—Modify and Manage Queries
      14. Step 8—Modify Areas and Iterations
      15. Step 9—Modify Groups and Permissions
      16. Step 10—Modify Source Control Settings
      17. Step 11—Modify the Project SharePoint Portal
      18. Step 12—Modify Reports
      19. Step 13—Upload the Modified Process Template
      20. Additional Resources
    31. Q. How To: Customize a Report in Visual Studio Team Foundation Server
      1. Applies To
      2. Summary
      3. Contents
      4. Objective
      5. Overview
      6. Summary of Steps
      7. Before You Begin
      8. Step 1—Create a New Reporting Project
      9. Step 2—Export the Report You Want to Customize
      10. Step 3—Create the Data Sources
      11. Step 4—Add the Report to Your Project
      12. Step 5—Modify the Report
      13. Step 6—Deploy the Report to Your Team Foundation Server
      14. Step 7—Test the Report
      15. Additional Resources
    32. R. How To: Manage Projects in Visual Studio Team Foundation Server
      1. Applies To
      2. Summary
      3. Contents
      4. Objective
      5. Overview
      6. Summary of Steps
      7. Before You Begin
      8. Step 1—Choose a Process Template
      9. Step 2—Create a Team Project
      10. Step 3—Create Security Groups (Optional)
      11. Step 4—Add Team Members in Team Foundation Server
      12. Step 5—Determine Your Iteration Cycle
      13. Step 6—Capture Your Project Scenarios in TFS
      14. Step 7—Identify the Scenarios for the Iteration
      15. Step 8—Define Your Quality of Service Requirements
      16. Step 9—Plan Your Iteration
        1. Developer Tasks
        2. Test Tasks
        3. Others
      17. Step 10—Monitor Progress
        1. Bugs
        2. Release Management
        3. Testing
        4. Work Items
      18. Area and Iteration Consideration
      19. Additional Resources
    33. S. How To: Migrate Source Code to Team Foundation Server from Visual Source Safe
      1. Applies To
      2. Summary
      3. Contents
      4. Objectives
      5. Overview
      6. Before You Begin
      7. Summary of Steps
      8. Step 1—Back Up Your VSS Database
      9. Step 2—Analyze Your VSS Database to Resolve Data Integrity Issues
      10. Step 3—Analyze Your Projects in VSS
      11. Step 4—Prepare to Migrate Your Projects
      12. Step 5—Migrate Your Projects
      13. Additional Considerations
      14. Additional Resources
    34. T. How To: Perform a Baseless Merge in Visual Studio Team Foundation Server
      1. Applies To
      2. Summary
      3. Contents
      4. Objectives
      5. Overview
      6. Summary of Steps
      7. Step 1—Evaluate Whether a Baseless Merge Is Needed
      8. Step 2—Perform a Baseless Merge Using Tf.exe
      9. Step 3—Resolve Merge Conflicts
      10. Step 4—Check-in the Merged Changes
      11. Additional Resources
    35. U. How To: Set Up a Continuous Integration Build in Visual Studio Team Foundation Server
      1. Applies To
      2. Summary
      3. Contents
      4. Objectives
      5. Overview
      6. Summary of Steps
      7. Before You Begin
      8. Step 1—Create and Test your Build
      9. Step 2—Install the Continuous Integration Solution
      10. Step 3—Configure the Continuous Integration Solution
      11. Step 4—Register for the CheckinEvent Event
      12. Step 5—Test the Continuous Integration Build
        1. Troubleshooting
      13. Step 6—Set Up E-mail Alerts
      14. Additional Resources
    36. V. How To: Set Up a Scheduled Build in Visual Studio Team Foundation Server
      1. Applies To
      2. Summary
      3. Contents
      4. Objectives
      5. Overview
      6. Summary of Steps
      7. Before You Begin
      8. Step 1—Create and Test Your build
      9. Step 2—Create the TFSBuild Command Line
      10. Step 3—Test the TFSBuild Command Line
      11. Step 4—Create a Batch File
      12. Step 5—Test the batch file
      13. Step 6—Add a Scheduled Task
      14. Step 7—Test the Scheduled Task
      15. Additional Resources
    37. W. How To: Structure ASP.NET Applications in Visual Studio Team Foundation Server
      1. Applies To
      2. Summary
      3. Contents
      4. Objectives
      5. Overview
      6. Summary of Steps
      7. Step 1—Create Local Folders for Your Web Project
      8. Step 2—Create a Blank Solution
      9. Step 3—Add a Web Site to Your Solution
        1. File System
        2. HTTP
      10. Step 4—Add a Class Library (Optional)
      11. Step 5—Check Your Solution Structure
      12. Step 6—Check your Local Folder Structure
      13. Step 7—Add Your Solution to Source Control
      14. Shared Code Considerations
        1. Reference the Code from a Shared Location
        2. Branch the Shared Code
      15. Additional Resources
    38. X. How To: Structure Windows Applications in Visual Studio Team Foundation Server
      1. Applies To
      2. Summary
      3. Contents
      4. Objectives
      5. Overview
      6. Summary of Steps
      7. Step 1—Create Local Folders for Your Windows Forms Project
      8. Step 2—Create a Blank Solution
      9. Step 3—Add a Windows Forms Project to Your Solution
      10. Step 4—Add a Control Library (Optional)
      11. Step 5—Add a Class Library (Optional)
      12. Step 6—Check Your Solution Structure
      13. Step 7—Check Your Local Folder Structure
      14. Step 8—Add Your Solution to Source Control
      15. Shared Code Considerations
        1. Reference the Code from a Shared Location
        2. Branch the Shared Code
      16. Additional Resources
    39. Y. How To: Structure Your Source Control Folders in Team Foundation Server
      1. Applies To
      2. Summary
      3. Contents
      4. Objectives
      5. Overview
      6. Summary of Steps
      7. Step 1—Create a Workspace Mapping
      8. Step 2—Create Your Main Folder
      9. Step 3—Create Folders for Your Project Artifacts
      10. Step 4—Add Your Solution to Your Source Tree
        1. Creating a Folder Structure When a Project Has Unit Tests
      11. Step 5—Create a Branched Development Folder for Isolation (Optional)
      12. Step 6—Create a Releases Folder for Release Builds Isolation (Optional)
      13. Additional Considerations
      14. Additional Resources
    40. Z. Team Foundation Server Resources
      1. Contents
      2. patterns & practices
      3. CodePlex Sites
      4. Team Foundation Related Web Sites
      5. Partners and Service Providers
      6. Forums
      7. Microsoft Team Foundation Blogs
      8. Service Packs
      9. Training
    41. Index
    42. About the Author
    43. SPECIAL OFFER: Upgrade this ebook with O’Reilly