Professional Team Foundation Server 2010ISBN: 978-0-470-94332-8
Paperback
720 pages
March 2011
This title is out-of-print and not currently available for purchase from this site.
|
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