SlideShare a Scribd company logo
QLD VSTS Users Group – February Meeting
 
Presented by William Bartholomew
William Bartholomew Is the Developer Productivity Specialist at  TechnologyOne . Improves developer productivity through education, processes and tools and implementing  Visual Studio Team System  is a key aspect of this. Has been developing software solutions for 9 years primarily using Visual Studio, the  .NET Framework  and  SQL Server .  Was a technical reviewer for the  2nd Edition of Steve McConnell's Code Complete  as well as  Volume 2 of Brad and Tamara Abram's .NET Standard Library Annotated Reference .  Is a member of: ACM (Association for Computing Machinery)   IEEE (Institute of Electrical and Electronics Engineers, Inc.)   IEEE Computer Society  and  IEEE Standards Association (IEEE-SA)   Microsoft User Interface Framework Advisory Council (ASP .NET, Windows Forms, WPF, etc.)
Agenda Introduction Adding a Field Exporting a Work Item Type Adding a System Field Defining a New Field Modifying the Form Verifying and Importing a Work Item Type Customising Workflow Defining Business Rules Defining New Work Item Types Customising Work Item Web Page Real-World Examples Conclusion
Introduction Process templates ship with a number of work item types: Agile – Bug, Quality of Service Requirement, Risk, Scenario, Task CMMI – Bug, Change Request, Issue, Requirement, Review, Risk, Task You can customise existing work item types. Or, you can create your own work item types.
Introduction Work item types are defined using XML. Defines the fields, workflow and form layout for a work item type. Schema documented in the Team Foundation Administrator’s Guide: http://msdn2.microsoft.com/en-us/library/aa337661(VS.80).aspx
Demo
Adding a Field Export the work item type you want to add the field to. Define the field. Verify the work item type. Import the work item type. Refresh the work item type cache. Test.
Exporting a Work Item Type witexport.exe /f <Filename> /t <TeamFoundationServerName> /p <TeamProjectName> /n <WorkItemTypeName> Optionally: /exportgloballists
Adding a System Field System fields always exist for all work item types. Used for cross work item type queries. List system fields: TFS Administrator’s Guide http://msdn2.microsoft.com/en-us/library/ms194971(VS.80).aspx witfields.exe view System fields can be explicitly referenced in work item types. The definition must match the field’s existing definition. Allows defining different business rules in different work item types.
Using an Existing Field Allows you to use fields from other process templates (e.g. use a CMMI field in an Agile project) or from other work-item types. Same process for using a system field.
Defining a New Field – Name What’s in a name? Field Name User visible Free form text Can be changed by the Team Foundation Server administrator Reference Name Used internally and for integration (APIs etc.) Free form text  Best practice is to use namespace format (e.g. T1.Adf.ReleaseNotes) Can’t be changed You can specify help text using the HELPTEXT element.
Defining a New Field – Type Choose a type String (single line up to 255 characters) Integer Double DateTime PlainText (multi-line string) HTML (multi-line string with formatting) History (discussion thread and change log) TreePath (used for iteration and area only) Can’t be changed once the field is added
Defining a New Field – Reporting Reporting for duty Sir! Specified using “reportable” attribute: Not Specified – Won’t be included in the warehouse Dimension – Included in the warehouse as a categorization Detail – Included in the warehouse but not the cube Measure – Included in the warehouse as an aggregate (sum) Can’t be changed once set. Setting the value only affects new work items, existing work items won’t be updated in the warehouse unless modified.
Defining a New Field – Changing If you  need  to change one of the attributes that is not changeable then you must remove and re-add the field definition. This requires removing it from ALL work item types referencing it. Any data stored in the field will be lost. Try to get the field definition correct from the beginning.
Defining a New Field – Example <FIELD name=&quot;Category&quot; refname=&quot;MyCompany.MyProcess.MyField&quot; type=&quot;String&quot; reportable=&quot;Dimension“ />
Modifying the Form – Layout Group Must contain at least one column. Has a border. Has an optional label. Multiple groups are “stacked”. Column Allows you to arrange controls side by side. Supports a splitter to allow resizable columns. TabGroup and Tab Creates a typical tab control.
Modifying the Form – Main Controls FieldControl Single line. Best for String, Integer, Double and DateTime data types. Rendered as either a text box or a combo box. HtmlFieldControl Multi-line. Best for PlainText and HTML data types. Supports formatting (if the field does).
Modifying the Form – Other Controls TFStructureControl Only used for Area and Iteration (i.e. TreePath fields). Rendered as a tree combo. WorkItemLogControl Only used for History. Rendered as a date/time stamped list. Also contains change log. LinksControl Used to link work items to other artefacts and/or hyperlinks. Doesn’t have a “backing” field. AttachmentsControl Used to link work items to arbitrary files. Doesn’t have a “backing” field.
Modifying the Form – Custom Controls Standard Windows user control. Implements  IWorkItemControl from Microsoft.TeamFoundation.WorkItemTracking.Controls.dll. Special XML file called <ControlName>.wicc tells Visual Studio where to load the control from. DLL must be deployed on all developer workstations. All developer workstations must be running Service Pack 1. More information: http://blogs.msdn.com/narend/archive/2006/10/02/How-to-use-Custom-Controls-in-Work-Item-Form.aspx
Verify and Import Work Item Type witimport.exe /f <Filename> /t <TeamFoundationServerName> /p <TeamProject> Verify rather than import: /v Work item type definitions are cached by Visual Studio so you will need to refresh Team Explorer.
Demo
Customising Workflow – Introduction States Rules Transitions From State To State Reasons Rules Initial states are those with a transition from the “” (null) state.
Customising Workflow – In Practice The work item editor shows a list of transitions with the work item’s current state as the from state. When changing state: Must choose from one of the reasons associated with the transition. A default is used by default if an alternate isn’t chosen. Must meet any business rules associated with the transition and destination state.
Customising Workflow – Security Transitions can be restricted by security group: “for” attribute – Allow a group “not” attribute – Deny a group “not” has a higher precedence than “for”.
Customising Workflow – Integration When assigning work items to a changeset you can choose which transitions to execute on the assigned work items. When customising a work item type you can choose which transitions are eligible for this functionality: <ACTIONS> <ACTION  value=&quot;Microsoft.VSTS.Actions.Checkin&quot; /> </ACTIONS>
Demo
Defining Business Rules – Available Rules Required ReadOnly Empty Frozen CannotLoseValue NotSameAs ValidUser AllowExistingValue Match
Defining Business Rules – Defaults Default Only used if the field is empty. Field Value Clock CurrentUser Copy Always used. Field Value Clock CurrentUser ServerDefault Default is always used, field appears read-only on form. Clock CurrentUser
Defining Business Rules – Lists Lists: AllowedValues SuggestedValues ProhibitedValues Using AllowedValues results in a DropDownList, otherwise a Combo. Values can be enumerated in the list definition. Or, can be stored in a global list which can be reused. Global lists can be exported with glexport or using the /exportgloballists switch on witexport. Global lists can be imported with glexport or as part of a work item type using witimport.
Defining Business Rules – Where Used Rules can be nested inside: Field – The rule must always pass. State – The rule must always pass when the work item is in this state. Transition – The rule must pass when the work item is moved using this transition. Reason – The rule must pass if the reason is used.
Defining Business Rules - Conditional Conditional rules: “ for” attribute – Defines the security groups that the rule applies to “ not” attribute – Defines the security groups exempt from the rule “ not” has a higher precedence than “for”. WHEN element – Apply rules based on the value of a field being equal to a value. WHENNOT element – Apply rules based on the value of a field not being equal to a value. WHENCHANGED element – Apply rules only if a field has changed.
Demo
Defining New Work Item Types Simply combine all these concepts into a new XML file. Beware, work item types cannot be deleted or renamed! Always test in a sandpit project or even better server. Store your work item type definitions in Source Control so you can track changes.
Demo
Customising Work Item Web Page – Before Available by going to: http://server:8080/WorkItemTracking/WorkItem.aspx?artifactMoniker=<WorkItemNumber>
Customising Work Item Web Page Generated by XSL: %ProgramFiles% \Microsoft Visual Studio 2005 Team Foundation Server \Web Services\WorkItemTracking \v1.0\Transforms\WorkItem.xsl Backup the original XSL. Backup your new XSL. It may be overwritten by service packs, upgrades, etc.
Demo
Real-World Examples TechnologyOne Customised the agile work item types to include fields for storing Release Notes. Customised the task workflow to mimic the bug workflow. Custom work item types for tracking QA issues. Conchango Have created a set of custom work item types for the Scrum methodology. http:// scrumforteamsystem.com
Real-World Examples – Microsoft
Real-World Examples – Microsoft
Real-World Examples – Microsoft
Conclusion Just do it!
Teamprise 2.0
Teamprise is a suite of client applications for accessing Microsoft Visual Studio 2005 Team Foundation Server from outside of the Visual Studio Integrated Development Environment (IDE).  Teamprise enables software development teams to use the source control, work item tracking, documents, and reporting features of Team Foundation Server from within the Eclipse IDE, and from other operating systems, including Linux and Mac OS X. A big thanks to our friends at Teamprise for their support of our user group. Visit them at  http:// www.teamprise.com
Contributor Prize free license of Teamprise 2.0 valued at USD$499 Member Discount QVSTSUG members get a 12% discount when purchasing on-line from our website ( http:// www.stpsoft.co.uk/vsts ). To use the discount, enter the coupon code QVUG015 on the on-line order form screen.
 

More Related Content

What's hot (19)

PPT
QTP&UFT Automation Framework
Yu Tao Zhang
 
PPT
QTP Training by INFOTECH
Pravinsinh
 
PDF
58528447 oracle-e am
sakshigoel030405
 
PPT
Acceptance Testing With Selenium
elliando dias
 
PPT
Oracle ebs r12eam part2
jcvd12
 
DOCX
Approval process
mallareddy0107
 
PPTX
Model Driven Testing: requirements, models & test
Gregory Solovey
 
PPT
QTP with Descriptive programming
Kuldeep Sharma
 
PPT
Getting Started With The TFS API
wbarthol
 
PPT
Less09 2 e_testermodule_8
Suresh Mishra
 
PDF
Lab3 RTC Source Control
IBM Rational software
 
PPTX
Keyword-driven Test Automation Framework
Mikhail Subach
 
PDF
Oracle Eam Implementation Steps For Oracle E Am Module
applearn
 
PDF
Oaf personalization examples
Madhurima Chatterjee
 
PPTX
Custom Controllers and Controller Extensions
Mohammed Safwat Abu Kwaik
 
PPT
Less01 1 introduction_module
Suresh Mishra
 
PPT
Fitnesse Testing Framework
Ajit Koti
 
PPTX
Connect your SharePoint forms to external sources
Nimrod Geva
 
DOC
New features in qtp11
Ramu Palanki
 
QTP&UFT Automation Framework
Yu Tao Zhang
 
QTP Training by INFOTECH
Pravinsinh
 
58528447 oracle-e am
sakshigoel030405
 
Acceptance Testing With Selenium
elliando dias
 
Oracle ebs r12eam part2
jcvd12
 
Approval process
mallareddy0107
 
Model Driven Testing: requirements, models & test
Gregory Solovey
 
QTP with Descriptive programming
Kuldeep Sharma
 
Getting Started With The TFS API
wbarthol
 
Less09 2 e_testermodule_8
Suresh Mishra
 
Lab3 RTC Source Control
IBM Rational software
 
Keyword-driven Test Automation Framework
Mikhail Subach
 
Oracle Eam Implementation Steps For Oracle E Am Module
applearn
 
Oaf personalization examples
Madhurima Chatterjee
 
Custom Controllers and Controller Extensions
Mohammed Safwat Abu Kwaik
 
Less01 1 introduction_module
Suresh Mishra
 
Fitnesse Testing Framework
Ajit Koti
 
Connect your SharePoint forms to external sources
Nimrod Geva
 
New features in qtp11
Ramu Palanki
 

Viewers also liked (17)

PPTX
Security best practices for hyper v and server virtualisation [svr307]
Louis Göhl
 
PPTX
Understanding AzMan In Hyper-V
Lai Yoong Seng
 
PDF
Windows Server 2008 R2 Hyper-V SP1 Component Architecture
Tũi Wichets
 
PPTX
SQL and NoSQL in SQL Server
Michael Rys
 
DOCX
Rodc features
pothurajr
 
PDF
Class graph neo4j and software metrics
jexp
 
PPTX
Storage and hyper v - the choices you can make and the things you need to kno...
Louis Göhl
 
PPTX
Attacking Web Applications
Sasha Goldshtein
 
PDF
Network analysis with Hadoop and Neo4j
fvanvollenhoven
 
PPTX
Managing Hyper-V With PowerShell
Ravikanth Chaganti
 
PDF
Hyper-V Best Practices & Tips and Tricks
Amit Gatenyo
 
PPT
DeltaV Development Systems in a Virtualized Environment
Emerson Exchange
 
PPT
Master the Mystery and Marvels of DeltaV MPC
Emerson Exchange
 
PPTX
Building The Virtual Plant For DeltaV
Jim Cahill
 
PPTX
Hyper V And Scvmm Best Practis
Blauge
 
PDF
Microsoft Test Manager
MitchDenny
 
PPTX
Improvements in Failover Clustering in Windows Server 2012
Microsoft TechNet - Belgium and Luxembourg
 
Security best practices for hyper v and server virtualisation [svr307]
Louis Göhl
 
Understanding AzMan In Hyper-V
Lai Yoong Seng
 
Windows Server 2008 R2 Hyper-V SP1 Component Architecture
Tũi Wichets
 
SQL and NoSQL in SQL Server
Michael Rys
 
Rodc features
pothurajr
 
Class graph neo4j and software metrics
jexp
 
Storage and hyper v - the choices you can make and the things you need to kno...
Louis Göhl
 
Attacking Web Applications
Sasha Goldshtein
 
Network analysis with Hadoop and Neo4j
fvanvollenhoven
 
Managing Hyper-V With PowerShell
Ravikanth Chaganti
 
Hyper-V Best Practices & Tips and Tricks
Amit Gatenyo
 
DeltaV Development Systems in a Virtualized Environment
Emerson Exchange
 
Master the Mystery and Marvels of DeltaV MPC
Emerson Exchange
 
Building The Virtual Plant For DeltaV
Jim Cahill
 
Hyper V And Scvmm Best Practis
Blauge
 
Microsoft Test Manager
MitchDenny
 
Improvements in Failover Clustering in Windows Server 2012
Microsoft TechNet - Belgium and Luxembourg
 
Ad

Similar to Introduction To Work Item Customisation (20)

PPTX
Team Foundation Server
SQALab
 
PPTX
Sense And Simplicity Info Path Task Forms Made Easy
Florin Muntean
 
PDF
Tutorial: Create a custom work item in Rational Team Concert
Bill Duncan
 
PDF
class-notes-5-tutorial-ms-project-28042025-101858am.pdf
adilaslam581a
 
PDF
Ms project tutorial
Ronald Oroya
 
PDF
sMs project tutorial_iit
Kushal Patel
 
PPT
Team Foundation Server 2008 Overview
Steve Lange
 
PPT
SharePoint workflow deep-dive
Chris O'Brien
 
PPT
Efficient Software Development with Visual Studio Team System
richardbushnell
 
PPT
Development Practices & The Microsoft Approach
Steve Lange
 
PPTX
DevOps Introduction - Main Concepts Description
BrunoOliveira631137
 
PPT
Module 2: Managing Work Items in Rational Team Concert
IBM Rational software
 
PDF
MSIS & IT 425L Group Assignment One assignment help.pdf
Reliable Assignments Help
 
PPTX
Team Foundation Server 2010 - Overview
Steve Lange
 
PPT
UX in ALM Series - UX Project Worflow using TFS 2008
Christian Thilmany
 
PDF
Stldodn 2014 TFS Care and Feeding
Angela Dugan
 
PPT
Requirements and Team Foundation Server
Steve Lange
 
PPT
Microsoft Project 2003 Configuration Training Level 2 Itvamp 2007
ITVAMP, LLC
 
PPTX
PHX Session #1: Development Best Practices And How Microsoft Helps
Steve Lange
 
PDF
Day 2 - Intro to UiPath Studio Fundamentals
UiPathCommunity
 
Team Foundation Server
SQALab
 
Sense And Simplicity Info Path Task Forms Made Easy
Florin Muntean
 
Tutorial: Create a custom work item in Rational Team Concert
Bill Duncan
 
class-notes-5-tutorial-ms-project-28042025-101858am.pdf
adilaslam581a
 
Ms project tutorial
Ronald Oroya
 
sMs project tutorial_iit
Kushal Patel
 
Team Foundation Server 2008 Overview
Steve Lange
 
SharePoint workflow deep-dive
Chris O'Brien
 
Efficient Software Development with Visual Studio Team System
richardbushnell
 
Development Practices & The Microsoft Approach
Steve Lange
 
DevOps Introduction - Main Concepts Description
BrunoOliveira631137
 
Module 2: Managing Work Items in Rational Team Concert
IBM Rational software
 
MSIS & IT 425L Group Assignment One assignment help.pdf
Reliable Assignments Help
 
Team Foundation Server 2010 - Overview
Steve Lange
 
UX in ALM Series - UX Project Worflow using TFS 2008
Christian Thilmany
 
Stldodn 2014 TFS Care and Feeding
Angela Dugan
 
Requirements and Team Foundation Server
Steve Lange
 
Microsoft Project 2003 Configuration Training Level 2 Itvamp 2007
ITVAMP, LLC
 
PHX Session #1: Development Best Practices And How Microsoft Helps
Steve Lange
 
Day 2 - Intro to UiPath Studio Fundamentals
UiPathCommunity
 
Ad

Recently uploaded (20)

PDF
Dr. Enrique Segura Ense Group - A Philanthropist And Entrepreneur
Dr. Enrique Segura Ense Group
 
PDF
Kirill Klip GEM Royalty TNR Gold Presentation
Kirill Klip
 
PDF
Camil Institutional Presentation_Jun25.pdf
CAMILRI
 
PDF
Buy Boys Long Sleeve T-shirts at Port 213
Port 213
 
PDF
David Badaro Explains 5 Steps to Solving Complex Business Issues
David Badaro
 
PDF
Keppel Investor Day 2025 Presentation Slides GCAT.pdf
KeppelCorporation
 
PDF
Rostyslav Chayka: Управління командою за допомогою AI (UA)
Lviv Startup Club
 
PPTX
Revolutionizing Shopping: Voice Commerce in Retail and eCommerce
RUPAL AGARWAL
 
PDF
Steve Milne Equestrian - A Master Horse Trainer
Steve Milne Equestrian
 
PDF
Factors Influencing Demand For Plumbers In Toronto GTA:
Homestars
 
PDF
ETT OUTLET One Token Endless Possibilities PDF
ettoutllet
 
PPTX
Customer screenshots from Quark Publishing Platform
Gareth Oakes
 
PPTX
2025 July - ABM for B2B in Hubspot - Demand Gen HUG.pptx
mjenkins13
 
PDF
SUMMER SAFETY FLYER SPECIAL Q3 - 16 Pages
One Source Industrial Supplies
 
PPTX
_IIML_Optimizing Energy Efficiency in Industrial Operations with GenAI_Team I...
rafinrowshan
 
PPTX
epi editorial commitee meeting presentation
MIPLM
 
PDF
How to Make Your Pre Seed Startup Grant Fundable
ideatoipo
 
PDF
BCG's Guide to Cost and Growth 24pages file
Wipro Unza Vietnam Company Limited
 
PDF
Raman Bhaumik - A Passion For Service
Raman Bhaumik
 
PPTX
PwC Final PPT.pptx pitch Deck presentation
rafinrowshan
 
Dr. Enrique Segura Ense Group - A Philanthropist And Entrepreneur
Dr. Enrique Segura Ense Group
 
Kirill Klip GEM Royalty TNR Gold Presentation
Kirill Klip
 
Camil Institutional Presentation_Jun25.pdf
CAMILRI
 
Buy Boys Long Sleeve T-shirts at Port 213
Port 213
 
David Badaro Explains 5 Steps to Solving Complex Business Issues
David Badaro
 
Keppel Investor Day 2025 Presentation Slides GCAT.pdf
KeppelCorporation
 
Rostyslav Chayka: Управління командою за допомогою AI (UA)
Lviv Startup Club
 
Revolutionizing Shopping: Voice Commerce in Retail and eCommerce
RUPAL AGARWAL
 
Steve Milne Equestrian - A Master Horse Trainer
Steve Milne Equestrian
 
Factors Influencing Demand For Plumbers In Toronto GTA:
Homestars
 
ETT OUTLET One Token Endless Possibilities PDF
ettoutllet
 
Customer screenshots from Quark Publishing Platform
Gareth Oakes
 
2025 July - ABM for B2B in Hubspot - Demand Gen HUG.pptx
mjenkins13
 
SUMMER SAFETY FLYER SPECIAL Q3 - 16 Pages
One Source Industrial Supplies
 
_IIML_Optimizing Energy Efficiency in Industrial Operations with GenAI_Team I...
rafinrowshan
 
epi editorial commitee meeting presentation
MIPLM
 
How to Make Your Pre Seed Startup Grant Fundable
ideatoipo
 
BCG's Guide to Cost and Growth 24pages file
Wipro Unza Vietnam Company Limited
 
Raman Bhaumik - A Passion For Service
Raman Bhaumik
 
PwC Final PPT.pptx pitch Deck presentation
rafinrowshan
 

Introduction To Work Item Customisation

  • 1. QLD VSTS Users Group – February Meeting
  • 2.  
  • 3. Presented by William Bartholomew
  • 4. William Bartholomew Is the Developer Productivity Specialist at TechnologyOne . Improves developer productivity through education, processes and tools and implementing Visual Studio Team System is a key aspect of this. Has been developing software solutions for 9 years primarily using Visual Studio, the .NET Framework and SQL Server . Was a technical reviewer for the 2nd Edition of Steve McConnell's Code Complete as well as Volume 2 of Brad and Tamara Abram's .NET Standard Library Annotated Reference . Is a member of: ACM (Association for Computing Machinery) IEEE (Institute of Electrical and Electronics Engineers, Inc.) IEEE Computer Society and IEEE Standards Association (IEEE-SA) Microsoft User Interface Framework Advisory Council (ASP .NET, Windows Forms, WPF, etc.)
  • 5. Agenda Introduction Adding a Field Exporting a Work Item Type Adding a System Field Defining a New Field Modifying the Form Verifying and Importing a Work Item Type Customising Workflow Defining Business Rules Defining New Work Item Types Customising Work Item Web Page Real-World Examples Conclusion
  • 6. Introduction Process templates ship with a number of work item types: Agile – Bug, Quality of Service Requirement, Risk, Scenario, Task CMMI – Bug, Change Request, Issue, Requirement, Review, Risk, Task You can customise existing work item types. Or, you can create your own work item types.
  • 7. Introduction Work item types are defined using XML. Defines the fields, workflow and form layout for a work item type. Schema documented in the Team Foundation Administrator’s Guide: http://msdn2.microsoft.com/en-us/library/aa337661(VS.80).aspx
  • 9. Adding a Field Export the work item type you want to add the field to. Define the field. Verify the work item type. Import the work item type. Refresh the work item type cache. Test.
  • 10. Exporting a Work Item Type witexport.exe /f <Filename> /t <TeamFoundationServerName> /p <TeamProjectName> /n <WorkItemTypeName> Optionally: /exportgloballists
  • 11. Adding a System Field System fields always exist for all work item types. Used for cross work item type queries. List system fields: TFS Administrator’s Guide http://msdn2.microsoft.com/en-us/library/ms194971(VS.80).aspx witfields.exe view System fields can be explicitly referenced in work item types. The definition must match the field’s existing definition. Allows defining different business rules in different work item types.
  • 12. Using an Existing Field Allows you to use fields from other process templates (e.g. use a CMMI field in an Agile project) or from other work-item types. Same process for using a system field.
  • 13. Defining a New Field – Name What’s in a name? Field Name User visible Free form text Can be changed by the Team Foundation Server administrator Reference Name Used internally and for integration (APIs etc.) Free form text Best practice is to use namespace format (e.g. T1.Adf.ReleaseNotes) Can’t be changed You can specify help text using the HELPTEXT element.
  • 14. Defining a New Field – Type Choose a type String (single line up to 255 characters) Integer Double DateTime PlainText (multi-line string) HTML (multi-line string with formatting) History (discussion thread and change log) TreePath (used for iteration and area only) Can’t be changed once the field is added
  • 15. Defining a New Field – Reporting Reporting for duty Sir! Specified using “reportable” attribute: Not Specified – Won’t be included in the warehouse Dimension – Included in the warehouse as a categorization Detail – Included in the warehouse but not the cube Measure – Included in the warehouse as an aggregate (sum) Can’t be changed once set. Setting the value only affects new work items, existing work items won’t be updated in the warehouse unless modified.
  • 16. Defining a New Field – Changing If you need to change one of the attributes that is not changeable then you must remove and re-add the field definition. This requires removing it from ALL work item types referencing it. Any data stored in the field will be lost. Try to get the field definition correct from the beginning.
  • 17. Defining a New Field – Example <FIELD name=&quot;Category&quot; refname=&quot;MyCompany.MyProcess.MyField&quot; type=&quot;String&quot; reportable=&quot;Dimension“ />
  • 18. Modifying the Form – Layout Group Must contain at least one column. Has a border. Has an optional label. Multiple groups are “stacked”. Column Allows you to arrange controls side by side. Supports a splitter to allow resizable columns. TabGroup and Tab Creates a typical tab control.
  • 19. Modifying the Form – Main Controls FieldControl Single line. Best for String, Integer, Double and DateTime data types. Rendered as either a text box or a combo box. HtmlFieldControl Multi-line. Best for PlainText and HTML data types. Supports formatting (if the field does).
  • 20. Modifying the Form – Other Controls TFStructureControl Only used for Area and Iteration (i.e. TreePath fields). Rendered as a tree combo. WorkItemLogControl Only used for History. Rendered as a date/time stamped list. Also contains change log. LinksControl Used to link work items to other artefacts and/or hyperlinks. Doesn’t have a “backing” field. AttachmentsControl Used to link work items to arbitrary files. Doesn’t have a “backing” field.
  • 21. Modifying the Form – Custom Controls Standard Windows user control. Implements IWorkItemControl from Microsoft.TeamFoundation.WorkItemTracking.Controls.dll. Special XML file called <ControlName>.wicc tells Visual Studio where to load the control from. DLL must be deployed on all developer workstations. All developer workstations must be running Service Pack 1. More information: http://blogs.msdn.com/narend/archive/2006/10/02/How-to-use-Custom-Controls-in-Work-Item-Form.aspx
  • 22. Verify and Import Work Item Type witimport.exe /f <Filename> /t <TeamFoundationServerName> /p <TeamProject> Verify rather than import: /v Work item type definitions are cached by Visual Studio so you will need to refresh Team Explorer.
  • 23. Demo
  • 24. Customising Workflow – Introduction States Rules Transitions From State To State Reasons Rules Initial states are those with a transition from the “” (null) state.
  • 25. Customising Workflow – In Practice The work item editor shows a list of transitions with the work item’s current state as the from state. When changing state: Must choose from one of the reasons associated with the transition. A default is used by default if an alternate isn’t chosen. Must meet any business rules associated with the transition and destination state.
  • 26. Customising Workflow – Security Transitions can be restricted by security group: “for” attribute – Allow a group “not” attribute – Deny a group “not” has a higher precedence than “for”.
  • 27. Customising Workflow – Integration When assigning work items to a changeset you can choose which transitions to execute on the assigned work items. When customising a work item type you can choose which transitions are eligible for this functionality: <ACTIONS> <ACTION value=&quot;Microsoft.VSTS.Actions.Checkin&quot; /> </ACTIONS>
  • 28. Demo
  • 29. Defining Business Rules – Available Rules Required ReadOnly Empty Frozen CannotLoseValue NotSameAs ValidUser AllowExistingValue Match
  • 30. Defining Business Rules – Defaults Default Only used if the field is empty. Field Value Clock CurrentUser Copy Always used. Field Value Clock CurrentUser ServerDefault Default is always used, field appears read-only on form. Clock CurrentUser
  • 31. Defining Business Rules – Lists Lists: AllowedValues SuggestedValues ProhibitedValues Using AllowedValues results in a DropDownList, otherwise a Combo. Values can be enumerated in the list definition. Or, can be stored in a global list which can be reused. Global lists can be exported with glexport or using the /exportgloballists switch on witexport. Global lists can be imported with glexport or as part of a work item type using witimport.
  • 32. Defining Business Rules – Where Used Rules can be nested inside: Field – The rule must always pass. State – The rule must always pass when the work item is in this state. Transition – The rule must pass when the work item is moved using this transition. Reason – The rule must pass if the reason is used.
  • 33. Defining Business Rules - Conditional Conditional rules: “ for” attribute – Defines the security groups that the rule applies to “ not” attribute – Defines the security groups exempt from the rule “ not” has a higher precedence than “for”. WHEN element – Apply rules based on the value of a field being equal to a value. WHENNOT element – Apply rules based on the value of a field not being equal to a value. WHENCHANGED element – Apply rules only if a field has changed.
  • 34. Demo
  • 35. Defining New Work Item Types Simply combine all these concepts into a new XML file. Beware, work item types cannot be deleted or renamed! Always test in a sandpit project or even better server. Store your work item type definitions in Source Control so you can track changes.
  • 36. Demo
  • 37. Customising Work Item Web Page – Before Available by going to: http://server:8080/WorkItemTracking/WorkItem.aspx?artifactMoniker=<WorkItemNumber>
  • 38. Customising Work Item Web Page Generated by XSL: %ProgramFiles% \Microsoft Visual Studio 2005 Team Foundation Server \Web Services\WorkItemTracking \v1.0\Transforms\WorkItem.xsl Backup the original XSL. Backup your new XSL. It may be overwritten by service packs, upgrades, etc.
  • 39. Demo
  • 40. Real-World Examples TechnologyOne Customised the agile work item types to include fields for storing Release Notes. Customised the task workflow to mimic the bug workflow. Custom work item types for tracking QA issues. Conchango Have created a set of custom work item types for the Scrum methodology. http:// scrumforteamsystem.com
  • 46. Teamprise is a suite of client applications for accessing Microsoft Visual Studio 2005 Team Foundation Server from outside of the Visual Studio Integrated Development Environment (IDE). Teamprise enables software development teams to use the source control, work item tracking, documents, and reporting features of Team Foundation Server from within the Eclipse IDE, and from other operating systems, including Linux and Mac OS X. A big thanks to our friends at Teamprise for their support of our user group. Visit them at http:// www.teamprise.com
  • 47. Contributor Prize free license of Teamprise 2.0 valued at USD$499 Member Discount QVSTSUG members get a 12% discount when purchasing on-line from our website ( http:// www.stpsoft.co.uk/vsts ). To use the discount, enter the coupon code QVUG015 on the on-line order form screen.
  • 48.