Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for...

36
Extensibility Extensibility

Transcript of Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for...

Page 1: Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for Software Testers Team Foundation Sever.

ExtensibilityExtensibility

Page 2: Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for Software Testers Team Foundation Sever.

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

Page 3: Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for Software Testers Team Foundation Sever.

Extending VSTSExtending VSTS

VSTE for Software ArchitectsVSTE for Software ArchitectsSDKSDKModeling IntegrationModeling Integration

Page 4: Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for Software Testers Team Foundation Sever.

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

Page 5: Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for Software Testers Team Foundation Sever.

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

Page 6: Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for Software Testers Team Foundation Sever.

Creating Generic ServerCreating Generic ServerExtending Application Extending Application DiagramDiagram

Page 7: Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for Software Testers Team Foundation Sever.

Extending VSTSExtending VSTS

VSTE for Software DevelopersVSTE for Software DevelopersCode AnalysisCode AnalysisCheck In policiesCheck In policiesSource ControlSource ControlBuildBuild

Page 8: Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for Software Testers Team Foundation Sever.

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

Page 9: Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for Software Testers Team Foundation Sever.

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

Page 10: Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for Software Testers Team Foundation Sever.

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

Page 11: Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for Software Testers Team Foundation Sever.

Custom Check-in PolicyCustom Check-in Policy

Page 12: Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for Software Testers Team Foundation Sever.

Extending VSTSExtending VSTS

VSTE for Software TestersVSTE for Software TestersValidatorsValidatorsTesting TypesTesting Types

GenericGenericCustomCustom

Page 13: Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for Software Testers Team Foundation Sever.

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.

Page 14: Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for Software Testers Team Foundation Sever.

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

Page 15: Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for Software Testers Team Foundation Sever.

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

Page 16: Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for Software Testers Team Foundation Sever.

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

Page 17: Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for Software Testers Team Foundation Sever.

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

Page 18: Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for Software Testers Team Foundation Sever.

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

Page 19: Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for Software Testers Team Foundation Sever.

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

Page 20: Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for Software Testers Team Foundation Sever.

Custom ValidationCustom ValidationGeneric TestingGeneric Testing

Page 21: Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for Software Testers Team Foundation Sever.

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

Page 22: Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for Software Testers Team Foundation Sever.

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

Page 23: Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for Software Testers Team Foundation Sever.

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

Page 24: Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for Software Testers Team Foundation Sever.

Meta Data RepositoriesMeta Data RepositoriesWork Work ItemsItemsWork Work ItemsItems TestsTestsTestsTests

SourceSourceCodeCode

SourceSourceCodeCode

BuildBuildConfigsConfigs

BuildBuildConfigsConfigs

ThirdThirdPartyPartyToolTool

ThirdThirdPartyPartyToolTool

Page 25: Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for Software Testers Team Foundation Sever.

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

Page 26: Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for Software Testers Team Foundation Sever.

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

Page 27: Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for Software Testers Team Foundation Sever.

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.

Page 28: Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for Software Testers Team Foundation Sever.

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

Page 29: Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for Software Testers Team Foundation Sever.

TFS CustomizationTFS CustomizationProcess Process

MethodologyMethodologyWork item editingWork item editing

Page 30: Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for Software Testers Team Foundation Sever.

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

Page 31: Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for Software Testers Team Foundation Sever.

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

Page 32: Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for Software Testers Team Foundation Sever.

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

Page 33: Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for Software Testers Team Foundation Sever.

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

Page 34: Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for Software Testers Team Foundation Sever.

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

Page 35: Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for Software Testers Team Foundation Sever.

Work Item SpawningWork Item Spawning

Page 36: Extensibility. Extending VSTS VSTE for Software Architects VSTE for Software Developers VSTE for Software Testers Team Foundation Sever.

© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.