You are on page 1of 37

Customizing and extending TFS

Michael Juek
Software Architect
Microsoft s.r.o.
Agenda
Team Foundation Architecture
Process Templates
Work Item Types
Source Code Control
Build
Portal and reports
Integrated Platform for Collaborating on Software
Development Projects.
Version
Control
Work Item
Tracking
Build
Automation
Project
Portal
Reporting
Team Foundation Server
Team Logical Architecture
Custom reporting
tools
MS Exce
MS Projectl
Team Foundation Data Tier
Version Control
Proxy
Report Client
Team Foundation Client Tier
Core
Data
Version
Control
Work Items
Team Build
Data
SQL
Reporting
Services
Windows
SharePoint
Services
SQL
Reporting
Services
Windows
SharePoint
Services
Work Item
Tracking
Service
Version
Control
Service
Team
Build
Service
Core
Services
Warehouse
Adapters
Team Foundation App Tier
WSS
Proxies
SQL RS
Proxies
Team Foundation Object Model
MS Excel
Plug-in
MS Project
Plug-in
Visual Studio Packages
Internet Explorer
Build
Process
Version
Control
Proxy
Service
Build Machine
Customization Points
Process
Template
Modify, build, or
buy
Work Item Types
Modify or build
Checkin Policy
Modify or build
Reporting
Modify, build, or
connect different
report builders
Project Portal
Modify
Sharepoint
template
Extend library
folder structure,
change or add doc
templates
Extension Points
Core services
Add a new tool with new
artifact types, link types,
database, WSs
Link to other tools artifacts
Raise, subscribe to events
Integrate into Team Explorer
Extend the Project Creation
Wizard
Work Item Tracking
Write against OM
Respond to events
Link to Work Items
Integrate with WI Picker
Integrate with WI Form
Support for custom controls
in SP1
Source Control
Write against OM
Add new file type
support
Participate in integrated
check-in
Define new policy
Respond to events
Reporting
Extend warehouse with
your own data
Build
Add new Build tasks
Create a checkin
validation system
TFS Administration Tool
http://www.codeplex.com/Wiki/View.aspx?ProjectName=TFSAdmin

Policy Override Notification Tool
http://members.chello.nl/m.dekunst/SubScribeToPolicyViolation.zip
Agenda
Team Foundation Architecture
Process Templates
Work Item Types
Source Code Control
Build
Portal and reports
Process Templates
Process Templates
Project process blueprint
Package of tool settings and templates
Two included with Team Foundation
Server
MSF for Agile Software Development
MSF for CMMI Process Improvement
Modify ours, handcraft your own, or
buy
Process Template
ProcessTemplate.xml
Reports
Work Items
WorkItems.xml
Bug.xml
Template Definition
Version Control
VersionControl.xml
Reports.xml
BugTrends.rdl
CustomWIType.xml
Anatomy of a Process Template
Process Template
Project Lifecycle
Phases and Iterations
Exit Criteria
Process Guidance
Document Templates
Work Item Types and Rules
Bug, Task, Risk
Work Packages (Scenario, Feature, Requirement)
Work items
Work Item Types (such as Defect, Requirement, Issue, Task, etc)
Queries
Work Item Instances/starter tasks
Windows SharePoint Services
Process guidance
WSS Site Template
WSS Library & Folder Structure
Document templates and all files stored on the Project Portal
Reports and their folder structure
Default groups and their permissions
Classifications: Areas and Iterations
Source Control Settings
Process Template Editor
http://www.imaginets.com/Default.aspx?tabid=133
Process Template Editor
http://www.imaginets.com/Default.aspx?tabid=133
Agenda
Team Foundation Architecture
Process Templates
Work Item Types
Source Code Control
Build
Portal and reports
WIT customization
Work Item Type Definition
Fields, form, state transitions
Found in two places:
Process Template
Live Team Project
Scenarios
Add enterprise specific work item types
Modify existing work item type forms and
rules
TFS ships with pre-defined types
TIP: Use as blueprint
Work Item
Store
Work Item Object Model
WIT
XSD
Work Item Type
XML
c:\ witimport c:\ witexport c:\ witimport /v
Validate
Notepad,
Process
Template
Editor,
Import Export
Visual
Studio
Customizing Work Item Types
<WITD application="my editor" version="1.0">
<WORKITEMTYPE name="Custom Code Defect">
<FIELDS>
<FIELD name="Severity" refname="Custom.Severity"
type="Integer">
<HELPTEXT>How severe the code defect is</HELPTEXT>
<REQUIRED />
</FIELD>
</FIELDS>
<WORKFLOW>
<STATES>
<STATE value="Active" />
</STATES>
<TRANSITIONS>
<TRANSITION from="" to="Active">
<REASONS>
<DEFAULTREASON value="New" />
</REASONS>
</TRANSITION>
</TRANSITIONS>
</WORKFLOW>
<FORM>
<Layout>
<Control Type="FieldControl" FieldName="Custom.Severity"
Label="Severity" LabelPosition="Left" />
</Layout>
</FORM>
</WORKITEMTYPE>
</WITD>
Work Item Type Definition
Name
Fields
Field Rules
Work Flow
States
Transitions
Field Rules
Form
Work Item Type Fields
Field reference names
Think column name
Use in your tooling
Server scope
Follow domain name convention
Microsoft.TeamFoundationServer.WorkItemTracking.Foobar
System.* reserved
Field friendly names
Think column alias
Use in your queries
Server scope
Can be renamed, Title->Issue for example
Field labels
Appear on WI forms
Localizable
Active
Pending
Resolved
Closed
/ Pend
/ Resolve
/ Verify
/ Edit
/ Re-activate
/ Re-activate
/ Resolve
/ Open
/ Edit
/ Edit
Regression
Re-activate
Test Failed,
Resolution Denied
Fixed,
Defered,
Wont Fix,
Duplicate,
As Designed
No Repro
From Customer
From QA
/ Re-activate
Test Passed,
Resolution Confirmed
Fixed
Wrong Fix
Fix Ready
Updated
Blocked
investigating
Fixing
Testing
Reviewing
/ Edit
Ammended
Example WI State Diagram
witexport.exe / witimport.exe
WIT Security in TFS 2005
You can:
Set permissions by project areas (in UI)
Set permissions for a state transition of WI
type (in WI type definition)
Creating WI is also transition
You cant:
Have item-level permissions
Have field-level permissions
Agenda
Team Foundation Architecture
Process Templates
Work Item Types
Source Code Control
Build
Portal and reports
Source Control Gotchas
Sharing and pinning are not supported
Concurrent check-out by default
Limited offline support
No Get Latest on check-out
Features only in command line
Undo another users changes
Features only in TFS Power Toys
Rollback (but actually Compensate)
Annotate (also in VS UI)
TreeDiff (also in VS UI)
Merge on Unshelve
Missing VSS features
Branching and Merging is the recommended way but
it is not direct equivalent
Isolation between possibly breaking changes
Mastering branching and merging is crucial
Pinning
Branching and merging enables any and all of the following
scenarios:
Promotion modeling, Pinning, Frequent Releases, Service
Packs, etc.
Sharing
For VSS-style sharing, put common files in a common
directory and use Add as Link
References with relative paths
If shared files change often, share source code
If shared files are DLLs, consider NOT sharing automatically
3
rd
party products e.g. TFSLinks (ComponentSoftware Inc.)
Check-in policies
In the TFS box
Work Items, Tests, Code Analysis
Work Items highly recommended, others are
usually impractically restrictive
Custom:
Easy - just derive from PolicyBase
Warnings:
Run on client, not server
Easy to hack by a malicious user
Collaboration tool, not security measure
Only type names and parameters on server
Need to deploy manually to clients
Team Foundation Power Toys
http://www.microsoft.com/downloads/details.aspx?FamilyId=3F21144A-4E98-4CE0-830F-D1F3E8AC9D67&displaylang=en

Forbidden Patterns Policy
Visual Studio 2005 SDK
Agenda
Team Foundation Architecture
Process Templates
Work Item Types
Source Code Control
Build
Portal and reports
Typical team build
Initialization
Build Server
Preparation
Source Code
Synch.
Code Churn
Calculation
Report
Generation
Publishing
Work Items
Update
Code
Coverage
Calculation
Compilation,
Static
Analysis
Unit Tests
Customizing TFS Builds
See walkthrough:
http://msdn2.microsoft.com/en-us/library/ms400767.aspx
Find the right task:
MSBuild - http://msdn2.microsoft.com/en-
us/library/7z253716.aspx
TFS - http://msdn2.microsoft.com/en-
us/library/ms243778.aspx
Third-party (mostly freeware)
See http://msbuildtasks.tigris.org/
Build your own
Find the right target (17 out of 35 provided):
http://msdn2.microsoft.com/en-us/library/aa337604.aspx
Custom Build Task

MSBuild Sidekick
http://www.attrice.info/msbuild/index.htm
Team Build Sidekick
http://www.attrice.info/cm/tfs/TeamBuildAddin.htm

Agenda
Team Foundation Architecture
Process Templates
Work Item Types
Source Code Control
Build
Portal and reports
Project Portal
Dependency on WSS:
WSS must be installed before TFS installation
You can remove WSS site creation from process
template
WSS Site per project
New web parts can be added to the gallery
Sharepoint templates can be modified or
extended
Initial content in Process Template
You will typically see bug Q915746
Contact local MS Support Services for fix
Reporting - High Level Architecture
Adapter Adapter Adapter Adapter
Work Item
Tracking
Version
Control
Team
Build
Team
Test
3
rd
Party
Data Sources
Adapter
Team Foundation
Relational Warehouse
Team Foundation
OLAP Warehouse
OLAP
Semantic Model
Adapter
Common
Structures
Report Builder
Reports

Report Designer
Reports

Excel
Reports

Report Designer: Precision Layout,
Developer-built
Report Builder: End-user ad-hoc
charts and lists with drill-through
Excel: Portable, familiar,
exploratory analytical reports
Integrated Reporting
*
* *
* *
* * * *
*
* *
*
Project
Structure
Iteration
Structure
Work
Item
Label
Versioned
Item
Latest
Item
Version
Changeset
Build
Test
Result
Custom Report in MS Excel
Summary
TFS is highly customizable and
extensible products
MSDN and Visual Studio 2005 SDK are
your primary resources
Many free and commercial 3
rd
party
tools
http://accentient.com/widgets.aspx
Questions???

You might also like