400 likes | 643 Views
Customizing and extending TFS. Michael Juřek Software Architect Microsoft s.r.o. Agenda. Team Foundation Architecture Process Templates Work Item Types Source Code Control Build Portal and reports. Work Item Tracking. Version Control. Reporting. Project Portal. Build Automation.
E N D
Customizing and extending TFS Michael JuřekSoftware Architect Microsoft s.r.o.
Agenda • Team Foundation Architecture • Process Templates • Work Item Types • Source Code Control • Build • Portal and reports
Work Item Tracking Version Control Reporting Project Portal Build Automation Team Foundation Server Integrated Platform for Collaborating on Software Development Projects.
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 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 Exce MS Projectl SQL Reporting Services Windows SharePoint Services Work Items Version Control Team Build Data Core Data Warehouse Team Logical Architecture Version Control Proxy Service Build Process Team Foundation App Tier Team Foundation Data Tier
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
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
TFS Administration Toolhttp://www.codeplex.com/Wiki/View.aspx?ProjectName=TFSAdminPolicy Override Notification Toolhttp://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
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
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 Editorhttp://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
Customizing Work Item Types Notepad, Process Template Editor, … Work Item Type XML Visual Studio c:\ witexport c:\ witimport /v c:\ witimport WIT XSD Work Item Object Model Export Validate Import Work Item Store
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
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
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 can’t: • 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 user’s 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 • 3rd 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 Toyshttp://www.microsoft.com/downloads/details.aspx?FamilyId=3F21144A-4E98-4CE0-830F-D1F3E8AC9D67&displaylang=enForbidden Patterns PolicyVisual Studio 2005 SDK
Agenda • Team Foundation Architecture • Process Templates • Work Item Types • Source Code Control • Build • Portal and reports
Initialization Build ServerPreparation Source CodeSynch. Code Churn Calculation Report Generation Publishing Work Items Update Code Coverage Calculation Unit Tests Compilation,Static Analysis Typical team build
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 TaskMSBuild Sidekickhttp://www.attrice.info/msbuild/index.htmTeam Build Sidekickhttp://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 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 Common Structures Work Item Tracking Version Control TeamBuild TeamTest 3rd PartyData Sources
* * Project Structure Iteration Structure * * Build * * Work Item * * Test Result * * * * * Latest Item Version Changeset Label Versioned Item Integrated Reporting
Summary • 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