Wiley.com
Print this page Share

Professional Team Foundation Server 2010

ISBN: 978-0-470-94332-8
Paperback
720 pages
March 2011
Professional Team Foundation Server 2010 (0470943327) cover image
This title is out-of-print and not currently available for purchase from this site.

FOREWORD xxxi

INTRODUCTION xxxiii

PART I: GETTING STARTED

CHAPTER 1: INTRODUCING TEAM FOUNDATION SERVER 2010 3

What is Team Foundation Server? 3

What’s New in Team Foundation Server 2010 5

Project Management 5

Version Control 5

Build 6

Administration 6

Acquisition Options 6

Trial 7

Volume Licensing 7

MSDN Subscription 7

Microsoft Partner Network 8

Retail 8

Hosted Team Foundation Server Instances 9

Summary 9

CHAPTER 2: PLANNING A DEPLOYMENT 11

Identifying and Addressing Software Engineering Pain 12

Transparency into the Release or Project 12

Collaboration Across Different Teams and Roles 12

Automated Compilation, Testing, Packaging, and Deployment 13

Managing Test Plans 13

Parallel Development 13

How to Adopt Team Foundation Server 14

Adoption Timeline 14

Phased Approach 14

Hosting Team Foundation Server 16

Identifying Affected Teams 16

Generating Consensus 17

Team Foundation Server Administrator 17

Pilot Projects 18

Migration Strategies 19

Version Control 19

Work Item Tracking 20

Structuring Team Project Collections and Team Projects 20

Considering Limitations in Team Foundation Server 23

Server Limitations 25

Preparation for a Team Foundation Server Environment 25

Understanding the Architecture and Scale-Out Options 26

Hardware Requirements 28

Virtualization 28

Planning for Software Prerequisites 29

Service Accounts 32

File Share Folders 33

SMTP Server 34

Firewall Concerns and Ports Used 34

Friendly DNS Names 35

Legacy Visual Studio Versions 36

Summary 36

CHAPTER 3: INSTALLATION AND CONFIGURATION 37

What You’ll Need 37

Team Foundation Server 2010 38

Team Foundation Server 2010 Installation Guide 39

SQL Server 2008 39

Operating System 40

SharePoint 40

Client Software 40

Service Packs and Other Updates 40

Installing Team Foundation Server 42

Installation Types 43

Configuring Team Foundation Server 46

Creating Your First Team Project 50

Configure Friendly DNS Names 52

Summary 52

CHAPTER 4: CONNECTING TO TEAM FOUNDATION SERVER 53

Team Foundation Server Architecture 53

Addressing Team Foundation Server 55

Introducing Team Foundation Server Security and Roles 57

Users 57

Groups 58

Permissions 59

Team Explorer 59

Understanding Team Explorer in Visual Studio 2010 60

Connecting to Team Foundation Server 2010 from Older Versions of Visual Studio 69

Connecting to Team Foundation Server from Eclipse and Cross-Platform 71

Alternate Ways to Connect to Team Foundation Server 74

Accessing Team Foundation Server Through a Web Browser 74

Using Team Foundation Server in Microsoft Excel 75

Using Team Foundation Server in Microsoft Project 76

Windows Explorer Integration with Team Foundation Server 77

Expression Blend Integration with Team Foundation Server 78

Connecting Microsoft Test Manager to Team Foundation Server 78

Access to Team Foundation Server via Third-Party Integrations 79

Summary 79

PART II: VERSION CONTROL

CHAPTER 5: OVERVIEW OF VERSION CONTROL 83

What is Version Control? 83

Repository 84

Working Copy 85

Working Folder Mappings 85

Get 86

Add 86

Check-out 86

Changeset 87

Check-in 87

History 87

Branching and Merging 88

Common Version Control Products 88

Microsoft Visual SourceSafe 88

Apache Subversion 89

Team Foundation Server 90

Distributed Version Control Systems 91

Summary 92

CHAPTER 6: USING TEAM FOUNDATION VERSION CONTROL 95

Getting Started with Team Foundation Server Version Control 96

Team Foundation Server Version Control Concepts 98

Workspace 98

Working Folder Mappings 100

Get 104

Check-out 106

Locks 108

Check-in of Pending Changes 110

Undo Pending Changes 114

Changeset 114

Shelvesets 116

Branches 117

Using Source Control Explorer 118

Pending Changes View 119

Viewing History 122

Labeling Files 123

Recovering When Things Go Wrong 124

Team Foundation Server Version Control in Eclipse 125

Installing the Team Foundation Server Plug-in for Eclipse 127

Sharing Eclipse Projects in Team Foundation Server 128

Importing Projects from Team Foundation Server 132

Differences Between the Eclipse and Visual Studio Clients 134

Team Foundation Server Version Control from the Command Line 135

Getting Help 136

Using the Command Line 136

Team Foundation Version Control Power Tools and Third-Party Utilities 137

Microsoft Visual Studio Team Foundation Server Power Tools 137

Team Foundation Server MSSCCI Provider 138

Team Foundation Sidekicks 139

Configuring Version Control 140

Security and Permissions 140

Team Project Source Control Settings 142

File Types 144

Local User Settings 144

Switching Version Control to Team Foundation Server 147

Team Foundation Server for Visual SourceSafe Users 147

Team Foundation Server for Subversion Users 150

Summary 153

CHAPTER 7: ENSURING CODE QUALITY 155

What is Quality? 155

Check-In Policies 156

Monitoring Check-In Policy Overrides 158

Check-In Policy Pack in Power Tools 160

Creating Custom Check-In Policies 161

Deploying Check-In Policies 165

Gated Check-In 166

Why Gated Check-In? 166

When Not to Use Gated Check-In 167

Setting Up a Gated Check-In Build 167

Checking In for Validation 168

Reconciling the Local Workspace 168

Managing Code Reviews 170

Shelvesets 170

Check-In Note for Code Reviewer 171

Third-Party Tools 171

Summary 172

CHAPTER 8: MIGRATION FROM LEGACY VERSION CONTROL SYSTEMS 175

Migration Versus Upgrade 176

Upgrade 176

Migration 176

Migrating History or Latest Version 177

Migrating from Visual SourceSafe 178

Preparing to Use the VSS Converter Tool 179

Analyzing the Visual SourceSafe Repository 180

Migration 183

Team Foundation Server Integration Platform 184

Popular Third-Party Migration Tools 186

Subversion, CVS, and StarTeam 186

ClearCase 186

Summary 187

CHAPTER 9: BRANCHING AND MERGING 189

Branching Demystified 189

Branch 189

Merge 190

Conflict 190

Branch Relationships 191

Baseless Merge 191

Forward/Reverse Integration 192

Common Branching Strategies 193

No Branching 193

Branch per Release 194

Code-Promotion Branching 196

Feature Branching 196

Implementing Branching Strategies 198

The Scenario 198

The Plan 199

Implementation 199

Dealing with Changesets 204

Tracking Change Through Branches 214

Summary 216

CHAPTER 10: COMMON VERSION CONTROL SCENARIOS 217

Setting Up the Folder Structure for Your Branches 217

Application Source Code 218

Automated Tests Source Code 218

Architecture Assets 218

Database Schema 219

Installer Assets 219

Build and Deployment Assets 219

Third-Party Source Code/Dependencies 220

Folder Inside Branch 221

Folder at Team Project Level 222

Internal Shared Libraries 224

Choosing a Location in Version Control 224

Storing Library Assemblies as Dependencies 226

Branching into Product Family Branches 227

Managing Artifacts Using Team Foundation Server 228

SQL Reporting Services Encryption Key Backup 229

Process Templates 230

Custom Build Assemblies 230

Master Build Process Templates 231

Source Code for Custom Tools 232

Summary 232

PART III: PROJECT MANAGEMENT

CHAPTER 11: INTRODUCING WORK ITEM TRACKING 237

Project Management Enhancements in Team Foundation Server 2010 238

Rich Work Item Relationships 238

Agile Workbooks 239

Test Case Management 239

Enhanced Reporting 239

SharePoint Server Dashboards 240

Work Items 240

Work Item Types 241

Areas and Iterations 244

Process Templates 245

MSF for Agile Software Development 246

MSF for CMMI Process Improvement 247

Visual Studio Scrum 251

Third-Party Process Templates 252

Custom Process Templates 252

Managing Work Items 253

Using Visual Studio 253

Using Microsoft Excel 258

Agile Workbooks 259

Using Microsoft Project 261

Using Team Web Access 262

Using Third-Party Tools 263

Project Server Integration 264

Summary 264

CHAPTER 12: CUSTOMIZING PROCESS TEMPLATES 265

Anatomy of a Process Template 265

Plug-in Files 267

Default Security Groups and Permissions 268

Initial Area and Iteration Nodes 269

Work Item Type Defi nitions 269

Initial Work Items 279

Work Item Queries and Folders 279

Microsoft Project Column Mappings 279

Version Control Permissions and Settings 280

SharePoint Project Team Portal Document Library Settings 280

SQL Reporting Services Report Definitions 281

Using the Process Template Editor 281

Installing the Process Template Editor 281

Working with a Process Template 282

Using an XML Editor and WITAdmin 283

Deploying Updates to Process Templates 284

Uploading Process Templates in Team Foundation Server 285

Editing Work Items on an Existing Team Project 285

Common Work Item Type Customizations 286

Adding New States 287

Displaying Custom Link Types 288

Using Display Name Changes (New syncnamechanges attribute) 289

Using a Rich-Text Description 289

Introducing Custom Work Item Controls 290

Work Item Clients 290

Work Item Control Interfaces 291

Deploying Custom Controls 295

Work Item Custom Control Deployment Manifest 295

Using the Custom Control in the Work Item Type Defi nition 296

Summary 296

CHAPTER 13: REPORTING AND SHAREPOINT DASHBOARDS 297

What’s New in Team Foundation Server 2010 298

Cross-Collection Reporting Support 298

Changes to the Relational Warehouse 298

Changes to the Analysis Services Cube 299

Optional and Richer SharePoint Integration 300

Team Foundation Server Data Warehouse 300

Operational Stores 301

Relational Warehouse Database and Warehouse Adapters 301

Querying the Relational Warehouse Database 302

Analysis Services Cube 304

Data Warehouse Permissions 306

SharePoint Integration 307

SharePoint Extensions 307

Excel Services and Dashboard Compatibility 307

SharePoint Confi guration Tool 308

Creating Reports 309

Tools 309

Excel Reporting from a Work Item Query 310

SQL Server Reporting Services Reports 312

SharePoint Dashboards 316

Advanced Customization 318

Customizing Project Portals 319

Customizing Warehouse Adapters 319

TfsRedirect.aspx 320

Summary 320

PART IV: TEAM FOUNDATION BUILD

CHAPTER 14: OVERVIEW OF BUILD AUTOMATION 323

Let’s Build Something 323

What is Build Automation? 324

Scripting a Build 326

Make 326

Apache Ant 327

Apache Maven 328

NAnt 329

MSBuild 329

Windows Workfl ow Foundation 333

Using Build Automation Servers 334

CruiseControl 334

CruiseControl.NET 335

Hudson 335

Team Foundation Server 335

Adopting Build Automation 336

Summary 337

CHAPTER 15: USING TEAM FOUNDATION BUILD 339

Introduction to Team Foundation Build 339

Team Foundation Build Architecture 340

Setting Up the Team Foundation Build Service 341

Installing Team Foundation Build 343

Confi guring the Team Foundation Build Service 344

Additional Software Required on the Build Agent 351

Working with Builds 351

Creating a Build Defi nition 352

Queuing a Build 362

Build Notifications and Alerts 364

Managing Builds 365

Managing Build Quality Descriptions 371

Managing Build Controllers and Build Agents 371

Understanding the Build Process 372

DefaultTemplate Process 373

Building Ant and Maven Projects with Team Foundation Server 384

Summary 385

CHAPTER 16: CUSTOMIZING THE BUILD PROCESS 387

Introduction to Windows Workfl ow Foundation 387

Visual Basic.NET Expressions 389

Custom Workflow Variables 389

Custom Build Parameters 391

Workflow Activities 397

When to Use MSBuild Versus WF 403

Custom Build Workflow Activities 404

How to Create a Custom Build Activity 404

Integrating Activity into the Build Process Template 417

Deployment of Custom Build Activities 422

Customizing the Build Report Output 423

Creating a Log Data Visualizer 423

Build Summary Report Custom Section 424

Customizing the Build Process to Stamp the Version Number on Assemblies 424

Defining Custom Build Process Parameters 425

Allowing the Functionality to Be Optional 426

Defining Local Workflow Variables 427

Initializing the Local Workflow Variables 427

Finding Matching Assembly Info Files 428

Adding the Custom TfsVersion Activity 428

Summary 429

PART V: ADMINISTRATION

CHAPTER 17: INTRODUCTION TO TEAM FOUNDATION SERVER ADMINISTRATION 433

Administrator Types 433

Infrastructure Administrator 434

Team Foundation Server Administrator 434

Project Administrator 434

Logical Architecture 434

Client Tier 435

Application Tier 435

Data Tier 436

Built-In Administration Tools 437

Team Foundation Administration Console 437

Command-Line Configuration Tools 456

Other Administration Tools 459

Team Foundation Server Power Tools 459

Best Practices Analyzer 459

Team Foundation Server Administration Tool 461

Team Foundation Sidekicks 462

Summary 463

CHAPTER 18: SCALABILITY AND HIGH AVAILABILITY 465

What’s New in Team Foundation Server 2010? 465

Limiting Factors 467

Microsoft Recommendations 467

Data Tier 469

Application Tier 471

Web Access 472

Warehouse 472

Team Foundation Proxy 472

Principles 474

Solutions 475

Data Tier 475

Application Tier and Web Access 480

Team Foundation Proxy 483

Virtualization 484

Summary 484

CHAPTER 19: DISASTER RECOVERY 485

Business Continuity and Recovery Goals 485

Defining Responsibilities 486

Backing Up Team Foundation Server 486

Components to Back Up 486

Types of Database Backups 488

Important Considerations 490

Creating a Backup Plan 492

Team Foundation Server Backup Plan Details 499

Restoring a Backup to the Original Server 502

Summary 510

CHAPTER 20: SECURITY AND PRIVILEGES 511

Users 511

Domain Users 511

Local Users 513

Identity Synchronization 513

Groups 515

Domain Groups 515

Distribution Groups 515

Local Groups 516

Team Foundation Server Groups 516

Permissions 519

Server Permissions 519

Team Project Collection Permissions 520

Team Project Permissions 522

Work Item Tracking 523

Version Control Permissions 526

Reporting 529

Security Management 529

Deny, Allow, and Unset Permissions 529

Use Active Directory Groups 530

Avoid Granting Individual User Permissions 530

Use Inheritance 531

Tools 531

Command-Line Tools 531

Team Foundation Server Administration Tool 532

Summary 533

CHAPTER 21: MONITORING SERVER HEALTH AND PERFORMANCE 535

System Health 536

Storage System Health 536

SQL Server 537

Dynamic Management Views (DMV) 537

Currently Running Processes 538

SQL Wait Types 543

Storage Health 544

Memory Contention 545

Team Foundation Server 546

Command Log 546

Active Server Requests 548

Server Tracing 549

Client Performance Tracing 549

Job History 551

Storage Usage 552

Data Warehouse 554

Tools 554

Performance Analysis of Logs (PAL) Tool 554

Team Foundation Server Best Practices Analyzer (BPA) 555

Team Foundation Server Management Pack for System Center Operations Manager (SCOM) 557

Summary 558

CHAPTER 22: TESTING AND LAB MANAGEMENT 559

Software Testing 560

Test Case Management 561

Lab Management 561

Testing Architecture 562

Microsoft Test Manager 564

Test Plans 565

Test Suites 565

Test Cases 565

Test Runs 566

Actionable Bugs 567

Test Settings 567

Test Attachments Cleaner 569

Assigning a Build to a Test Plan 570

Analyzing Impacted Tests 571

Build Retention 571

Custom Work Item Types 572

Test Automation 572

Visual Studio 2010 Lab Management 573

Installing and Configuring Lab Management 574

Maintaining a Healthy Test Lab 582

Troubleshooting 584

Summary 584

CHAPTER 23: UPGRADING FROM EARLIER VERSIONS 585

Upgrading from Team Foundation Server 2005 and 2008 586

In-Place Upgrades Versus Migrating to New Hardware 586

Planning Upgrades 588

Upgrading Prerequisites 589

SQL Server 589

SharePoint 589

Using the Configuration Utility 590

Upgrade Wizard 590

Verification of Upgrade 592

Consolidating Legacy Servers 592

Upgrading Legacy Team Projects 593

Enabling Branch Visualization 593

Enabling Test Case Management 594

Upgrading Work Item Type Definitions 594

Automated Builds 595

Deploying New Reports 596

Deploying New SharePoint Team Portal Site 596

Summary 597

CHAPTER 24: WORKING WITH GEOGRAPHICALLY DISTRIBUTED TEAMS 599

Identifying the Challenges 600

Latency Over the Wide Area Network (WAN) 600

Sources of Network Traffic 600

Solutions 603

Central Server with Remote Proxy Servers 603

Multiple Distributed Servers 603

Mirroring 603

Remote Desktops 604

Internet-Connected “Extranet” Server 604

Mirroring to an Internet-Connected Server 604

Metadata Filtering 604

Build Servers 605

Local Build Server 605

Remote Build Server 605

Team Foundation Server Proxy 605

How the Team Foundation Server Proxy Works 605

Compatibility 605

Configuring Proxies 606

Seeding Proxies 608

Personal Proxies 608

Mirroring with the Team Foundation Server Integration Tools 609

Capabilities 609

Examples 611

Working Offline 612

Version Control 612

Forcing Offline 613

Work Items 614

Other Considerations 614

Maintenance Windows and Time Zones 614

Online Index Operations with SQL Server Enterprise 616

Distributed Application Tiers 616

SQL Mirroring 616

Summary 616

CHAPTER 25: EXTENDING TEAM FOUNDATION SERVER 617

Extensibility Points 618

Client Object Model 619

Connecting to the Server 619

Team Project Selection Dialog 620

Handling Multiple API Versions 621

Displaying the Work Item Form 622

Distributing the Client Object Model 623

SOAP Event Subscriptions 624

Available Event Types 625

Building an Endpoint 626

Adding the Subscription 627

Listing All Event Subscriptions 627

Server Object Model 628

Server Extensibility Interfaces 628

Server Plug-Ins 630

Visual Studio Extensibility 645

Excel Agile Workbooks 645

Manually Binding the Iteration Backlog 645

Code Behind 646

Other Resources 647

Summary 648

INDEX 649

Back to Top