1 / 32

Diving into Team Foundation Server Extensibility

Diving into Team Foundation Server Extensibility. Damian Brady - SSW # sswdev. About me: SSW Solution Architect and QLD State Manager Visual Studio ALM MVP MCSD in Visual Studio ALM Co-author of Professional TFS 2013 I love: ASP.NET MVC HTML5/CSS/JS TFS and Scrum.

keran
Download Presentation

Diving into Team Foundation Server Extensibility

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. Diving intoTeam Foundation Server Extensibility Damian Brady - SSW #sswdev

  2. About me: • SSW Solution Architect and QLD State Manager • Visual Studio ALM MVP • MCSD in Visual Studio ALM • Co-author of Professional TFS 2013 • I love: • ASP.NET MVC • HTML5/CSS/JS • TFS and Scrum http://brdy.in/ProTFS2013

  3. What do I mean by extensibility? • “Extensible (n.): capable of being extended” • AKA: Make it do things it doesn’t do out of the box.

  4. In what ways can we extend TFS? Customization Notification Interception Reading Writing

  5. Extensibility Points • Process Template Customization • Alerts • The Client Object Model • The Server Object Model

  6. Process Template Customization Customization

  7. What can you change? Lots. • Startup configuration, default settings, reports, etc. • Work Item tracking

  8. Work Item customizations • Fields • States and Transitions • Work Item Form Layouts • Work Item Controls • Categories • Link Types • Global Lists • Global Workflows and Fields

  9. Process Template Customization

  10. Process Template Customization • Work Items • Fields, states, transitions, UI, etc. • Process and rules • Resources available and start up options

  11. Process Template Customization Cons Not available for VS Online Future upgrades may be compromised Pros • Powerful • Easier than you think • Fit the template into your process

  12. Alerts Notification

  13. Alerts • Not just for email! • You also have the option to get a SOAP message delivered to an endpoint* • Been available since TFS 2005 • Actually XML-first – you can find and modify the XSLTs used to construct emails. • TFS 2012 gave us much better UI for configuring alerts • * Delivery not real-time or guaranteed!

  14. WCF Alert Handling

  15. WCF Alert Handling • Create an Endpoint • Set up an alertvia Web Access • OR use the BisSubscribe.exe tool • One service to rule them all • Create specific alerts, then filter in code

  16. WCF Alert Handling Cons Delivery not guaranteed Delivery not real-time Legacy technology Pros • Very easy • Minimal impact to TFS

  17. Client Object Model Reading Writing

  18. Client Object Model • Assemblies that expose the Team Foundation Server objects • Most common way to interact with Team Foundation Server • Used by Team Explorer and all .NET-based client applications

  19. Client Object Model Useful Assemblies • Microsoft.TeamFoundation.Client.dll • Microsoft.TeamFoundation.VersionControl.Client.dll • Microsoft.TeamFoundation.WorkItemTracking.Client.dll Useful Objects: • TfsConnection • TfsConfigurationServer • TfsTeamProjectCollection • VersionControlServer • WorkItemStore • TeamProjectPicker vartfs = newTfsTeamProjectCollection(uri, credentials); varvcs = tfs.GetService<VersionControlServer>();

  20. Client Object Model

  21. Client Object Model • Exposes nearly everything! • VersionControlServer has nearly 200 methods • Microsoft.TeamFoundation.VersionControl.Client contains about 360 classes • Remember, everything Team Explorer does uses these libraries* • See MSDN for the full story: http://aka.ms/TFS2013SDK • * Potentially a loose definition of “everything”

  22. Client Object Model Cons Potentially dangerous Some small version inconsistencies Not always easy to find working examples Pros • Incredibly powerful • Fast • Easy to work with • Huge amounts of documentation

  23. Server Object Model Notification Interception

  24. Server Object Model • Server-side interaction with Team Foundation Server • Uses a plugin model: • 1. Implement an interface • 2. Drop it in the correct location (Application Tier\Web Services\bin) • Many out-of-the-box features are implemented as plugins

  25. Server Object Model A lot is exposed, however not every interface is suitable for extending. Useful Interfaces: • ISubscriber • ITeamFoundationRequestFilter • ITeamFoundationJobExtension Scary Interfaces: • ISecurityNamespaceExtension • IIdentityProvider

  26. Server Object Model

  27. Server Object Model • The most powerful extensibility option • Implementing ISubscriber gives you 40+ events you can capture • Some are notification and decision • Some are notification only • ITeamFoundationRequestFilter gives you access to every request • ITeamFoundationJobExtension lets you write your own periodically-run jobs • See MSDN for the full story http://aka.ms/TFS2013ServerOM

  28. Server Object Model Cons Potentially very dangerous Not available for VS Online Some tricky hurdles when coding Often quite hard to find working examples Pros • Incredibly powerful • Allows you to change TFS behaviour • Truly add functionality to TFS

  29. What's Next? This page intentionally left blank

  30. Summary Customization Notification Interception Reading Writing Process Template Customization Alerts, Server Object Model Server Object Model Client Object Model Client Object Model

  31. More Information • SHAMELESS PLUG • MSDN - http://brdy.in/ExtendingTFS • Blog – http://www.damianbrady.com.au

  32. THANK YOU Damian Brady @damovisa http://www.damianbrady.com.au

More Related