Maximizing Collaboration with Team Foundation Server

DEV463
Microsoft Visual Studio 2005 Team
System: Maximizing Collaboration
with Team Foundation Server
Dennis Minium
Program Manager
Visual Studio Team System
Microsoft Corporation
Topics
Team Foundation Tour
Technical Architecture
Conceptual Architecture
Extending Team Foundation
Visual Studio Team Edition
Visual Studio Team Edition
Visual Studio Team Edition
Software Architects
Software Developers
Software Testers
Application Designer
Dynamic Code Analyzer
Load Testing
System Designer
Static Code Analyzer
Manual Testing
Logical Datacenter Designer
Code Profiler
Test Case Management
Deployment Designer
Unit Testing
Code Coverage
Class Designer (in Visual Studio Standard Edition and higher)
Visio for Enterprise Architects
(in MSDN Premium Subscription)
Team Explorer (includes Team Foundation Server CAL)
Visual Studio Professional Edition
Visual Studio
Team Foundation Server
Change Management
Reporting
Integration Services
Team Build
Work Item Tracking
Project Portal
Project Management
Visual Studio Industry Partners
Process and Architecture Guidance
Visual Studio Team Foundation
Team Foundation Tour
Integrated Platform for Collaborating on Software
Development Projects.
Work Item
Tracking
Project
Management
Reporting
Version
Control
Build
Automation
Team Foundation Tour
Work Item
Tracking
Project
Management
Reporting
Version
Control
Build
Automation
Project Portal
Work Item Tracking and
Office Integration
Dramatis Personae
Darren – A Developer
a keen mind but slightly confused
Darryl – A Business Analyst
shrewd but well-meaning
Darius – A Development Manager
gruff but lovable
Team Foundation Tour
Work Item
Tracking
Project
Management
Reporting
Version
Control
Build
Automation
Source Control and Work Item
Tracking
Team Foundation Tour
Work Item
Tracking
Project
Management
Reporting
Version
Control
Build
Automation
Topics
Team Foundation Tour
Technical Architecture
Conceptual Architecture
Extending Team Foundation
Technical Architecture
Win 2003 Server
ASP.Net / IIS 6.0
Win 2000 (>=SP4)
Win XP (>=SP2)
Win 2003 Server (>=SP1)
.Net FX 2.0
Microsoft Office 11 – SP1
MDAC 9.0
Internet Explorer 6.0 – SP1
Visual Studio 2005 Team Explorer
Win XP (>=SP2)
Win 2003 Server (>=SP1)
.Net FX 2.0
Win 2003 Server
ASP.Net / IIS 6.0
MDAC
Win 2003 Server
SQL Server 2005
Maximally factored configuration
Technical Architecture
Team Foundation Client Tier
MS Project
Plug-In
Visual Studio Packages
WSS
Proxies
Version
Control
Proxy
Service
MS Excel
Plug-In
Internet Explorer
SQL RS
Proxies
Version Control
Proxy
Team Foundation Object Model
Build
Process
VSTF
Clients of VSTF
VSTF Adjuncts
Report Client
Custom reporting
tools
Team Foundation App Tier
SQL
Reporting
Services
Windows
SharePoint
Services
Work Item
Tracking
Service
Build Machine
Version
Control
Service
Team
Build
Service
Core
Services
Adapters
MS Excel
Team Foundation App Tier
SQL
Reporting
Services
Windows
SharePoint
Services
Work Items
Team Foundation Data Tier
Version
Control
Team Build
Data
Core
Data
Warehouse
Basic Configurations
1 user
1 machine
Demo/Evaluation
•
•
•
•
Client
Build
App Tier
Data Tier
2 - 50 users
Single Server
Small Team
50 - 500 users
Dual Server
Large Team
Client
• Client
• Build (opt)
Build
Machine
• App Tier
• Data Tier
• Build (opt)
Supports:
• Workgroup
• Active Directory
(2003 or 2000)
App Tier
Version
Control
Proxy
Data Tier
Requires Active Directory
(2003 or 2000)
Administrative Features
Compatibility verification
Databases match?
Web services match databases?
Clients match Web services?
All SQL server
SQL backup/restore
DB Mirroring
Failover clustering
App tier standby server
Convenience utilities
Topics
Team Foundation Tour
Technical Architecture
Conceptual Architecture
Extending Team Foundation
Meta Data Repositories
Work
Items
Tests
Build
Configs
Third
Party
Tool
Source
Code
TFS “Virtual Repository”
*
*
Project
Structure
Iteration
Structure
*
Build
*
*
Work
Item
*
*
TFS Enablement
Work Items
Work
Item
*
Latest
Item
Version
TFS Enablement
Version
Control
LabelLatest
Item
Versioned
Changeset
Label
Version
Item
*
*
*
Test
Result
*
*
Changeset
TFS Enablement
Versioned
Team Build
Item Build
Test
Results
TFS Enablement
Core Data
Project
Iteration
Structure
Structure
How It Happens:
Team foundation core services
Visual
Studio
IDE
External tool
(Partner or MS)
Team Foundation Object Model
Team
Build
Integration
Interface
Version
Control
Integration
Interface
Work
Items
Integration
Interface
Team
Foundation
Server
Team
Foundation
Core
Services
How It Happens:
Team foundation core services
Visual
Studio
IDE
External tool
(Partner or MS)
Team Foundation Object Model
Registration
Service
Notification
Service
Linking
Service
Integration
Interface
Team
Build
Integration
Interface
Version
Control
Integration
Interface
Team
Foundation
Server
Work
Items
User
Groups
Service
Team
Foundation
Core
Services
Common
Structure
Service
Reporting Warehouse
MyHICPortal - Microsoft Internet Explorer
http://humongous/myprojectportal/default.aspx
Discussions
Documents
Policy
Portal
Search
Home
I need to...
-- select from list --
Excel
Reporting Warehouse
Object Model
Test/Build
Adapter
Build
Database
Work Item
Adapter
Work Item
Tracking
Source Code
Adapter
Source Code
Control
Custom
Reporting
Add-on
Adapter
Partner Tool
A
Create New Project
Documents
Status Reports
Presentations
Modify My Page
Projects Overview
Projects Status
Project X
Specs
Requirements
Reports
Standard Reports
Envisioning
Create a new report
Communications
Status reports
2/2
1 /1
Due Date
Signoff
6/5/03
Yes
2 of 2
4 of 12
8 of 8
21 of 55
3 of 3
12 of 15
8/1/03
No
3 of 4
5 of 7
9 of 10
6 of 7
9/1/03
No
8 of 9
17 of 20
8 of 10
10/1/03
No
0 of 0
0 of 0
0 of 0
11/1/03
No
1 of 9
6 of 7
3 of 3
7 of 8
7/15/03
No
3 of 3
1 of 10
7/25/03
No
2 of 4
9 of 9
Weekly Executive Summary
Given our active bug count and incoming rates, it's become apparent that we are not ready to start our final test
pass today (6/16). Therefore, our new M2 exit path is as follows:

M2 Fork: TBD (see below)

Final test pass start: 6/30 (see below)

Sign off: 7/11
Recently updated Documents
Name
90%
80%
70%
60%
50%
40%
30%
20%
10%
0%

Project Management Console
Defect Tracking Tool
MSWord Requirements Template
Humongous Project Guidelines
Contacts

Jacqueline Ackerman - Project Manager
Endicott Smith - VP Sales, Project Sponsor
Anna Jones - Business Analyst
Bert Lewis - Development Manager
Barbara Baker - Test Manager


Add New Link
Standard Forms
Modified By
Vision Document
Vision Document
Fiona
Business Requirements
Business Requirements
Betty
MyHIC Functional Requirements
Paula
Feature Specifications
Customer Interviews
Betty
Status Reporting
Add New Document

Defects Open
Test Cases Run
Defects/TC
in
Log
Add New Link

Over the past few weeks, teams have done extraordinary work getting bugs resolved, triaging hard, and
consistently getting closer and closer to meeting our milestone exit criteria. Ask mode has helped in keeping the
builds working, and we're ready to start group checkins, after the mass integration last week (Lab21, Lab22 and
Lab25 RI'ed in one day!). However, this is about a week and a half behind the original schedule.
Type
er
e
dler
ASP
ey Cor Han FX Tick nsfer
FX
Mon
Tra
Links
FX Hander
Transfer ASP
Stabilizing
Deploying
Alias
Members
4/4
Risks
FX Ticker
Developing
Roles Manager
Team
Subscription
0
Issues
Planning
Public Reports
Workflow
Project Schedule
Defects
Defect Trends
450
400
350
300
250
200
150
100
50
0
Project Portal web site provides role-based views of the development project. In addition to providing useful
information directly (such as the plan of record, defect trends, and other reports), it also serves as a launching
point for various other tools.

SQL Server
Reporting
Services
Quick Launch
Project Portal
Home

Functional Requirements
Create a new Form

Project Counsel

Home
Topics
Team Foundation Tour
Technical Architecture
Conceptual Architecture
Extending Team Foundation
Customization vs. Extension
Customization:
What? Tailor Team Foundation to your
environment
Who? End users, project managers
Why? Adjust basic Team Foundation
capabilities to your needs
How? Config through UI, author XML, maybe
some automation
Extension/Integration
What? Add new functionality to Team
Foundation
Who? Partners, internal IT orgs
Why? Deeply integrate complementary features
into the Team Foundation platform
How? WS development, database development,
VSIP integration, etc.
Example Customizations
Process Template
Modify / clone ours
Build your own
Work Item Types
Modify ours
Build your own
Automate using
WIOM
Source Code
Control
Select policies to
enforce
Reporting
Modify our SQL RS
reports
Add your own SQL
RS reports
Use a different
reporting tool
(Excel, OWC, …)
Project Portal
Customize the
template
Add your own
libraries
Example Extensions
Core services
Add a new tool with new
artifact types, link types,
database, WS’s
Link to other tools’
artifacts
Raise, subscribe to
events
Integrate into Team
Explorer
Add pages to Project
Creation Wizard
Work Item Tracking
Write against OM
Respond to events
Link to Work Items
Integrate with WI Picker
Source Control
Write against OM
Add new file type
support (keyword
expansion, diff/merge)
Participate in integrated
check-in
Define new policie
Respond to events
Reporting
Extend warehouse
Portal
Build new web parts
Build
Add new Build tasks
Team Foundation Extensibility
Visual Studio
Your VSIP Package
Your
.NET App
Your PCW plug in
Your TE Node
Team Foundation OM
Work Item OM
Version Control OM
Registration Svc Proxy
Linking Service Proxy
Policy Framework
Eventing Service Proxy
Security Service Proxy
Common Controls
Classification Svc Proxy
Client
Application Tier
Changeset / Source File
Work Item
Build
Your Artifacts
Version Control Service
Work Item Tracking Svc
Team Build Service
Your Service
Warehouse Adapter
Warehouse Adapter
Warehouse Adapter
Warehouse Adapter
Registration Service
Linking Service
Eventing Service
Security Service
Data Tier
TF Facts
TF Data
TF Facts
Your Facts
Reporting
Warehouse
Classification Service
Your Data
Example Partner Integration
Do you use Automated Build Studio?
AutomatedQA’s Automated Build Studio is a powerful build and
release management system.
It provides an easy way to automate and simplify the whole
cycle of build, test, delivery and deployment.
On the client, ABS is integrated with Visual Studio .Net.
ABS will integrate with Visual Studio 2005 Team System.
Example Integration
Automated QA’s Automated Build System (ABS)
ABS integrates with:
Team Foundation Version Control
Team Foundation Work Item Tracking
Mechanism for integration:
Web services
Command line scripting
AutomatedQA’s Test Complete product
integrates with Team Test tools, too
Visit AutomatedQA at booth 1044.
The Extensibility Kit Sample
Registration
Service
Example “tool” – Collectibles
Linking
One
collector can point to other artifacts
Service
via a holds relationship
a points to relationship
Workvia
Item
APicker
user can subscribe to receive e-mails
when a collector changes
Eventing
Collectors are organized by team project
Service
Registration
Service
Classification
Service
Project
Picker
The Extensibility Kit Sample
Visual Studio
Your VSIP Package
Collectibles
Your
Client
.NET
App
Your PCW plug in
Your TE Node
Team Foundation OM
Work Item OM
Version Control OM
Registration Svc Proxy
Linking Service Proxy
Policy Framework
Eventing Service Proxy
Security Service Proxy
Common Controls
Classification Svc Proxy
Client
Application Tier
Changeset / Source File
Work Item
Build
Your Artifacts
Collector
Artifact
Version Control Service
Work Item Tracking Svc
Team Build Service
Your Service
Collectibles
Web Svc
Warehouse Adapter
Warehouse Adapter
Warehouse Adapter
Warehouse Adapter
Registration Service
Linking Service
Eventing Service
TF Facts
TF Data
TF Facts
Your Facts
Reporting
Warehouse
Security Service
Collectibles
YourDB
Data
Classification Service
Data Tier
A more realistic sample
Work item spawning
Task
Take Order:
Write Spec
Task
Scenario
Take Order
Take Order:
UI Design
Task
Take Order:
Test Plan
Task
Take Order:
Dev Schedule
Example Extensions
Core services
Add a new tool with new
artifact types, link types,
database, WS’s
Link to other tools’
artifacts
Raise, subscribe to
events
Integrate into Team
Explorer
Add pages to Project
Creation Wizard
Work Item Tracking
Write against OM
Respond to events
Link to Work Items
Integrate with WI Picker
Source Control
Write against OM
Add new file type
support (keyword
expansion, diff/merge)
Participate in integrated
check-in
Define new policies
Respond to events
Reporting
Extend warehouse
Portal
Build new web parts
Build
Add new Build tasks
A more realistic sample
Work item spawning
•
•
Listen for WorkItemChanged
event for Completed Task.
Use work item object model to
update parent Scenario
Task
Take Order:
Write Spec
Task
Scenario
Take Order
Take Order:
UI Design
Task
Take Order:
Test Plan
•
•
•
Listen for WorkItemChanged
event for new Scenario.
Use work item object model to
create new Tasks
Use work item object model to
link new Tasks to original
Scenario
Task
Take Order:
Dev Schedule
Async Communication
TFS eventing service
Web services-based pub/sub
Tools register event types
Send SOAP messages to interested
subscriber services
Send e-mail messages to interested
people
Registering and Subscribing
TFS
Work Item
Tracking
Registration
API
Another tool may subscribe to
receive events of that type when
they are raised.
We’ll use a utility that is
delivered with Team Foundation.
Work Item
Spawn
Demo
At setup time, a tool registers the
types of events it will raise.
TFS Work Item Tracking raises
a WorkItemChanged Event
Event
Types
• subscribe
• unsubscribe
Subs
Subscription
API
Through UI (purpose-built or
general) a person can subscribe to
receive e-mail notifications.
Not used in this demo
Raising an Event
TFS
Work Item
Tracking
TFS Event
Client
• fireAsyncEvent
Events matched to subscriptions
Note: Server-side sinks only in V1.
Demo “WorkItemSpawn” WS invoked.
• callback method
specified in
subscribe call
Work Item
Spawn
Demo
TFS Event Engine
Event
Types
Subs
Subs
Rules
Processor
Events matched to subscriptions
TFS Work Item Tracking raises a
WorkItemChanged Event
Notifications
delivered through
e-mail
Dramatis Personae
Darren – A Developer
a keen mind but slightly confused
Darryl – A Business Analyst
shrewd but well-meaning
Darius – A Development Manager
gruff but lovable
Denis – Process Expert / Programmer
Extraordinaire
Work Item Spawning
Artifacts and Links
Artifacts
Artifact Identifiers (URIs):
vstfs:///<toolType>/<artifactType>/<toolSpecificID>
Example: vstfs:///WorkItemTracking/WorkItem/16723
The target of a link can be ignorant of any
sources that point to it
For intimate collaboration, tight coupling
is supported
Each ArtifactType and (outbound) LinkType
managed by a tool are registered to the
Registration service
Linking API
You supply:
Artifacts[] yourService.GetArtifacts
(string[] artifactUris)
Artifacts[] yourService.GetReferencingArtifacts
(string[] artifactUris)
void ExecuteDefaultAction
(string artifactUri, string contextinfo)
We supply:
Artifacts[] ILinking.GetArtifacts
(string[] artifactUris)
Artifacts[] ILinking.GetReferencingArtifacts
(string[] artifactUris)
Helper methods: EncodeUri, DecodeUri, ExtractLinks,
GetArtifactUrl, GetArtifactUri
1.
Call GetArtifacts with Uri for
WorkItem 107462
Test Pass
20031014.8054
<artifactData>
<links>
<artifactData>
<links>
3. Call
GetReferencingArtifacts
with Uri for
WorkItem 107462
Work Item
170472
<artifactData>
<links>
Attached Document
WhatHappened.doc?
Work Item
107462
<artifactData>
checkin
Change
Changeset
Set
142562: Lollipop Fix
<artifactData>
<links>
2. Call GetArtifacts with Uris
for:
• ChangeSet 142562
• Doc “WhatHappened.Doc”
• Build 20031012.352
Build
20031012.352
<artifactData>
<links>
1.
Call GetArtifacts with Uri for
WorkItem 107462
Test Pass
20031014.8054
Attached Document
WhatHappened.doc?
<artifactData>
<links>
<artifactData>
<links>
2. Call GetArtifacts with Uris
3. Call
for:
Work
Item
Work
Item
107462
is
involved
in
these
relationships:
GetReferencingArtifacts
• ChangeSet 142562
107462
Relationship
Item type
Item
Modified• Doc “WhatHappened.Doc”
By
with
Uri for
WorkItem
involves 107462
attachment
WhatHappened.doc
10/13/2003
10:00am
pm1
• Build
20031012.352
<artifactData>
found in
build
Work Itemchangeset
checkin
tested170472
by
test pass
related to
Work Item
<artifactData>
<links>
20031012.352
142562: Lollipop fix
20031014.8054
170472
10/12/2003
9:52pm
10/15/2003 6:42pm
checkin
10/14/2003 2:15am
10/5/2003
Change
Changeset
Set
142562: Lollipop Fix
<artifactData>
<links>
3:13pm
qa1
dev1
qa1Build
20031012.352
gematthew
<artifactData>
<links>
Permissions in TFS
Group Services
Lightweight user groups / roles for security
and policy
Default groups for common roles
Group resolution includes AD groups, local
SAM groups and TFS groups
TFS-Enabled tools include these user groups
when they perform authorization
Authorization services
Tool-specific object classes and permissions
Register objects, ACEs at run time
Inheritable permissions
Summary
Rich feature set
Work item tracking
Version control
Team build
Warehouse and reporting
Extensibility and integration from the
ground up
Object models
Web services
Core integration services
You can use what we use
Resources
Team System Extensibility Kit:
http://www.vsipdev.com/downloads/
General Team System Info:
http://msdn.microsoft.com/teamsystem
More into on AutomatedQA’s products:
http://www.automatedqa.com/
Your Feedback
is Important!
Please Fill Out a Survey for
This Session on CommNet
© 2005 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.