Upload
egbert-rice
View
232
Download
0
Tags:
Embed Size (px)
Citation preview
ExtensibilityExtensibility
Extending VSTSExtending VSTS
VSTE for Software ArchitectsVSTE for Software ArchitectsVSTE for Software DevelopersVSTE for Software DevelopersVSTE for Software TestersVSTE for Software TestersTeam Foundation SeverTeam Foundation Sever
Extending VSTSExtending VSTS
VSTE for Software ArchitectsVSTE for Software ArchitectsSDKSDKModeling IntegrationModeling Integration
Extending Team ArchitectExtending Team Architect
Extensibility SDKExtensibility SDKSupport the ability to add new SDM resources as Support the ability to add new SDM resources as additional properties on any logical server or additional properties on any logical server or applicationapplication
Associate with any existing typesAssociate with any existing typesFully constrainableFully constrainableGeneric logical servers and applicationsGeneric logical servers and applicationsPrototypesPrototypes
Support the ability to define new SDM typesSupport the ability to define new SDM typesNew system definitionsNew system definitionsNew endpointsNew endpointsNew relationshipsNew relationshipsNew constraintsNew constraints
Extensibility SDKExtensibility SDK
Why…Why…Model and visualize “other aspects” of a distributed systemModel and visualize “other aspects” of a distributed system
What you do…What you do…Add new application definitions to the Add new application definitions to the Application DesignerApplication DesignerAdd new host definitions to the Add new host definitions to the Logical Data Center DesignerLogical Data Center DesignerModel Model new endpointnew endpoint types typesCreate new Create new communicationcommunication, and , and hostinghosting relationships relationshipsAdd custom Add custom constraintsconstraints to new or existing definitions to new or existing definitionsExtend existing definitions with Extend existing definitions with new meta-datanew meta-data
What you get…What you get…Integration with existing drag-drop-connect metaphorIntegration with existing drag-drop-connect metaphorIntegration with existing user experience for settings and Integration with existing user experience for settings and constraintsconstraintsIntegration with existing validation experienceIntegration with existing validation experienceIntegration with existing user experience for deployment Integration with existing user experience for deployment validationvalidation
Creating Generic ServerCreating Generic ServerExtending Application Extending Application DiagramDiagram
Extending VSTSExtending VSTS
VSTE for Software DevelopersVSTE for Software DevelopersCode AnalysisCode AnalysisCheck In policiesCheck In policiesSource ControlSource ControlBuildBuild
Extending Code AnalysisExtending Code Analysis
You can import existing FXCop rules You can import existing FXCop rules into VSTSinto VSTS
Place you FXCop rule assemblies Place you FXCop rule assemblies alongside current VSTS onesalongside current VSTS onesThey will appear in the VS IDEThey will appear in the VS IDETarget file can be found at Target file can be found at
C:\Program Files\MSBuild\Microsoft\C:\Program Files\MSBuild\Microsoft\VisualStudio\v8.0\CodeAnalysisVisualStudio\v8.0\CodeAnalysis
Check-in PoliciesCheck-in Policies
Mechanism for validating source Mechanism for validating source changes prior to check-inchanges prior to check-in
Evaluated on the clientEvaluated on the clientNot a security mechanismNot a security mechanism
Extensible via policy plug-insExtensible via policy plug-ins.NET managed assemblies.NET managed assembliesIPolicyDefinition – define a check-in policyIPolicyDefinition – define a check-in policyIPolicyEvaluation – evaluate policy IPolicyEvaluation – evaluate policy compliancecompliance
Extending Team BuildExtending Team Build
Augment Team Build processAugment Team Build processMSBuild tasksMSBuild tasks
Use Team Build store in your existing Use Team Build store in your existing build processbuild process
Team Build Web ServicesTeam Build Web Services
BBuild lab scenariosuild lab scenariosCommandCommand--line toolsline tools
Custom Check-in PolicyCustom Check-in Policy
Extending VSTSExtending VSTS
VSTE for Software TestersVSTE for Software TestersValidatorsValidatorsTesting TypesTesting Types
GenericGenericCustomCustom
Extensibility PathsExtensibility Paths
Validation RulesValidation RulesDefining custom validations for web application Defining custom validations for web application and web service testing.and web service testing.
Generic Type – Lightweight solutionGeneric Type – Lightweight solutionIntegrate tools into Visual Studio using metadata Integrate tools into Visual Studio using metadata and loose inter-process integration.and loose inter-process integration.Take advantage of basic Test features.Take advantage of basic Test features.
33rdrd Party Type – Heavyweight solution Party Type – Heavyweight solutionProgrammatically integrate tools into Visual Programmatically integrate tools into Visual Studio with tight API-level integration.Studio with tight API-level integration.Take advantage of all Test features.Take advantage of all Test features.
Custom Custom Editor / WizardEditor / Wizard
Test ItemsTest ItemsManagement UIManagement UI
GeneralGeneralResults ViewResults View
Custom DetailedCustom DetailedResults ViewResults View
GenericsGenerics Test TypeTest Type
Hook into RunHook into Run Config SettingsConfig Settings
Context-sensitive Context-sensitive Right-click CommandsRight-click Commands
Complete Control ofComplete Control ofTest Item ExecutionTest Item Execution
Generic TestsGeneric TestsWhat’s goodWhat’s good
Quick lightweight integration methodQuick lightweight integration methodTest tools run unmodifiedTest tools run unmodifiedTake advantage of basic Test featuresTake advantage of basic Test features
Manage and execute tests your tools in Manage and execute tests your tools in the new Test environmentthe new Test environmentView basic test resultsView basic test results
Generic TestsGeneric TestsWhat’s missing?What’s missing?
Authoring experience limitedAuthoring experience limitedCannot have custom editor or wizardCannot have custom editor or wizardNo named test typeNo named test type
Constraints on receiving resultsConstraints on receiving resultsNo real-time results feedbackNo real-time results feedbackDeployment is not as robust as a custom Deployment is not as robust as a custom typetype
Results Viewing limitedResults Viewing limitedNot a fully-featured custom viewerNot a fully-featured custom viewer
Extending Test Case Extending Test Case TypesTypes
Custom types and custom adaptors to Custom types and custom adaptors to fully extend test authoring and fully extend test authoring and executionexecution3 General Extension Points3 General Extension Points
Authoring experience extensionsAuthoring experience extensionsExecution adaptor and metadata Execution adaptor and metadata extensionsextensionsResults plug-inResults plug-in
Test AuthoringTest AuthoringTest Case Types: ExtensibilityTest Case Types: Extensibility
VS types can be extended to include VS types can be extended to include your typeyour typeOffers first class test typeOffers first class test typeUsed internally to create test typesUsed internally to create test types
Visual Studio Test Type InterfacesVisual Studio Test Type Interfaces
MS Test TypesMS Test Types VSIP Test TypesVSIP Test Types
EditorEditor EditorEditor
Test ResultsTest ResultsTest Case Types: ExtensibilityTest Case Types: Extensibility
Result summary information Result summary information extensibleextensible
Pass, FailPass, FailComplete, IncompleteComplete, Incomplete
Results viewer provides events and UI Results viewer provides events and UI AreaArea
Summary visible by default (Pass \ Fail)Summary visible by default (Pass \ Fail)Details available by test type on double-Details available by test type on double-clickclick
Custom ValidationCustom ValidationGeneric TestingGeneric Testing
Extending VSTSExtending VSTS
Team Foundation ServerTeam Foundation ServerArchitecture (Technical & Conceptual)Architecture (Technical & Conceptual)Extending Team FoundationExtending Team Foundation
Process MethodologyProcess MethodologyWork Item EditingWork Item EditingWorking with eventsWorking with events
Technical ArchitectureTechnical Architecture
Win 2000 (>=SP4)Win 2000 (>=SP4)Win XP (>=SP2)Win XP (>=SP2)Win 2003 Server (>=SP1)Win 2003 Server (>=SP1)
.Net FX 2.0.Net FX 2.0Microsoft Office 11 – SP1Microsoft Office 11 – SP1MDAC 9.0MDAC 9.0Internet Explorer 6.0 – SP1Internet Explorer 6.0 – SP1Visual Studio 2005 Team ExplorerVisual Studio 2005 Team Explorer
Win 2003 ServerWin 2003 ServerASP.Net / IIS 6.0ASP.Net / IIS 6.0
Win 2003 ServerWin 2003 ServerSQL Server 2005SQL Server 2005
Win XP (>=SP2)Win XP (>=SP2)Win 2003 Server (>=SP1)Win 2003 Server (>=SP1)
.Net FX 2.0.Net FX 2.0
MDACMDAC
Win 2003 ServerWin 2003 ServerASP.Net / IIS 6.0ASP.Net / IIS 6.0
Maximally factored Maximally factored configurationconfiguration
Custom reportingCustom reportingtoolstools
MS ExcelMS Excel
Technical ArchitectureTechnical Architecture
Team Foundation Data Tier
Team Foundation App Tier
Version ControlProxy
Report Client
Team Foundation Client Tier
CoreCoreDataData
VersionVersionControlControlWork ItemsWork Items Team Build Team Build
DataData
SQLSQLReportingReportingServicesServices
WindowsWindowsSharePointSharePoint
ServicesServices
SQLSQLReportingReportingServicesServices
WindowsWindowsSharePointSharePoint
ServicesServices
Work ItemWork ItemTrackingTrackingServiceService
VersionVersionControlControlServiceService
TeamTeamBuildBuild
ServiceService
CoreCoreServicesServices
WarehouseWarehouse
AdaptersAdapters
Team Foundation App Tier
WSS WSS ProxiesProxies
SQL RS SQL RS ProxiesProxies
Team Foundation Object ModelTeam Foundation Object Model
MS ExcelMS ExcelPlug-InPlug-In
MS ProjectMS ProjectPlug-InPlug-InVisual Studio PackagesVisual Studio Packages
Internet ExplorerInternet Explorer
BuildBuildProcessProcess
VersionVersionControlControlProxyProxy
ServiceService
VSTFVSTFClients of VSTFClients of VSTFVSTF AdjunctsVSTF Adjuncts
Build Machine
Meta Data RepositoriesMeta Data RepositoriesWork Work ItemsItemsWork Work ItemsItems TestsTestsTestsTests
SourceSourceCodeCode
SourceSourceCodeCode
BuildBuildConfigsConfigs
BuildBuildConfigsConfigs
ThirdThirdPartyPartyToolTool
ThirdThirdPartyPartyToolTool
ProjectProjectStructureStructure
ProjectProjectStructureStructureIterationIteration
StructureStructure
IterationIterationStructureStructure
TestTestResultsResults
TestTestResultsResults
BuildBuildBuildBuildLabelLabelLabelLabelVersionedVersionedItemItem
VersionedVersionedItemItem
LatestLatestItemItem
VersionVersion
LatestLatestItemItem
VersionVersionChangesetChangesetChangesetChangesetWorkWork
ItemItem
WorkWorkItemItem
TFS “Virtual Repository”TFS “Virtual Repository”
Version ControlVersion ControlVersion ControlVersion Control Core DataCore DataCore DataCore DataWork ItemsWork ItemsWork ItemsWork Items Team Build Team Build Team Build Team Build
TFS EnablementTFS EnablementTFS EnablementTFS Enablement TFS EnablementTFS EnablementTFS EnablementTFS Enablement TFS EnablementTFS EnablementTFS EnablementTFS Enablement TFS EnablementTFS EnablementTFS EnablementTFS Enablement
**
** **
** **
** ** ** **
**
** **
**
ProjectProjectStructureStructure
ProjectProjectStructureStructure
IterationIterationStructureStructure
IterationIterationStructureStructure
WorkWorkItemItem
WorkWorkItemItem
LabelLabelLabelLabel VersionedVersionedItemItem
VersionedVersionedItemItem
LatestLatestItemItem
VersionVersion
LatestLatestItemItem
VersionVersionChangesetChangesetChangesetChangeset
BuildBuildBuildBuild TestTestResultResult
TestTestResultResult
TeamTeamFoundationFoundation
ServerServer
TeamTeamFoundation Foundation CoreCoreServicesServices
Team foundation core Team foundation core servicesservices
LinkingLinkingServiceService
UserUserGroupsGroupsServiceService
NotificationNotificationServiceService
RegistrationRegistrationServiceService
CommonCommonStructureStructureServiceService
Team Foundation Object ModelTeam Foundation Object Model
Visual Visual Studio Studio IDEIDE
External toolExternal tool(Partner or MS)(Partner or MS)
VersionVersionControlControl
Inte
gra
tio
nIn
teg
rati
on
Inte
rfa
ce
Inte
rfa
ce
WorkWorkItemsItems
Inte
gra
tio
nIn
teg
rati
on
Inte
rfa
ce
Inte
rfa
ce
TeamTeamBuild Build
Inte
gra
tio
nIn
teg
rati
on
Inte
rfa
ce
Inte
rfa
ce
Customization vs. Customization vs. ExtensionExtensionCustomization:Customization:
What?What? Tailor Team Foundation to your Tailor Team Foundation to your environmentenvironmentWho? Who? End users, project managersEnd users, project managersWhy?Why? Adjust basic Team Foundation Adjust basic Team Foundation capabilities to your needscapabilities to your needsHow?How? Config through UI, author XML, Config through UI, author XML, maybe maybe
some automationsome automationExtension/IntegrationExtension/Integration
What?What? Add new functionality to Team Add new functionality to Team FoundationFoundationWho?Who? Partners, internal IT orgsPartners, internal IT orgsWhy?Why? Deeply integrate complementary Deeply integrate complementary features features into the Team Foundation platforminto the Team Foundation platformHow?How? WS development, database WS development, database development, development,
VSIP integration, etc.VSIP integration, etc.
Example CustomizationsExample Customizations
Process TemplateProcess TemplateModify / clone oursModify / clone oursBuild your ownBuild your own
Work Item TypesWork Item TypesModify oursModify oursBuild your ownBuild your ownAutomate using Automate using WIOMWIOM
Source Code Source Code ControlControl
Select policies to Select policies to enforceenforce
ReportingReportingModify our SQL RS Modify our SQL RS reportsreportsAdd your own SQL Add your own SQL RS reportsRS reportsUse a different Use a different reporting tool (Excel, reporting tool (Excel, OWC, …)OWC, …)
Project PortalProject PortalCustomize the Customize the templatetemplateAdd your own Add your own librarieslibraries
TFS CustomizationTFS CustomizationProcess Process
MethodologyMethodologyWork item editingWork item editing
Example ExtensionsExample ExtensionsCore servicesCore services
Add a new tool with new Add a new tool with new artifact types, link types, artifact types, link types, database, WS’sdatabase, WS’sLink to other tools’ Link to other tools’ artifactsartifactsRaise, subscribe to Raise, subscribe to eventseventsIntegrate into Team Integrate into Team ExplorerExplorerAdd pages to Project Add pages to Project Creation WizardCreation Wizard
Work Item TrackingWork Item TrackingWrite against OMWrite against OMRespond to eventsRespond to eventsLink to Work ItemsLink to Work ItemsIntegrate with WI PickerIntegrate with WI Picker
Source ControlSource ControlWrite against OMWrite against OMAdd new file type support Add new file type support (keyword expansion, (keyword expansion, diff/merge)diff/merge)Participate in integrated Participate in integrated check-incheck-inDefine new policieDefine new policieRespond to eventsRespond to events
ReportingReportingExtend warehouseExtend warehouse
PortalPortalBuild new web partsBuild new web parts
BuildBuildAdd new Build tasksAdd new Build tasks
ScenarioScenarioTake OrderTake Order
Extensibility SampleExtensibility SampleWork item spawningWork item spawning TaskTask
Take Order:Take Order:Write SpecWrite Spec
TaskTaskTake Order:Take Order:
Test PlanTest Plan
TaskTaskTake Order:Take Order:
UI DesignUI Design
TaskTaskTake Order:Take Order:Dev ScheduleDev Schedule
Extensibility SampleExtensibility SampleWork item spawningWork item spawning
ScenarioScenarioTake OrderTake Order
TaskTaskTake Order:Take Order:Write SpecWrite Spec
TaskTaskTake Order:Take Order:
Test PlanTest Plan
TaskTaskTake Order:Take Order:
UI DesignUI Design
TaskTaskTake Order:Take Order:Dev ScheduleDev Schedule
• Listen for WorkItemChanged Listen for WorkItemChanged event for new Scenario.event for new Scenario.
• Use work item object model to Use work item object model to create new Taskscreate new Tasks
• Use work item object model to Use work item object model to link new Tasks to original link new Tasks to original ScenarioScenario
• Listen for WorkItemChanged Listen for WorkItemChanged event for new Scenario.event for new Scenario.
• Use work item object model to Use work item object model to create new Taskscreate new Tasks
• Use work item object model to Use work item object model to link new Tasks to original link new Tasks to original ScenarioScenario
• Listen for WorkItemChanged Listen for WorkItemChanged event for Completed Task.event for Completed Task.
• Use work item object model to Use work item object model to update parent Scenarioupdate parent Scenario
• Listen for WorkItemChanged Listen for WorkItemChanged event for Completed Task.event for Completed Task.
• Use work item object model to Use work item object model to update parent Scenarioupdate parent Scenario
Registering and Registering and SubscribingSubscribing
RegistrationRegistrationAPIAPI
RegistrationRegistrationAPIAPI
SubscriptionSubscriptionAPIAPI
SubscriptionSubscriptionAPIAPI
At setup time, a tool registers the At setup time, a tool registers the types of events it will raise.types of events it will raise.TFS Work Item Tracking raises TFS Work Item Tracking raises a WorkItemChanged Eventa WorkItemChanged Event
Another tool may subscribe to Another tool may subscribe to receive events of that type when receive events of that type when they are raised.they are raised.We’ll use a utility that is We’ll use a utility that is delivered with Team delivered with Team Foundation.Foundation.
• subscribesubscribe• unsubscribeunsubscribe
TFSTFSWork ItemWork ItemTrackingTracking
TFSTFSWork ItemWork ItemTrackingTracking
Work ItemWork ItemSpawnSpawnDemoDemo
Work ItemWork ItemSpawnSpawnDemoDemo
EventEventTypesTypesEventEventTypesTypes
SubsSubsSubsSubs
Raising an EventRaising an Event
EventEventTypesTypesEventEventTypesTypes SubsSubs
TFS Event EngineTFS Event EngineTFS Event EngineTFS Event Engine
SubsSubsSubsSubs
Events matched to subscriptionsEvents matched to subscriptionsDemo “WorkItemSpawn” WS Demo “WorkItemSpawn” WS invoked.invoked.
TFS Event TFS Event ClientClient
TFS Event TFS Event ClientClient
• fireAsyncEventfireAsyncEvent • callback method callback method specified in specified in subscribe subscribe callcall
Rules Rules ProcessorProcessor
Rules Rules ProcessorProcessor
Events matched to subscriptionsEvents matched to subscriptionsTFS Work Item Tracking raises a TFS Work Item Tracking raises a WorkItemChanged EventWorkItemChanged Event
TFSTFSWork ItemWork ItemTrackingTracking
TFSTFSWork ItemWork ItemTrackingTracking Work ItemWork Item
SpawnSpawnDemoDemo
Work ItemWork ItemSpawnSpawnDemoDemo
Work Item SpawningWork Item Spawning
© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.