1 / 49

DEV429 Visual Studio 2005 Team Foundation Server Developing custom process templates, work item types and policies

DEV429 Visual Studio 2005 Team Foundation Server Developing custom process templates, work item types and policies. Kevin Kelly kkelly@microsoft.com Program Manager Visual Studio Team Foundation Server Microsoft Corporation. Agenda. Team Foundation Architecture

terrica
Télécharger la présentation

DEV429 Visual Studio 2005 Team Foundation Server Developing custom process templates, work item types and policies

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DEV429Visual Studio 2005 Team Foundation ServerDeveloping custom process templates, work item types and policies Kevin Kelly kkelly@microsoft.com Program Manager Visual Studio Team Foundation Server Microsoft Corporation

  2. Agenda • Team Foundation Architecture • Customization vs Extensibility • Customizing Process Templates • Customizing Work Item Types • Extending Team Foundation Server

  3. Visual Studio Team System Visual Studio Team Suite SoftwareArchitects SoftwareDevelopers SoftwareTesters VisualStudioTeamExplorer VisualStudioIndustryPartners Application Modeling Code Analysis Performance Testing Infrastructure and Deployment Modeling Performance Tuning Manual Testing Test Case Management Security Analysis Unit Testing Code Coverage MSF Process and Guidance Class Modeling Visio and UML Modeling Visual Studio Professional Edition Load Test Agent Visual Studio Team Foundation Server Change Management Reporting Integration Services Work Item Tracking Project Site Project Management

  4. Version Control Proxy Build Machine Report Client App Tier Standby Server http/https .Net remoting Mssql/tcp Database Cluster Architecture Team Foundation Client Tier 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 Team Foundation App Tier • Win 2003 Server • ASP.Net / IIS 6.0 MDAC Team Foundation Data Tier • Win 2003 Server • SQL Server 2005

  5. Team Foundation Client Tier Version Control Proxy Build Machine Visual Studio Packages MS Project Plug-In Internet Explorer MS Excel Plug-In SQL RS Proxies WSS Proxies Team Foundation Object Model VSTF Clients of VSTF VSTF Adjuncts Report Client Custom reporting tools SQL Reporting Services Windows SharePoint Services Work Item Tracking Service Version Control Service Team Build Service Core Services Adapters MS Excel SQL Reporting Services Windows SharePoint Services Work Items Version Control Team Build Data Core Data Warehouse Team Foundation Data Tier Architecture Version Control Proxy Service Build Process Team Foundation App Tier Team Foundation App Tier

  6. Agenda • Team Foundation Architecture • Customization vs. Extensibility • Process Template Overview • Customizing Process Templates • Customizing Work Item Types • Extending Team Foundation Server

  7. Customization Vs. Extensibility • Customization: • What? Project process • Who? Project management • Why? Tune to the way your team works • How? XML definition files • Extensibility: • What? Tooling • Who? IT and ISVs • Why? Fill feature niches, integrate with other systems • How? Write code

  8. 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 Customization Points

  9. Agenda • Team Foundation Architecture • Customization vs Extensibility • Customizing Process Templates • Customizing Work Item Types • Extending Team Foundation Server

  10. 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

  11. Process TemplateCustomizable components • 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

  12. XML XML XML XML XML XML RDL Anatomy 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

  13. Team Project Creation PCW Plugins Methodology Template Team Project Project Creation Wizard User Input

  14. Process Template Editor Community Tool Author: Joel Semeniuk and team at Imaginets Resources

  15. Process Template Editor • http://www.imaginets.com/Default.aspx?tabid=133

  16. Agenda • Team Foundation Architecture • Customization vs Extensibility • Customizing Process Templates • Customizing Work Item Types • Extending Team Foundation Server

  17. Work Item Type Definition <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> • Name • Fields • Field Rules • Work Flow • States • Transitions • Field Rules • Form

  18. Work Item Type Fields • Field reference names • Use in your tooling • Server scope • Follow domain name convention • Microsoft.TeamFoundationServer.WorkItemTracking.Foobar • ‘System.’ reserved • Field friendly names • Use in your queries • Server scope • Can be renamed, Title->Issue for example • Field labels • Appear on WI forms • Localizable

  19. Customizing Work Item Types Work Item Type XML Notepad Visual Studio c:\ witexport c:\ witimport /v c:\ witimport WIT XSD Work Item Object Model Export Validate Import Work Item Store

  20. Hot Metal WIT Editing

  21. Agenda • Team Foundation Architecture • Customization vs Extensibility • Customizing Process Templates • Customizing Work Item Types • Extending Team Foundation Server

  22. Visual Studio Your Artifacts Changeset / Source File Work Item Build Your Service Version Control Service Work Item Tracking Svc Team Build Service Warehouse Adapter Warehouse Adapter Warehouse Adapter Warehouse Adapter TF Facts Your Facts Team Foundation Extensibility Client Your .NET App Your VSIP Package Your PCW plug in Your TE Node Your Checkin Policy Team Foundation OM Work Item OM Version Control OM Registration Svc Proxy Linking Service Proxy Security Service Proxy Policy Framework Eventing Service Proxy Common Controls Classification Svc Proxy Application Tier Registration Service Linking Service Eventing Service Security Service Classification Service TF Data TF Facts Your Data Data Tier Reporting Warehouse

  23. 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 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 Extension Points

  24. Coding to Team Foundation Server

  25. RavenFlow Software

  26. RAVEN and VSTS Integration • RAVEN Professional • Why integrate with VSTS? • Snippets of our integration

  27. RAVEN Professional • Failure to define, communicate and validate business requirements is the root cause of most software project disasters – Gartner, Standish • RAVEN - Requirements Authoring and Validation Environment • Automatically creates UML diagrams from plain English • Creates more precise and correct requirements • Automatically generates MS Word specifications • Visit our booth at TechEd • See more at www.ravenflow.com

  28. Automatically Generated Plain English  UML Diagrams

  29. Why Integrate with VSTS? • RAVEN supports authoring and validation of requirements • VSTS’s Work Item Tracking System supports linking requirements to development activities • e.g. test cases, design, development tasks • TFS sends automatic notification to requirements authors • Allows all team members to view requirements • Keeps requirements authoring in the correct environment • Integration provides Requirements Authoring, Validation and Traceability

  30. Create new Generate Use Case Requirements Work Items or updates Activity Requirements Requirements to TFS RAVEN Professional MS VSTS • Author requirements in RAVEN • Export use cases and activities as requirements work items • Requirements in VSTS are linked • TFS updated with new use cases and activities work items • Work Item Tracking ensures development stays in sync Use Cases Activity Diagrams Notifications

  31. Export to TFS

  32. Exported Requirements in VSTS

  33. Requirements Traceability: Child to Parent Requirements Traceability: Parent to Child Traceability to Test Cases

  34. Activity Diagram Accessible in VSTF

  35. Comment Can Automatically Trigger Alert

  36. RavenFlow Integration • Defined new work item attributes • Defined new controls for accessing new attributes • Defined new tabs for grouping existing and new attributes • Authenticating user account • Creating new work items

  37. XML Customizations for RAVEN-specific Requirement work item attributes <?xml version="1.0" encoding="utf-8"?> <witd:WITD application="Work item type editor" version="1.0" xmlns:witd="http://schemas.microsoft.com/ VisualStudio/2005/workitemtracking/typedef"> <WORKITEMTYPE name="Requirement"> <DESCRIPTION>Includes information to track the requirement through the MSF for CMMI Process Improvement life cycle</DESCRIPTION> <FIELDS> … <FIELD name="RAVENState" refname="RAVEN.State" type="String"> <HELPTEXT>The state of this requirement</HELPTEXT> <REQUIRED /> <DEFAULT from="value" value="1 - Proposed" /> <ALLOWEDVALUES expanditems="true"> <LISTITEM value="1 - Proposed" /> <LISTITEM value="2 - Validated" /> <LISTITEM value="3 - Tested" /> <LISTITEM value="4 - Obsolete" /> </ALLOWEDVALUES> </FIELD> New field RAVEN.State, with allowed values and default value defined

  38. Grouping of controls for Assigned To, State, Priority, and Test Case Attributes <Group Label="Status"> <Column PercentWidth="50"> <Control Type="FieldControl" FieldName="System.AssignedTo" Label="Assigned to:" LabelPosition="Left" /> <Control Type="FieldControl" FieldName="RAVEN.State" Label="State:" LabelPosition="Left" /> <Control Type="FieldControl" FieldName="RAVEN.Priority" Label="Priority:" LabelPosition="Left" /> <Control Type="FieldControl" FieldName="RAVEN.TestCase" Label="Test Case:" LabelPosition="Left" /> </Column> </Group>

  39. Grouping of tabs containing textual information for requirement <TabGroup> <Tab Label="Text"> <Control Type="HtmlFieldControl" FieldName="System.Description" Label="Description:" LabelPosition="Top“ Dock="Fill" /> </Tab> … <Tab Label="Attachments"> <Control Type="AttachmentsControl" /> </Tab> <Tab Label="Comments"> <Control Type="HtmlFieldControl" FieldName="RAVEN.Comments" Label="Comments" LabelPosition="Top" Dock="Fill" /> </Tab> </TabGroup> </Layout> </FORM> </WORKITEMTYPE> </witd:WITD>

  40. Authenticating user account with TFS private static System.Net.NetworkCredential teamFoundationCredential; public static TeamFoundationServer connectToTeamFoundationServer() { if (TeamFoundationServerName == null) { MessageBox.Show("The name of the Team Foundation server has not been specified. Please contact your administrator for assistance.", "Team Foundation Server Not Configured", MessageBoxButtons.OK, MessageBoxIcon.Error); return null; } string server = "http://" + TeamFoundationServerName + ":" + TeamFoundationServerPort; try { if (teamFoundationCredential == null) { GenericLoginForm loginForm = new GenericLoginForm("Log on to Team System", "Please enter your login information for Team System:", "User name:", "Password:", "OK"); loginForm.ShowDialog(); if (loginForm.DialogResult != DialogResult.OK) { return null; } String userName = loginForm.Username; String password = loginForm.Password; teamFoundationCredential = new System.Net.NetworkCredential(userName, password); } TeamFoundationServer tfs = new TeamFoundationServer(server, teamFoundationCredential); tfs.EnsureAuthenticated(); return tfs; } catch (Exception e) { MessageBox.Show("The following error occurred while connecting to the Team Foundation server:\n\n" + e.Message, "Unable to Connect to Team Foundation Server", MessageBoxButtons.OK, MessageBoxIcon.Error); teamFoundationCredential = null; return null; } }

  41. Creating a Requirement work item through the WITS API private WorkItem createWorkItem(WorkItemType wit, String title, String description, String packagePath, String subType,WorkItem parent) { WorkItem workItem = new WorkItem(wit); workItem.Title = title; workItem.Description = description; … if (parent != null) { RelatedLink link = new RelatedLink(parent.Id); link.Comment = "Scenario-to-Step link"; workItem.Links.Add(link); } workItem.Save(); return workItem; } WorkItemTypeCollection workItemTypes = project.WorkItemTypes; WorkItemType wit; wit = workItemTypes["Scenario"]; topWorkItem = createWorkItem(wit, parent.Title, parent.Description, parent.PackagePath, "Scenario", null); WorkItem childWorkItem = createWorkItem(wit, child.Title, child.Description, child.PackagePath, "Scenario Step", topWorkItem);

  42. Tips, Traps, and Workarounds • Nested work items not supported • Use links • Parent links to all children, all children back to parent • Team System / Team Foundation credentials • TFS and VSTS project permissions and groups • Active Directory user accounts • Network access to TFS server in security policy • Team Foundation Server cannot run on domain server • Need separate servers • Running TFS on a virtual server works but is slow • Limitation was not present in beta versions and was not clearly noted until last step of TFS Release Candidate install • Documentation for how to change work item contents (witexport/witimport and XML) difficult to find • Documentation (when located) and experimentation were sufficient

  43. Summary • ISV’s are extending Team Foundation Server • RavenFlow • MindJet • TeamPlain • TFS offers powerful customization capabilities to support your software development lifecycle. • Community tools available, making simple things easy • Extensive extensibility capabilities exist for further SDLC support as well as integration with other systems

  44. Learning More At TechEd Wednesday, June 14 • 3:45-5:00 Delving into Visual Studio 2005 Team Edition for Software Developers (Repeat Session)109 AB, Breakout DEV307R, Brian Randell • 5:30-6:45 Visual Studio 2005 Team Foundation Server: Using Metrics to Manage and Troubleshoot Your Projects153 ABC, Breakout DEV233, Sam Guckenheimer Thursday, June 15 • 9:45-11:00 Visual Studio 2005 Team Foundation Server: Step-by-Step Migration and Adoption Planning104 ABC, Breakout DEV237, Mark Michaelis & Eric Lee • 1:00-2:15 Visual Studio 2005 Team System and Microsoft Solution Framework: Implementing an Agile or CMMI Process156 ABC, Breakout DEV439, Randy Miller • 1:00-2:15 An Inside Look At an Exciting New Addition to Visual Studio Team System (Part 3)160 ABC, Breakout DAT433, Gert Drapers Friday, June 16 • 9:00-10:15 Using Team Foundation Server to Write and Test Code204 AB, Instructor-led Lab DEV282, Telmo Sampaio • 10:30-11:45 Team Foundation Server in the Enterprise Birds of a Feather BOF40, Michael Ruminer

  45. Work Item and Process Template Customization • Team Foundation product documentation at http://msdn2.microsoft.com • Go to http://lab.msdn.microsoft.com/search/ • Search on • "Getting Started with Team Foundation" and • "Team Foundation Administrators" • Included in the Visual Studio SDK: http://msdn.microsoft.com/vstudio/extend/

  46. Resources

  47. Fill out a session evaluation on CommNet for a chance to Win an XBOX 360!

  48. © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

More Related