17
PROFESSIONAL Team Foundation Server 2012 Ed Blankenship Martin Woodward Grant Holliday Brian Keller WILEY John Wiley & Sons, Inc.

Professional Team Foundation Server 2012 · PROFESSIONAL TeamFoundationServer2012 EdBlankenship Martin Woodward GrantHolliday BrianKeller WILEY JohnWiley&Sons, Inc

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Professional Team Foundation Server 2012 · PROFESSIONAL TeamFoundationServer2012 EdBlankenship Martin Woodward GrantHolliday BrianKeller WILEY JohnWiley&Sons, Inc

PROFESSIONAL

Team Foundation Server 2012

Ed BlankenshipMartin Woodward

Grant Holliday

Brian Keller

WILEY

John Wiley & Sons, Inc.

Page 2: Professional Team Foundation Server 2012 · PROFESSIONAL TeamFoundationServer2012 EdBlankenship Martin Woodward GrantHolliday BrianKeller WILEY JohnWiley&Sons, Inc

CONTENTS

INTRODUCTION xxvii

CHAPTER 1: INTRODUCING TEAM FOUNDATION SERVER 2012 3

What Is Team Foundation Server? 3

What's New in Team Foundation Server 2012 5

Version Control 5

Code Reviews 6

Managing Personal Work 6

Web Access 6

Project Management 7

Agile and Scrum Product Management 7

Stakeholder Feedback 7

Build 7

Acquisition Options 7

Team Foundation Service 8

Express 9

Trial 9

Volume Licensing 10

MSDN Subscriptions 10

Microsoft Partner Network 11

Retail 11

Summary 11

CHAPTER 2: PLANNING A DEPLOYMENT 13

Identifying and Addressing Software Engineering Pain 13

Transparency into the Release or Project 14

Collaboration Across Different Teams and Roles 15

Automated Compilation, Testing, Packaging, and Deployment 15

Managing Test Plans 15

Parallel Development 15

Adopting Team Foundation Server 16

Adoption Timeline 16

Phased Approach 17

Page 3: Professional Team Foundation Server 2012 · PROFESSIONAL TeamFoundationServer2012 EdBlankenship Martin Woodward GrantHolliday BrianKeller WILEY JohnWiley&Sons, Inc

CONTENTS

Hosting Team Foundation Server 18

Identifying Affected Teams 19

Generating Consensus 19

Team Foundation Server Administrator 20

Pilot Projects 21

Migration Strategies 21

Version Control 21

Work Item Tracking 22

Structuring Team Project Collections and Team Projects 23

Considering Limitations in Team Foundation Server 25

Server Limitations 28

Preparation for a Team Foundation Server Environment 29

Understanding the Architecture and Scale-Out Options 29

Hardware Requirements 32

Virtualization 33

Planning for Software Prerequisites 34

Service Accounts 37

File Share Folders 38

SMTP Server 38

Firewall Concerns and Ports Used 39

Friendly DNS Names 39

Legacy Visual Studio Versions 41

Summary 42

CHAPTER 3: INSTALLATION AND CONFIGURATION 43

What You'll Need 44

Team Foundation Server 2012 44

Team Foundation Server 2012 Installation Guide 45

SQL Server 2012 45

Operating System 46

SharePoint 46

Client Software 47

Service Packs and Other Updates 47

Installing Team Foundation Server 48

Installation Types 49

Configuring Team Foundation Server 51

Creating Your First Team Project 56

Configure Friendly DNS Names 57

Summary 58

xii

Page 4: Professional Team Foundation Server 2012 · PROFESSIONAL TeamFoundationServer2012 EdBlankenship Martin Woodward GrantHolliday BrianKeller WILEY JohnWiley&Sons, Inc

CONTENTS

CHAPTER 4: CONNECTING TO TEAM FOUNDATION SERVER 59

Team Foundation Server Architecture 59

Addressing Team Foundation Server 61

Introducing Team Foundation Server Security and Roles 63

Users 63

Groups 64

Permissions 65

Team Explorer 65

Understanding Team Explorer in Visual Studio 66

Connecting to Team Foundation Server from Eclipseand 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

Connecting Microsoft Test Manager to TeamFoundation Server 78

Access to Team Foundation Server via Third-Party Integrations 79

Summary 80

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 89

Apache Subversion 89

xiii

Page 5: Professional Team Foundation Server 2012 · PROFESSIONAL TeamFoundationServer2012 EdBlankenship Martin Woodward GrantHolliday BrianKeller WILEY JohnWiley&Sons, Inc

CONTENTS

Team Foundation Server 90

Distributed Version Control Systems 91

Summary 93

CHAPTER 6: USING TEAM FOUNDATION VERSION CONTROL 95

Getting Started with Team Foundation

Server Version Control 96

Learning what's New in Team Foundation

Server 2012 Version Control 98

Team Foundation Server Version Control Concepts 99

Workspace 99

Working Folder Mappings 103

Get 107

Check-out 109

Locks 109

Check-in of Pending Changes 110

Undo Pending Changes 117

Changeset 117

Shelvesets 119

Branches 120

Using Source Control Explorer 121

Viewing History 123

Labeling Files 123

Recovering When Things Go Wrong 124

Keeping on task with My Work 125

Team Foundation Server

Version Control in Eclipse 130

Installing the Team Foundation Server Plug-in for Eclipse 131

Sharing Eclipse Projects in Team Foundation Server 133

Importing Projects from Team Foundation Server 135

Differences Between the Eclipse and Visual Studio Clients 137

Team Foundation Server Version Control from

the Command Line 137

Getting Help 138

Using the Command Line 138

Team Foundation Version Control Power Tools

and Third-Party Utilities 139

Microsoft Visual Studio Team Foundation

Server Power Tools 139

Team Foundation Server MSSCCI Provider 140

Configuring Version Control 140

Security and Permissions 140

xiv

Page 6: Professional Team Foundation Server 2012 · PROFESSIONAL TeamFoundationServer2012 EdBlankenship Martin Woodward GrantHolliday BrianKeller WILEY JohnWiley&Sons, Inc

CONTENTS

Switching Version Control to Team Foundation Server 141

Working with Team Foundation Server for VisualSourceSafe Users 142

Using Team Foundation Server for Subversion Users 144

Summary 146

CHAPTER 7: ENSURING CODE QUALITY 147

What Is Quality? 148

Enforcing Quality 149Check-In Policies 149

Monitoring Check-In Policy Overrides 152

Check-In Policy Pack in Power Tools 154

Creating Custom Check-In Policies 155

Deploying Check-In Policies 159

Gated Check-In 164

Why Gated Check-In? 165

When Not to Use Gated Check-In 166

Setting Up a Gated Check-In Build 167

Checking In for Validation 168

Reconciling the Workspace 168

Managing Code Reviews 170

Requesting a Code Review 171

Performing a Code Review 173

Completing the Code Review 175

Summary 176

CHAPTER 8: MIGRATION FROM LEGACYVERSION CONTROL SYSTEMS 177

Migration Versus Upgrade 178

Upgrade 178

Migration 178

Migrating History or Latest Version 179

Migrating from Visual SourceSafe 180

Preparing to Use the VSS Upgrade Wizard 181

Using the Visual SourceSafe Upgrade Wizard 182

Team Foundation Server IntegrationPlatform 188

Popular Third-Party Migration Tools 190

Subversion, CVS, and StarTeam 190

ClearCase 190

Summary 191

XV

Page 7: Professional Team Foundation Server 2012 · PROFESSIONAL TeamFoundationServer2012 EdBlankenship Martin Woodward GrantHolliday BrianKeller WILEY JohnWiley&Sons, Inc

CONTENTS

CHAPTER 9: BRANCHING AND MERGING 193

Branching Demystified 193

Branch 194

Merge 194

Conflict 194

Branch Relationships 195

Baseless Merge 196

Forward/Reverse Integration 196

Common Branching Strategies 196

No Branching 197

Branch per Release 198

Code-Promotion Branching 199

Feature Branching 200

Implementing Branching Strategies 201

The Scenario 202

The Plan 202

Implementation 203

Dealing with Changesets 208

Tracking Change Through Branches 220

Summary 222

CHAPTER 10: COMMON VERSION CONTROL SCENARIOS 223

Setting Up the Folder Structure for Your Branches 223

Application Source Code 224

Automated Tests Source Code 224

Architecture Assets 224

Database Schema 225

Installer Assets 225

Build and Deployment Assets 225

Third-Party Source Code/Dependencies 226

Folder Inside Branch 226

Folder at Team Project Level 228

Internal Shared Libraries 230

Choosing a Location in Version Control 230

Storing Library Assemblies as Dependencies 233

Branching into Product Family Branches 233

Managing Artifacts Using Team Foundation Server 235

SQL Reporting Services Encryption Key Backup 235

Process Templates 236

xvi

Page 8: Professional Team Foundation Server 2012 · PROFESSIONAL TeamFoundationServer2012 EdBlankenship Martin Woodward GrantHolliday BrianKeller WILEY JohnWiley&Sons, Inc

CONTENTS

Custom Build Assemblies 237

Master Build Process Templates 238

Source Code for Custom Tools 238

Summary 239

CHAPTER 11: INTRODUCING WORK-ITEM TRACKING 243

Project Management Enhancements in Team FoundationServer 2012 244

Rich Work-Item Relationships 244

Test Case Management 245

Enhanced Reporting 245

SharePoint Server Dashboards 246

Agile Planning Tools in Team Web Access 246

Work Items 247

Work-Item Types 247

Areas and Iterations 249

Process Templates 252

MSF for Agile Software Development 253

MSF for CMMI Process Improvement 255

Visual Studio Scrum 258

Third-Party Process Templates 260

Custom Process Templates 260

Managing Work Items 260

Using Visual Studio 260

Using Microsoft Excel 266

Using Microsoft Project 267

Using Team Web Access 268

Using Third-Party Tools 270

Project Server Integration 271

Summary 271

CHAPTER 12: CUSTOMIZING PROCESS TEMPLATES 273

Anatomy of a Process Template 273

Plug-in Files 274

Default Security Groups and Permissions 276

Initial Area and Iteration Nodes 277

Work Item Type Definitions 278

xvii

Page 9: Professional Team Foundation Server 2012 · PROFESSIONAL TeamFoundationServer2012 EdBlankenship Martin Woodward GrantHolliday BrianKeller WILEY JohnWiley&Sons, Inc

CONTENTS

Initial Work Items 289

Work Item Queries and Folders 289

Microsoft Project Column Mappings 290

Version Control Permissions and Settings 290

SharePoint Project Team Portal

Document Library Settings 291

SQL Reporting Services Report Definitions 292

Using the Process Template Editor 292

Installing the Process Template Editor 293

Working with a Process Template 293

Using an XML Editor and WITAdmin 294

Deploying Updates to Process Templates 296

Uploading Process Templates in Team

Foundation Server 296

Editing Work Items on an Existing Team Project 297

Customizing Agile Tools 298

Metastates 299

Effort, Remaining Work, and Stack Rank 299

Defining the Team 300

Other Process Configuration Customizations 300

Common Work Item Type Customizations 301

Adding New States 301

Displaying Custom Link Types 302

Using Display Name Changes

(New syncnamechanges attribute) 302

Introducing Custom Work Item Controls 303

Work Item Clients 303

Work Item Control Interfaces 304

Deploying Custom Controls 308

Work Item Custom Control Deployment Manifest 309

Using the Custom Control in the Work Item

Type Definition 309

Summary 310

CHAPTER 13: MANAGING TEAMS AND AGILE PLANNING TOOLS 311

Defining a Team 312

Maintaining Product Backlogs 317

Planning Iterations 319

Tracking Work 322

Customization Options 325

Stakeholder Feedback 326

xviii

Page 10: Professional Team Foundation Server 2012 · PROFESSIONAL TeamFoundationServer2012 EdBlankenship Martin Woodward GrantHolliday BrianKeller WILEY JohnWiley&Sons, Inc

CONTENTS

Requesting Feedback 326

Providing Feedback 328

Voluntary Feedback 331

Summary 332

CHAPTER 14: REPORTING AND SHAREPOINT DASHBOARDS 333

What's New in Team Foundation Server 2012 334

Cross-Collection Reporting Support 334

Changes to the Relational Warehouse 334

Changes to the Analysis Services Cube 335

Optional and Richer SharePoint Integration 337

Team Foundation Server Data Warehouse 337

Operational Stores 338

Relational Warehouse Database and Warehouse Adapters 338

Querying the Relational Warehouse Database 339

Analysis Services Cube 342

Data Warehouse Permissions 344

SharePoint Integration 344

SharePoint Extensions 345

Excel Services and Dashboard Compatibility 345

Creating Reports 347

Tools 347

Excel Reporting from a Work-Item Query 347

SQL Server Reporting Services Reports 349

SharePoint Dashboards 355

Advanced Customization 357

Customizing Project Portals 357

Customizing Warehouse Adapters 357

TfsRedirect.aspx 358

Summary 358

CHAPTER 15: PROJECT SERVER INTEGRATION 359

Overview 359

Project Server Essentials 360

Bidirectional Synchronization 361

Relationship between Team Projects and Enterprise Projects 366

Initial Configuration 366

Necessary Permissions 366

Command-Line Tool for Configuration 367

Project Server Installation Components 367

xix

Page 11: Professional Team Foundation Server 2012 · PROFESSIONAL TeamFoundationServer2012 EdBlankenship Martin Woodward GrantHolliday BrianKeller WILEY JohnWiley&Sons, Inc

CONTENTS

One-Time Integration Steps 367

Mapping Enterprise Projects to Team Projects 368

Necessary Software for Project Managers 369

Summary 369

02il]^^^l^lII^EC£SM^PI^^^H^HHMH

CHAPTER 16: OVERVIEW OF BUILD AUTOMATION 373

Let's Build Something 373

What Is Build Automation? 374

Scripting a Build 376

Make 376

Apache Ant 377

Apache Maven 378

NAnt 379

MSBuild 379

Windows Workflow Foundation 383

Using Build Automation Servers 383

CruiseControl 384

CruiseControl.NET 384

Hudson / Jenkins 384

Team Foundation Server 385

Adopting Build Automation 386

Summary 387

CHAPTER 17: USING TEAM FOUNDATION BUILD 389

Introduction to Team Foundation Build 389

Team Foundation Build Architecture 390

Setting up the Team Foundation Build Service 392

Installing Team Foundation Build 393

Configuring the Team Foundation Build Service 393

Additional Software Required on the Build Agent 399

Working with Builds 399

Creating a Build Definition 399

Queuing a Build 411

Build Notifications and Alerts 413

Managing Builds 415

Managing Build Quality Descriptions 420

Managing Build Controllers and Build Agents 420

Understanding the Build Process 422

XX

Page 12: Professional Team Foundation Server 2012 · PROFESSIONAL TeamFoundationServer2012 EdBlankenship Martin Woodward GrantHolliday BrianKeller WILEY JohnWiley&Sons, Inc

CONTENTS

DefaultTempJate Process 423

Building Ant and Maven Projects with Team Foundation Server 435

Summary 436

CHAPTER 18: CUSTOMIZING THE BUILD PROCESS 437

Introduction to Windows Workflow Foundation 438

Visual Basic.NET Expressions 438

Custom Workflow Variables 440

Custom Build Parameters 442

Workflow Activities 449

When to Use MSBuild versus WF 457

Custom Build Workflow Activities 458

How to Create a Custom Build Activity 458

Integrating Activity into the Build Process Template 473

Deployment of Custom Build Activities 478

Customizing the Build Report Output 480

Creating a Log Data Visualizer 480

Build Summary Report Custom Section 481

Customizing the Build Process to Stampthe Version Number on Assemblies 482

Defining Custom Build Process Parameters 483

Allowing the Functionality to Be Optional 484

Defining Local Workflow Variables 485

Initializing the Local Workflow Variables 486

Finding Matching Assembly Info Files 486

Adding the Custom TfsVersion Activity 487

Summary 488

CHAPTER 19: INTRODUCTION TO TEAM FOUNDATION SERVER

ADMINISTRATION 493

Administrative Roles 494

Infrastructure Administrator 494

Team Foundation Server Administrator 494

Project Administrator 494

Logical Architecture 495

Client Tier 496

Application Tier 496

Data Tier 496

xxi

Page 13: Professional Team Foundation Server 2012 · PROFESSIONAL TeamFoundationServer2012 EdBlankenship Martin Woodward GrantHolliday BrianKeller WILEY JohnWiley&Sons, Inc

CONTENTS

Built-in Administration Tools 497

Team Foundation Administration Console 498

Command-Line Configuration Tools 516

Other Administration Tools 519

Team Foundation Server Power Tools 520

Best Practices Analyzer 520

Team Foundation Server Administration Tool 522

Team Foundation Sidekicks 523

Summary 524

CHAPTER 20: SCALABILITY AND HIGH AVAILABILITY 525

An Evolving Architecture 526

Limiting Factors 527

Microsoft Recommendations 527

Data Tier 529

Application Tier 531

Web Access 532

Warehouse 532

Team Foundation Proxy 533

Principles 534

Scale Out To Multiple Servers 535

Eliminate Single Points Of Failure 535

Anticipate Growth 535

Keep It Simple 535

Solutions 535

Data Tier 536

Application Tier and Web Access 539

Virtualization 546

Summary 547

CHAPTER 21: DISASTER RECOVERY 549

Business Continuity and Recovery Goals 549

Defining Responsibilities 550

Backing Up Team Foundation Server 550

Components to Back Up 551

Types of Database Backups 552

Important Considerations 554

Creating a Backup Plan 556

Team Foundation Server Backup Plan Details 563

Restoring a Backup to the Original Server 566

Summary 573

xxii

Page 14: Professional Team Foundation Server 2012 · PROFESSIONAL TeamFoundationServer2012 EdBlankenship Martin Woodward GrantHolliday BrianKeller WILEY JohnWiley&Sons, Inc

CONTENTS

CHAPTER 22: SECURITY AND PRIVILEGES 575

Users 575

Domain Users 575

Local Users 577

Identity Synchronization 577

Groups 579

Domain Groups 580

Distribution Groups 580

Local Groups 580

Team Foundation Server Groups 580

Permissions 583

Server Permissions 584

Team Project Collection Permissions 584

Team Project Permissions 586

Work Item Tracking 587

Version Control Permissions 591

Build Permissions 594

Reporting 594

Security Management 595

Deny, Allow, and Unset Permissions 595

Use Active Directory Groups 596

Avoid Granting Individual User Permissions 596

Use Inheritance 596

Tools 597

Command-Line Tools 597

Summary 597

CHAPTER 23: MONITORING SERVER HEALTH

AND PERFORMANCE 599

System Health 600

SQL Server 601

Dynamic Management Views (DMV) 601

Currently Running Processes 602

SQL Wait Types 607

Storage Health 608

Memory Contention 609

Team Foundation Server 610

Command Log 610

Active Server Requests 612

Performance Counters 614

Server Tracing 615

xxiii

Page 15: Professional Team Foundation Server 2012 · PROFESSIONAL TeamFoundationServer2012 EdBlankenship Martin Woodward GrantHolliday BrianKeller WILEY JohnWiley&Sons, Inc

CONTENTS

Client Performance Tracing 616

Job History 618

Storage Usage 619

Data Warehouse 621

Tools 621

Performance Analysis of Logs (PAL) Tool 622

Team Foundation Server Best Practices Analyzer (BPA) 623

Team Foundation Server Management Pack for

System Center Operations Manager (SCOM) 624

Summary 625

CHAPTER 24: TESTING AND LAB MANAGEMENT 627

Software Testing 628

Test Case Management 629

Lab Management 629

Testing Architecture 630

Microsoft Test Manager 632

Test Plans 633

Test Suites 634

Test Cases 634

Test Runs 634

Exploratory Testing 636

Actionable Bugs 636

Test Settings 636

Test Attachments Cleaner 638

Assigning a Build to a Test Plan 639

Analyzing Impacted Tests 640

Build Retention 640

Custom Work Item Types 641Test Automation 641Visual Studio Lab Management 643

What's New for Lab Management in

Team Foundation Server 2012 644

Installing and Configuring Lab Management 645

Maintaining a Healthy Test Lab 652

Troubleshooting 655

Summary 656

Page 16: Professional Team Foundation Server 2012 · PROFESSIONAL TeamFoundationServer2012 EdBlankenship Martin Woodward GrantHolliday BrianKeller WILEY JohnWiley&Sons, Inc

CONTENTS

CHAPTER 25: UPGRADING FROM EARLIER VERSIONS 657

Overview 658

In-Place Upgrades Versus Migrating to

New Hardware 658

Planning Upgrades 660

Upgrading Prerequisites 661

SQL Server 662

SharePoint 662

Project Server 663

System Center 663

Using the Configuration Utility 663

Upgrade Wizard 664

Verification of Upgrade 665

Upgrading Legacy Team Projects 666

Feature Enablement 667

Allowing Access to Premium Features 669

Automated Builds 670

Enable Local Workspaces 672

Deploying New Reports 672

Deploying New SharePoint Team Portal Site 672

Upgrading Lab Management Environments 673

Summary 674

CHAPTER 26: WORKING WITH GEOGRAPHICALLY

DISTRIBUTED TEAMS 675

Identifying the Challenges 676

Latency Over the Wide Area Network (WAN) 676

Sources of Network Traffic 677

Solutions 679

Central Server with Remote Proxy Servers 679

Multiple Distributed Servers 679

Mirroring 680

Remote Desktops 680

Internet-connected "Extranet" Server 680

Metadata Filtering 680

Build Servers 681

XXV

Page 17: Professional Team Foundation Server 2012 · PROFESSIONAL TeamFoundationServer2012 EdBlankenship Martin Woodward GrantHolliday BrianKeller WILEY JohnWiley&Sons, Inc

CONTENTS

Local Build Server Farm 681

Remote Build Server Farm 681

Team Foundation Server Proxy 682

How the Team Foundation Server Proxy Works 682

Compatibility 682

Configuring Proxies 682

Seeding Proxies 685

Personal Proxies 685

Mirroring with the Team Foundation

Server Integration Tools 686

Capabilities 686

Examples 688

Working Offline 689

Version Control 689

Forcing Offline 690

Work Items 691

Other Considerations 692

Maintenance Windows and Time Zones 692

Online Index Operations with SQL Server Enterprise 693

Distributed Application Tiers 693

SQL Mirroring 694

Summary 694

CHAPTER 27: EXTENDING TEAM FOUNDATION SERVER 695

Extensibility Points 696

.NET Client Object Model 697

Connecting to the Server 698

Handling Multiple API Versions 699

Distributing the Client Object Model 701

SOAP Event Subscriptions 701

Available Event Types 702

Building an Endpoint 703

Adding the Subscription 704

Listing All Event Subscriptionsl 705

Server Object Model 705

Server Extensibility Interfaces 705

Server Plug-Ins 708

Visual Studio Extensibility 721

Other Resources 723

Summary 724

INDEX 725

xxvi