Title: Customizing and extending TFS
1Customizing and extending TFS
- Michael JurekSoftware Architect
- Microsoft s.r.o.
2Agenda
- Team Foundation Architecture
- Process Templates
- Work Item Types
- Source Code Control
- Build
- Portal and reports
3Team Foundation Server
Integrated Platform for Collaborating on Software
Development Projects.
4Team Logical Architecture
Build Process
Version Control Proxy Service
Team Foundation App Tier
Team Foundation Data Tier
5Customization 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
6Extension Points
- 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
- 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
7TFS Administration Toolhttp//www.codeplex.com/Wi
ki/View.aspx?ProjectNameTFSAdminPolicy
Override Notification Toolhttp//members.chello.n
l/m.dekunst/SubScribeToPolicyViolation.zip
8Agenda
- Team Foundation Architecture
- Process Templates
- Work Item Types
- Source Code Control
- Build
- Portal and reports
9Process 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
10Anatomy of a Process Template
Template Definition
ProcessTemplate.xml
Reports
Reports.xml
Process Group References
BugTrends.rdl
Work Items
WorkItems.xml
Process Template
Bug.xml
CustomWIType.xml
Version Control
VersionControl.xml
11Process 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
12Process Template Editor
- http//www.imaginets.com/Default.aspx?tabid133
13Process Template Editorhttp//www.imaginets.com/D
efault.aspx?tabid133
14Agenda
- Team Foundation Architecture
- Process Templates
- Work Item Types
- Source Code Control
- Build
- Portal and reports
15WIT 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
16Customizing Work Item Types
Work Item Type XML
Notepad, Process Template Editor,
Visual Studio
c\ witimport
c\ witexport
c\ witimport /v
WIT XSD
Work Item Object Model
Validate
Import
Export
Work Item Store
17Work Item Type Definition
ltWITD application"my editor" version"1.0"gt
ltWORKITEMTYPE name"Custom Code Defect"gt
ltFIELDSgt ltFIELD name"Severity"
refname"Custom.Severity" type"Integer"gt
ltHELPTEXTgtHow severe the code defect
islt/HELPTEXTgt ltREQUIRED /gt lt/FIELDgt
lt/FIELDSgt ltWORKFLOWgt
ltSTATESgt ltSTATE value"Active" /gt
lt/STATESgt ltTRANSITIONSgt ltTRANSITION
from"" to"Active"gt ltREASONSgt
ltDEFAULTREASON value"New" /gt
lt/REASONSgt lt/TRANSITIONgt
lt/TRANSITIONSgt lt/WORKFLOWgt ltFORMgt
ltLayoutgt ltControl Type"FieldControl"
FieldName"Custom.Severity"
Label"Severity" LabelPosition"Left" /gt
lt/Layoutgt lt/FORMgt lt/WORKITEMTYPEgt lt/WITDgt
- Name
- Fields
- Field Rules
- Work Flow
- States
- Transitions
- Field Rules
- Form
18Work Item Type Fields
- Field reference names
- Think column name
- Use in your tooling
- Server scope
- Follow domain name convention
- Microsoft.TeamFoundationServer.WorkItemTracking.Fo
obar - System. reserved
- Field friendly names
- Think column alias
- Use in your queries
- Server scope
- Can be renamed, Title-gtIssue for example
- Field labels
- Appear on WI forms
- Localizable
19Example WI State Diagram
20witexport.exe / witimport.exe
21WIT 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
22Agenda
- Team Foundation Architecture
- Process Templates
- Work Item Types
- Source Code Control
- Build
- Portal and reports
23Source 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
24Missing 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 - 3rd party products e.g. TFSLinks
(ComponentSoftware Inc.)
25Check-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
26Team Foundation Power Toyshttp//www.microsoft.co
m/downloads/details.aspx?FamilyId3F21144A-4E98-4C
E0-830F-D1F3E8AC9D67displaylangenForbidden
Patterns PolicyVisual Studio 2005 SDK
27Agenda
- Team Foundation Architecture
- Process Templates
- Work Item Types
- Source Code Control
- Build
- Portal and reports
28Typical team build
29Customizing 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/ms2
43778.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
30Custom Build Task MSBuild Sidekickhttp//www.at
trice.info/msbuild/index.htmTeam Build
Sidekickhttp//www.attrice.info/cm/tfs/TeamBuildA
ddin.htm
31Agenda
- Team Foundation Architecture
- Process Templates
- Work Item Types
- Source Code Control
- Build
- Portal and reports
32Project 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
33Reporting - High Level Architecture
ExcelReports
Report Builder Reports
Report Designer Reports
Team Foundation OLAP Warehouse
Report Designer Precision Layout, Developer-built
OLAPSemantic Model
Report Builder End-user ad-hoc charts and lists
with drill-through
Team Foundation Relational Warehouse
Excel Portable, familiar, exploratory analytical
reports
Adapter
Adapter
Adapter
Adapter
Adapter
Adapter
Work Item Tracking
Version Control
TeamBuild
TeamTest
3rd PartyData Sources
Common Structures
34Integrated Reporting
35Custom Report in MS Excel
36Summary
- TFS is highly customizable and extensible
products - MSDN and Visual Studio 2005 SDK are your primary
resources - Many free and commercial 3rd party tools
- http//accentient.com/widgets.aspx
37Questions???