emea beat schwegler architect microsoft emea hq ingo rammer principal consultant thinktecture
DESCRIPTION
Factory Ingredients Patterns Provide general solutions to common problems Frameworks Provide supporting and reusable assets Concrete e.g..NET Fx Abstract e.g. Zachman Framework Models Provide a formal way to describe a specific problem Are able to execute or produce formal artifacts Methodologies Define a codified set of recommended practices Tools Support creating, maintaining and debuggingTRANSCRIPT
EMEA
Beat Schwegler ArchitectMicrosoft EMEA HQhttp://blogs.msdn.com/beatsch/
Ingo RammerPrincipal Consultantthinktecturehttp://www.thinktecture.com/
A Software Factory to Build Factories
Factory Ingredients
PatternsProvide general solutions to common problems
FrameworksProvide supporting and reusable assets
Concrete e.g. .NET FxAbstract e.g. Zachman Framework
ModelsProvide a formal way to describe a specific problemAre able to execute or produce formal artifacts
MethodologiesDefine a codified set of recommended practices
ToolsSupport creating, maintaining and debugging
CRUD Data Application
Customer Store
Factory Composability
Smart Client
GAT4WS UIP
Data Service
GAT4WS DAL
Database
http://msdn.microsoft.com/practices
GuidesE.g. Application Interoperability: Microsoft .NET and J2EE
Reference and baseline implementationsE.g. Applied Integration Baseline Reference Implementation
Application blocksE.g. Enterprise Library
PAG
Guides
Consist of written guidance25+ guides cover…
PatternsApplication architectureIntegrationPerformanceSecurity …
E.g. Application Architecture
User Interface Components
User Process Components
Service Interfaces
BusinessWorkflows
BusinessComponents
BusinessEntities
Data Access LogicComponents Service Agents
Data Source Service
Secu
rity
Ope
ratio
nal M
anag
emen
t
Com
mun
icat
ion
Reference and Baseline Implementations
Are executable samples and baselinesApplied Integration Baseline Reference ImplementationWS-I Basic Security Profile Reference Implementation
More baselines to come…Smart client baseline…
Application Blocks
Reusable source code components that provide proven solutions14+ blocks cover…
Data accessLoggingUser interface processComposite user interfaces …
Enterprise Library
A consistent set of application blocksCaching Application Block Configuration Application BlockData Access Application BlockCryptography Application BlockException Handling Application BlockLogging and Instrumentation Application BlockSecurity Application Block
Assets of a SF Template
GuidelinesPatternsTemplatesWizardsLibrariesFrameworksTests
LanguagesDesignersConfigurations ResourcesSchemasHelp…
Assets of a SF Template
GuidelinesPatternsTemplatesWizardsLibrariesFrameworksTests
LanguagesDesignersConfigurations ResourcesSchemasHelp…
VSTS Support for Building SFs
DSL ToolkitProduct line development tools
Schema designer, templates
Life cycle development tool suite integrationMethodology templates, dynamic help
Visual Studio SDK (VS SDK)Guidance Automation Toolkit (GAT)
Integration with MSF Agile and FormalDistributes process fragments across software factory schemaCustomizes guidance for target application type
Product development toolsModeling platform, configuration editor
Guidance Automation Extension (GAX)
VSTS Support for Using SFs
GAX
Install
GAT
Install
GuidancePackage
Add, Remove
Test
Guidance Author(Architect)
GuidanceConsumer
(Developer)
GAT/GAX
Recipes & Actions
ActionsAtomic operation on a VS solution item
Recipesexecute one or a sequence of actions define how to collect arguments for actionsdefine how the user can “trigger” recipe execution
recurring or non-recurring bound or unbound
Visual Languages
ImportantShapesLinks, ends, styleLabelsNestingLayout, routing
propertyCorona
Corona
Corona
labelShape
GroupBase
members
waiting
runningpause begin
stop
playing
+v
0v0.7CR
R
C
0.1R
C
R0.1R
Language Types
Natural languagesDifficult to process by machinesE.g. English, music, art, …
Formal languagesDesigned for machine processingE.g. C#, SQL, XML, …
Possible Representation of Concrete Syntax
ToolboxToolbox
PropertyPropertyBrowserBrowser
ExplorerExplorer
ValidationValidation
Drawing surface Drawing surface with domain with domain
specific notationspecific notation
Assets of a SF Template
GuidelinesPatternsTemplatesWizardsLibrariesFrameworksTests
LanguagesDesignersConfigurations ResourcesSchemasHelp…
SDK To Build Visual Modeling Tools
VisualStudio2005
Microsoft Modeling PlatformMicrosoft Modeling PlatformIn Visual StudioIn Visual Studio
DistributedDistributedSystemsSystems
DesignersDesignersClassClass
DesignerDesigner
DSL Tools for Visual StudioDSL Tools for Visual Studio
Your newYour newDesignerDesigner
Microsoft Modeling PlatformIn Visual Studio
Modeling Platform
Domain ModelFramework
Design SurfaceFramework
TemplateEngineShell
Frame-work
ValidationFrame-work
In-Memory graph database with rich services (e.g., transactions,
serialization…) and queries
Extensible drawing surface with support for routing and auto-
layout
Artifact generation
Constraint checking and guides user to resolve
issues
Visual Studio UI Integration for
components like Toolbox, Menus
Creating a Language for Creating a Language for simple Use Case Diagramssimple Use Case Diagrams
DSLDSL
Summary
Automated guidance is a key pillar of Software FactoriesThe VS 2005 modeling platform and the DSL Toolkit enable the use and creation of formal languagesSoftware Factory templates glue the ingredients together
© 2004 Microsoft Corporation. All rights reserved.© 2004 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.