ARC400 Tools For Architects: Developing Service Oriented Systems
ARC400 Tools For Architects: Developing Service Oriented Systems
Keith Short, ArchitectKeith Short, ArchitectVisual Studio, Enterprise ToolsVisual Studio, Enterprise ToolsMicrosoft CorporationMicrosoft Corporation
Visual Studio Team SystemVisual Studio Team System
Change Management
Work Item Tracking
Reporting
Project Site
Visual Studio
Team Foundation
Integration Services
Project Management
Pro
cess
an
d A
rch
itect
ure
P
roce
ss a
nd
Arc
hite
ctu
re
Gu
ida
nce
Gu
ida
nce
Vis
ua
l Stu
dio
Ind
ust
ry
Vis
ua
l Stu
dio
Ind
ust
ry
Pa
rtn
ers
Pa
rtn
ers
Dynamic Code Analyzer
Visual Studio
Team Architect
Static Code Analyzer
Code Profiler
Unit Testing
Code Coverage
Visio and UML Modeling
Team Foundation Client
VS Pro
Class Modeling
Load Testing
Manual Testing
Test Case Management
Application Modeling
Logical Infra. Modeling
Deployment Modeling
Visual Studio
Team DeveloperVisual Studio
Team TestApplication Modeling
Logical Infra. Modeling
Deployment Modeling
Class Modeling
Development TeamsDevelopment Teams
InfrastructureInfrastructureArchitectArchitect
SolutionSolutionArchitectArchitect
Project ManagerProject Manager
DeveloperDeveloper
TesterTester
End UserEnd User
Main PointsMain Points
Building Service Oriented Applications Building Service Oriented Applications can be a complex undertakingcan be a complex undertaking
Improving frameworks and Improving frameworks and languages helpslanguages helps
Modeling languages, tools and Modeling languages, tools and patterns have an important role to playpatterns have an important role to play
We can avoid many past pitfallsWe can avoid many past pitfalls
AgendaAgenda
Complexity in connected systemsComplexity in connected systems
Using modeling to reduce complexityUsing modeling to reduce complexity
Scenario 1 - web services and design Scenario 1 - web services and design for operationsfor operations
Scenario 2 – visualizing codeScenario 2 – visualizing code
Scenario 3 – implementing Scenario 3 – implementing business processesbusiness processes
Microsoft strategy and tools for Microsoft strategy and tools for Visual Studio 2005Visual Studio 2005
AgendaAgenda
Complexity in connected systemsComplexity in connected systems
Using modeling to reduce complexityUsing modeling to reduce complexity
Scenario 1 - web services and design Scenario 1 - web services and design for operationsfor operations
Scenario 2 – visualizing codeScenario 2 – visualizing code
Scenario 3 – implementing Scenario 3 – implementing business processesbusiness processes
Microsoft strategy and tools for Visual Microsoft strategy and tools for Visual Studio whidbeyStudio whidbey
ComplexityComplexityAutomate business processesAutomate business processesValue chains with partnersValue chains with partnersCustomer and supplier self service Customer and supplier self service Improve ROI of ITImprove ROI of ITLower operating costsLower operating costsCut time to marketCut time to market
Service oriented architectureService oriented architectureWeb Services, messaging, Web Services, messaging, contractsSecuritycontractsSecurityCaching and state managementCaching and state managementDeployment policies & constraintsDeployment policies & constraintsHeterogeneous platformsHeterogeneous platformsApplication servers & standardsApplication servers & standardsSchemas and databasesSchemas and databasesCode and attributesCode and attributesConfiguration filesConfiguration filesProject structuresProject structuresPhysical server configurationsPhysical server configurations
??New Business
New Business
Requirements
Requirements
New Platform
New Platform
Technology
Technology
Same Old
Same Old
Implementation
Implementation
Approach
Approach
Building Software Today Building Software Today
We still hand-stitch every application We still hand-stitch every application ……
Using low level programming Using low level programming constructs …constructs …
Building every application as if it were Building every application as if it were the first of its kind …the first of its kind …
Synthesis of IdeasSynthesis of Ideas
Raising the level of Abstraction Raising the level of Abstraction Modeling and domain specific languagesModeling and domain specific languages
Patterns and FrameworksPatterns and FrameworksInstitutionalizing best practicesInstitutionalizing best practices
Software Product LinesSoftware Product LinesA context for systematic reuseA context for systematic reuse
Software component assemblySoftware component assemblySpecification of contracts and software Specification of contracts and software supply chainssupply chains
AgendaAgenda
Complexity in Connected SystemsComplexity in Connected Systems
Using Modeling to Reduce ComplexityUsing Modeling to Reduce Complexity
Scenario 1 - Web Services and Design Scenario 1 - Web Services and Design for Operationsfor Operations
Scenario 2 – Visualizing CodeScenario 2 – Visualizing Code
Scenario 3 – Implementing Scenario 3 – Implementing Business ProcessesBusiness Processes
Microsoft Strategy and Tools for Visual Microsoft Strategy and Tools for Visual Studio WhidbeyStudio Whidbey
Abstraction Reduces ComplexityAbstraction Reduces Complexity
Assembler, Pcode, Assembler, Pcode, CLR ILCLR IL
Bytecode or Bytecode or machine machine languageslanguages
Bytecode or Bytecode or machine machine languageslanguages
General Purpose General Purpose AbstractionsAbstractionsGeneral Purpose General Purpose AbstractionsAbstractionsC#, Java, etcC#, Java, etc
Domain Specific Domain Specific AbstractionsAbstractionsDomain Specific Domain Specific AbstractionsAbstractions
Telephone Billing LanguageTelephone Billing Language
call
calendarmonth
CallRecord
call length
base rate: £/s
call length
friend discount rate: £/sstore
friends calls
other calls
-
bill
billing period
store
+-
C(x) h C(x) t 2m xih = –
Modelling And ProgrammingModelling And Programming
Textual Pictorial
Declarative
Procedural
class Magnox : NuclearPowerStation {
public void dropRods ()
jo biscuits 24 green
pat cakes 32 pink
Employeename
addresspromote
Jobdescription
payassign
0..*
a>b && c==d
call
CallRecord
call length
base rate: £/s
store
<CallRecord>
<caller><number>07713248</number>
• forms-centred applications
• build GUI from a collection of widgets
• Web database applications
• standard couplings between form and db
• string, textfile processing
• regexps, parsers, …
(a,b,c)= str=~/<([^>]*)>/g;
• COTS applications
• Great Plains, SAP, Baan, …
Where Are DSLs In Use Today?Where Are DSLs In Use Today?
Domain Specific LanguagesDomain Specific Languages
Encapsulate abstractionsEncapsulate abstractionsNarrow scopeNarrow scope
Graphical and/or textualGraphical and/or textual
Highly expressiveHighly expressiveCoarse-grained abstractionsCoarse-grained abstractions
DSL patterns DSL patterns
Must be cheap to implement using Must be cheap to implement using General purpose programming languagesGeneral purpose programming languages
Specific framework completionSpecific framework completion
Other modeling languagesOther modeling languages
Implementing DSLsImplementing DSLs
Model
Application Code
PlatformFrameworks
Model
Generated Code
Platform
Model
Application Code
PlatformFrameworks
Model
Generated Code
Platform
Model
Application Code
PlatformFrameworks
Model
Generated Code
Platform
Model
Application Code
PlatformFrameworks
Model
Generated Code
Platform
(b)(b)
Model
Application CodeDomain Specific
Framework
PlatformFrameworks
Model
Generated CodeFramework
Pattern Language
Platform
Model
Application CodeDomain Specific
Framework
PlatformFrameworks
Model
Generated CodeFramework
Pattern Language
Platform
Model
Application CodeDomain Specific
Framework
PlatformFrameworks
Model
Generated CodeFramework
Pattern Language
Platform
Model
Application CodeDomain Specific
Framework
PlatformFrameworks
Model
Generated Code
Framework
Platform
(c)(c)
Application Code
Model
PlatformFrameworks
Generated Code
Model
Platform
Application Code
Model
PlatformFrameworks
Generated Code
Model
Platform
Application Code
Model
PlatformFrameworks
Generated Code
Model
Platform
Application Code
Model
PlatformFrameworks
Generated Code
Model
Platform
(a)(a)
PlatformFrameworks
Application Code
Model
Platform
Generated Code
Model
PlatformFrameworks
Application Code
Model
Platform
Generated Code
Model
PlatformFrameworks
Application Code
Model
Platform
Generated Code
Model
PlatformFrameworks
Application Code
Model
Platform
Generated Code
Model
(d)(d)
DSL And Framework PatternDSL And Framework Pattern
CustomCustomPartialPartial
ClassesClassesFrameworkFramework
PartialPartialClassesClasses
FrameworkFrameworkClassesClasses
FrameworkFrameworkConfig FilesConfig Files
Other Other Framework Framework
ArtifactsArtifacts
usesuses
usesuses
completescompletes
FrameworkFrameworkToolsTools
DSLDSLEditorEditor
DSLDSLDefinitionDefinition
generatesgenerates
OtherOtherEditorsEditors
edit / buildedit / build
generatesgenerates
AgendaAgenda
Complexity in connected systemsComplexity in connected systems
Using modeling to reduce complexityUsing modeling to reduce complexity
Scenario 1 - web services and design Scenario 1 - web services and design for operationsfor operations
Scenario 2 – visualizing codeScenario 2 – visualizing code
Scenario 3 – implementing Scenario 3 – implementing business processesbusiness processes
Microsoft strategy and tools for Visual Microsoft strategy and tools for Visual Studio WhidbeyStudio Whidbey
.asmx files .asmx code behinds source code Statements and attributes
XML ConfigurationFiles and schemas(e.g. WSDL files)
Project Files and templates
Deployment PoliciesAnd Packages
??
Scattered Concepts …Scattered Concepts …
IssuesIssues
Concept of Web service is “lost” among Concept of Web service is “lost” among many filesmany files
Developer must keep files in syncDeveloper must keep files in sync
Refactoring engines ignorant of Web Refactoring engines ignorant of Web service conceptsservice concepts
Can not process non-code files like schemas and Can not process non-code files like schemas and config filesconfig files
Debugging, Intellisense, editors all ignorant Debugging, Intellisense, editors all ignorant of Web service conceptsof Web service concepts
Source Control, Work Item, Tests all ignorant Source Control, Work Item, Tests all ignorant of Web Service conceptsof Web Service concepts
.asmx files .asmx code behinds source code Statements and attributes
XML ConfigurationFiles and schemas(e.g. WSDL files)
Project Files and templates
Deployment PoliciesAnd Packages
…A Holistic View…A Holistic View
Web Service Connectivity DSL
Web Service Connectivity DSLWeb Service Connectivity DSL
Services, Messages, Applications, Endpoints
Services, Messages, Applications, Endpoints
XML, Projects, DBs, Classes, Code
XML, Projects, DBs, Classes, Code
Physical servers & segments
DeploymentUnits
DeploymentUnits
Abstraction/Refinement
packaged into deployed on
A DSL In Use TodayA DSL In Use Today
Web Service Connectivity Web Service Connectivity
PatternsPatternsService InterfaceService Interface
GatewayGateway
FaçadeFaçade
Layered ArchitectureLayered Architecture
AspectsAspectsTransactionsTransactions
SecuritySecurity
TransformationsTransformationsValidate against deployment infrastructureValidate against deployment infrastructure
Transform into implementation artifactsTransform into implementation artifacts
Applying A Service Façade PatternApplying A Service Façade Pattern
Policy Policy ManagementManagement
Customer Customer ManagementManagement
Customer Customer Self-ServiceSelf-Service
Service Facade PatternService Facade Pattern
Facade
Messages
Service
Selected Messages
Project StructuresReferencesDefault XSD schemasSecurity PolicyAccess PolicyPass-thru Logic & Filters
Customer Customer Mgmt Mgmt
FacadeFacade
IT Operations doesn’t IT Operations doesn’t understand application understand application requirementsrequirements
IT Operations doesn’t IT Operations doesn’t understand application understand application requirementsrequirements
DevelopmentDevelopment IT OperationsIT Operations
Developers don’t Developers don’t understand understand operations policyoperations policy
Developers don’t Developers don’t understand understand operations policyoperations policy
Plan/DesignPlan/DesignPlan/DesignPlan/Design DevelopmentDevelopmentDevelopmentDevelopment TestingTestingTestingTesting DeploymentDeploymentDeploymentDeployment OperationsOperationsOperationsOperations
Challenges Span The IT LifecycleChallenges Span The IT Lifecycle
System System DefinitionDefinition
ModelModel(Future)(Future)
DevelopmentDevelopment IT OperationsIT Operations
Plan/DesignPlan/DesignPlan/DesignPlan/Design DevelopmentDevelopmentDevelopmentDevelopment TestingTestingTestingTesting DeploymentDeploymentDeploymentDeployment OperationsOperationsOperationsOperations
IT Operations doesn’t IT Operations doesn’t understand application understand application requirementsrequirements
IT Operations doesn’t IT Operations doesn’t understand application understand application requirementsrequirements
Developers don’t Developers don’t understand understand operations policyoperations policy
Developers don’t Developers don’t understand understand operations policyoperations policy
Challenges Span The IT LifecycleChallenges Span The IT Lifecycle
Increased communicationIncreased communicationand awarenessand awareness
(Today)(Today)
Plan/DesignPlan/DesignPlan/DesignPlan/Design DevelopmentDevelopmentDevelopmentDevelopment TestingTestingTestingTesting DeploymentDeploymentDeploymentDeployment OperationsOperationsOperationsOperations
IT OperationsIT OperationsDevelopmentDevelopment
IT Operations doesn’t IT Operations doesn’t understand application understand application requirementsrequirements
IT Operations doesn’t IT Operations doesn’t understand application understand application requirementsrequirements
Developers don’t Developers don’t understand understand operations policyoperations policy
Developers don’t Developers don’t understand understand operations policyoperations policy
Challenges Span The IT LifecycleChallenges Span The IT Lifecycle
Design For OperationsDesign For Operations
Services, Messages, Applications, Endpoints
Services, Messages, Applications, Endpoints
XML, Projects, DBs, Classes, Code
XML, Projects, DBs, Classes, Code
Logical Data Center
Logical Data Center
Physical servers & segments
DeploymentUnits
DeploymentUnits
Abstraction/Refinement
Abstraction/Refinement
Constraints
packaged into deployed on
Logical DataCenterLogical DataCenter
Logical system architecture patternsLogical system architecture patterns““Hardened IIS” – metabase settingsHardened IIS” – metabase settings
MSA patternsMSA patternsIdc, edcIdc, edc
Tiered architecture patternsTiered architecture patterns
AspectsAspectsFirewall settingsFirewall settings
Protocol settingsProtocol settings
TransformationsTransformationsValidate against web service application designValidate against web service application design
Transform into implementation SDMTransform into implementation SDM
AgendaAgenda
Complexity in connected systemsComplexity in connected systems
Using modeling to reduce complexityUsing modeling to reduce complexity
Scenario 1 - web services and design Scenario 1 - web services and design for operationsfor operations
Scenario 2 – visualizing codeScenario 2 – visualizing code
Scenario 3 – implementing Scenario 3 – implementing business processesbusiness processes
Microsoft strategy and tools for Microsoft strategy and tools for Visual Studio WhidbeyVisual Studio Whidbey
Code VisualizationCode Visualization
Services, Messages, Applications, Endpoints
Services, Messages, Applications, Endpoints
XML, Projects, DBs, Classes, Code
XML, Projects, DBs, Classes, Code
Logical Data Center
Logical Data Center
Physical servers & segments
DeploymentUnits
DeploymentUnits
Abstraction/Refinement
Abstraction/Refinement
Constraints
packaged into deployed on
AgendaAgenda
Complexity in connected systemsComplexity in connected systems
Using modeling to reduce complexityUsing modeling to reduce complexity
Scenario 1 - web services and design Scenario 1 - web services and design for operationsfor operations
Scenario 2 – visualizing codeScenario 2 – visualizing code
Scenario 3 – implementing Scenario 3 – implementing business processesbusiness processes
Microsoft strategy and tools for Microsoft strategy and tools for Visual Studio WhidbeyVisual Studio Whidbey
DSL-To-DSL MappingsDSL-To-DSL Mappings
Services, Messages, Applications, Endpoints
Services, Messages, Applications, Endpoints
XML, Projects, DBs, Classes, Code
XML, Projects, DBs, Classes, Code
Logical Data Center
Logical Data Center
Physical servers & segments
DeploymentUnits
DeploymentUnits
Abstraction/Refinement
Abstraction/Refinement
Constraints
packaged into deployed on
Business Processes and Entities
Business Processes and Entities
Abstraction/Refinement
Reconciliation
Business Process ImplementationBusiness Process ImplementationBusiness ProcessBusiness Process
Implementation Implementation PatternsPatterns• Scheduled ProcessScheduled Process• Event-based ProcessEvent-based Process• User ProcessUser Process• Rules ProcessRules Process
Content PatternsContent Patterns• New EmployeeNew Employee• Orders to CashOrders to Cash
A Software SchemaA Software Schema
Business Business CapabilitiesCapabilities
Business Business CapabilitiesCapabilities
Manual Manual ProceduresProcedures
Manual Manual ProceduresProcedures
TechnologyTechnologyArchitectureArchitecture
TechnologyTechnologyArchitectureArchitecture
ConstraintsConstraints
ReconciliationReconciliation
Services, Messages, Services, Messages, Applications, EndpointsApplications, Endpoints
Services, Messages, Services, Messages, Applications, EndpointsApplications, Endpoints
XML, Projects, XML, Projects, DBs, Classes, CodeDBs, Classes, Code
XML, Projects, XML, Projects, DBs, Classes, CodeDBs, Classes, Code
Logical Logical Data CenterData Center
Logical Logical Data CenterData Center
Physical servers Physical servers & segments& segments
DeploymentDeploymentUnitsUnits
DeploymentDeploymentUnitsUnits
Abstraction/Abstraction/RefinementRefinement
ConstraintsConstraints
packaged intopackaged into deployed ondeployed on
Business Processes Business Processes and Entitiesand Entities
Business Processes Business Processes and Entitiesand Entities
ReconciliationReconciliation
Abstraction/Abstraction/RefinementRefinement
DSLsDSLsPatternsPatternsProcessesProcessesFrameworksFrameworksComponentsComponentsTransformsTransformsConstraintsConstraintsTest CasesTest Casesetc.etc.
Recipes Build Families Of ApplicationsRecipes Build Families Of Applications
Each Software Schema describes commonalities and variabilitiesEach Software Schema describes commonalities and variabilities
The assets are grouped together and form the software template The assets are grouped together and form the software template within Visual Studiowithin Visual Studio
Variabilities are configured using a variety of mechanisms to Variabilities are configured using a variety of mechanisms to produce a member of the familyproduce a member of the family
Software Schema for .Net eCommerce Software Schema for .Net Marketing Apps
Business Business CapabilitiesCapabilities
Business Business CapabilitiesCapabilities
Manual Manual ProceduresProcedures
Manual Manual ProceduresProcedures
TechnologyTechnologyArchitectureArchitecture
TechnologyTechnologyArchitectureArchitecture
ConstraintsConstraints
ReconciliationReconciliation
Services, Messages, Services, Messages, Applications, EndpointsApplications, Endpoints
Services, Messages, Services, Messages, Applications, EndpointsApplications, Endpoints
XML, Projects, XML, Projects, DBs, Classes, CodeDBs, Classes, Code
XML, Projects, XML, Projects, DBs, Classes, CodeDBs, Classes, Code
Logical Logical Data CenterData Center
Logical Logical Data CenterData Center
Physical Physical servers & servers & segmentssegments
DeploymentDeploymentUnitsUnits
DeploymentDeploymentUnitsUnits
Abstraction/Abstraction/RefinementRefinement
ConstraintsConstraints
packaged intopackaged into deployed ondeployed on
Business Processes Business Processes and Entitiesand Entities
Business Processes Business Processes and Entitiesand Entities
ReconciliationReconciliation
Abstraction/Abstraction/RefinementRefinement
Business Business CapabilitiesCapabilities
Business Business CapabilitiesCapabilities
Manual Manual ProceduresProcedures
Manual Manual ProceduresProcedures
TechnologyTechnologyArchitectureArchitecture
TechnologyTechnologyArchitectureArchitecture
ConstraintsConstraints
ReconciliationReconciliation
Services, Messages, Services, Messages, Applications, EndpointsApplications, Endpoints
Services, Messages, Services, Messages, Applications, EndpointsApplications, Endpoints
XML, Projects, XML, Projects, DBs, Classes, CodeDBs, Classes, Code
XML, Projects, XML, Projects, DBs, Classes, CodeDBs, Classes, Code
Logical Logical Data CenterData Center
Logical Logical Data CenterData Center
Physical Physical servers & servers & segmentssegments
DeploymentDeploymentUnitsUnits
DeploymentDeploymentUnitsUnits
Abstraction/Abstraction/RefinementRefinement
ConstraintsConstraints
packaged intopackaged into deployed ondeployed on
Business Processes Business Processes and Entitiesand Entities
Business Processes Business Processes and Entitiesand Entities
ReconciliationReconciliation
Abstraction/Abstraction/RefinementRefinement
AgendaAgenda
Complexity in connected systemsComplexity in connected systems
Using modeling to reduce complexityUsing modeling to reduce complexity
Scenario 1 - web services and design Scenario 1 - web services and design for operationsfor operations
Scenario 2 – visualizing codeScenario 2 – visualizing code
Scenario 3 – implementing business Scenario 3 – implementing business processesprocesses
Microsoft Strategy and Tools for Microsoft Strategy and Tools for Visual Studio WhidbeyVisual Studio Whidbey
UML And DSLsUML And DSLs
Tools render metamodel as Tools render metamodel as defined by OMGdefined by OMG
Multiple, inter-twined Multiple, inter-twined sub-languages, defined sub-languages, defined by committeeby committee
Extended partially using Extended partially using stereotypes and tagsstereotypes and tags
Syntax and Semantics Syntax and Semantics defined by OMG committeedefined by OMG committee
Limited range of Limited range of diagram stylesdiagram styles
Based on MOF –Based on MOF –implementations in Javaimplementations in Java
Engine can render any Engine can render any metamodel including UMLmetamodel including UML
Each DSL is defined using Each DSL is defined using core model and focused on core model and focused on specific development taskspecific development task
Directly extended with new Directly extended with new types and associationstypes and associations
Syntax and Semantics defined Syntax and Semantics defined by language usersby language users
No limits, though often based No limits, though often based on templateon template
Small core model – Small core model – implementation in CLR implementation in CLR
UML DSL Approach
Visual Studio 2005 Team ArchitectVisual Studio 2005 Team Architect
DSLs for precise developmentDSLs for precise developmentSimplify design and deployment for SOASimplify design and deployment for SOA
Designing and constructing connected Designing and constructing connected applications from Web servicesapplications from Web services
Verify application settings against Verify application settings against logical datacenterlogical datacenter
Code VisualizationCode Visualization
UML tools for documentation UML tools for documentation and drawingand drawing
Need A Designer FrameworkNeed A Designer Framework
For a specific domain it must …For a specific domain it must …Define a metamodel for the abstractionsDefine a metamodel for the abstractions
Define a graphical notationDefine a graphical notation
Define how a synchronization engine Define how a synchronization engine should work with related artifactsshould work with related artifacts
Define constraints between artifactsDefine constraints between artifacts
Be extensibleBe extensible
Making Use Of MetadataMaking Use Of Metadata
Metadata collected in DSLs can be Metadata collected in DSLs can be made available across the life cyclemade available across the life cycle
Source control systemsSource control systems
DebuggersDebuggers
Testing ToolsTesting Tools
Compilers and language editorsCompilers and language editors
Team Architect Key MessagesTeam Architect Key Messages
Reduces complexityReduces complexityVisual design for SOAsVisual design for SOAs
Facilitates communicationFacilitates communicationDesign for operationsDesign for operations
Bridges the communication gap Bridges the communication gap between application development between application development and IT operationsand IT operations
Enables a vibrant partner ecosystemEnables a vibrant partner ecosystemExtensions to the modeling surfaceExtensions to the modeling surface
Further InformationFurther Information
Whitepapers on MSDN, Visual Studio EnterpriseWhitepapers on MSDN, Visual Studio Enterprisehttp://msdn.microsoft.com/vstudio/enterprise http://msdn.microsoft.com/vstudio/enterprise
BlogBloghttp://blogs.msdn.com/keith_shorthttp://blogs.msdn.com/keith_short
Article by Steve Cook from Enterprise Tools Article by Steve Cook from Enterprise Tools Architect TeamArchitect Team
http://www.bptrends.com/publicationfiles/01-04%20COLhttp://www.bptrends.com/publicationfiles/01-04%20COL%20Dom%20Spec%20Modeling%20Frankel-Cook.pdf%20Dom%20Spec%20Modeling%20Frankel-Cook.pdf
Patterns and Practices on MSDNPatterns and Practices on MSDNhttp://msdn.microsoft.com/practices/type/patterns/http://msdn.microsoft.com/practices/type/patterns/
Team System SessionsTeam System SessionsDayDay TimeTime SessionSession TopicTopic
TuesdayTuesday 10:3010:30 DEV200DEV200 General Session: Team SystemGeneral Session: Team System
TuesdayTuesday 12:1512:15 DEVPNL2DEVPNL2 Visual Studio Team System PartnersVisual Studio Team System Partners
TuesdayTuesday 1:301:30 DEV 300DEV 300 Project ManagementProject Management
TuesdayTuesday 1:301:30 ARC 304ARC 304 Bridging the Gap Between IT and Bridging the Gap Between IT and DevDev
TuesdayTuesday 3:153:15 ARC 400ARC 400 Developing SOAsDeveloping SOAs
WednesdayWednesday 8:308:30 DEV 301DEV 301 Software TestingSoftware Testing
ThursdayThursday 1:301:30 DEV 302DEV 302 Advanced DevelopmentAdvanced Development
ThursdayThursday 3:153:15 DEV 303DEV 303 Enterprise-Class Source ControlEnterprise-Class Source Control
FridayFriday 9:009:00 ARC 312ARC 312 Designing for DeploymentDesigning for Deployment
FridayFriday 12:1512:15 DEVPNL5DEVPNL5 Implementing Software ProcessesImplementing Software Processeshttp://msdn.microsoft.com/vstudio/enterprisehttp://msdn.microsoft.com/vstudio/enterprise
Assess your skillsAssess your skillsTake an eLearning course Take an eLearning course Subscribe to Microsoft TechNet Subscribe to Microsoft TechNet Get the latest information on IT Pro and Developer Books to purchase Get the latest information on IT Pro and Developer Books to purchase online or at your local bookstoreonline or at your local bookstoreFind the course right for you and a Microsoft Certified Partner for Find the course right for you and a Microsoft Certified Partner for Learning Solutions in your areaLearning Solutions in your areaLearn about the Microsoft certifications that can enable and advance Learn about the Microsoft certifications that can enable and advance your careeryour career
www.microsoft.com/learningLearn more; Go FurtherLearn more; Go Further
Knowledge Needed; Knowledge AppliedKnowledge Needed; Knowledge Applied
© 2004 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.