arc411 domain specific language tools for model-driven development in microsoft visual studio 2005...

30
ARC411 ARC411 Domain Specific Domain Specific Language Tools For Language Tools For Model-Driven Model-Driven Development In Development In Microsoft Visual Microsoft Visual Studio 2005 Studio 2005 Jochen Seemann Jochen Seemann Program Manager Program Manager Enterprise Tools Enterprise Tools Microsoft Corporation Microsoft Corporation

Upload: stanley-sullivan

Post on 19-Jan-2016

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft

ARC411ARC411Domain Specific Language Domain Specific Language Tools For Model-Driven Tools For Model-Driven Development In Microsoft Development In Microsoft Visual Studio 2005 Visual Studio 2005 Jochen SeemannJochen SeemannProgram ManagerProgram ManagerEnterprise ToolsEnterprise ToolsMicrosoft CorporationMicrosoft Corporation

Page 2: ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft
Page 3: ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft

Visual LanguagesVisual Languages

ImportantImportant

ShapesShapes

Links, ends, styleLinks, ends, style

LabelsLabels

NestingNesting

Layout, routingLayout, routing

property

Corona

Corona

Corona

label

Shape

GroupBase

members

waiting

runningpause begin

stop

playing

+v

0v0.7CR

R

C

0.1R

C

R0.1R

Page 4: ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft

Domain Specific Languages In Domain Specific Languages In The Context Of The DSL ToolsThe Context Of The DSL Tools

Visual Languages… Visual Languages… To understand or define requirements To understand or define requirements

To understand or define designTo understand or define design

To generate parts of the solutionTo generate parts of the solution

To implement design patterns for To implement design patterns for specific frameworks and architecturesspecific frameworks and architectures

To customize applications and To customize applications and application componentsapplication components

To visualize existing systemsTo visualize existing systems

Page 5: ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft

Building A Designer For Building A Designer For Visual StudioVisual Studio

ToolboxToolbox

PropertyPropertyBrowserBrowser

ExplorerExplorer

ValidationValidation

Drawing surface Drawing surface with domain with domain

specific notationspecific notation

Page 6: ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft

Visual Studio Team SystemVisual Studio Team System

Change Management

Work Item Tracking

Reporting

Project Portal

Visual StudioTeam Foundation Server Integration Services

Project Management

Pro

ces

s a

nd

Arc

hit

ect

ure

P

roc

ess

an

d A

rch

ite

ctu

re

Gu

idan

ce

Gu

idan

ce

Dynamic Code Analyzer

Visual Studio Team Edition

Software Architects

Static Code Analyzer

Code Profiler

Unit Testing

Code Coverage

Team Explorer (includes Team Foundation Server CAL)

Visual Studio Professional Edition

Load Testing

Manual Testing

Test Case Management

Visual Studio Team Edition

Software DevelopersVisual Studio Team Edition

Software Testers

Vis

ua

l Stu

dio

Ind

us

try

V

isu

al S

tud

io In

du

str

y

Pa

rtn

ers

Pa

rtn

ers

Team Build

Visio for Enterprise Architects (in MSDN Premium Subscription)

Modeling PlatformModeling PlatformDSL ToolsDSL Tools

Application Designer

System Designer

Logical Datacenter Designer

Deployment Designer

Class Designer (in Visual Studio Standard Edition and higher)

Page 7: ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft

A SDK To Build Visual A SDK To Build Visual Modeling ToolsModeling Tools

VisualStudio2005

Microsoft Modeling PlatformMicrosoft Modeling PlatformIn Visual StudioIn Visual Studio

DistributedDistributedSystemsSystems

DesignersDesigners

ClassClassDesignerDesigner

DSL Tools for Visual StudioDSL Tools for Visual Studio

Your newYour newDesignerDesigner

Page 8: ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft

Microsoft Modeling PlatformMicrosoft Modeling PlatformIn Visual StudioIn Visual Studio

Modeling PlatformModeling Platform

Domain ModelDomain ModelFrameworkFramework

Design SurfaceDesign SurfaceFrameworkFramework

TemplateTemplateEngineEngine

ShellShellFrame-Frame-workwork

ValidationValidationFrame-Frame-workwork

In-Memory graph database In-Memory graph database with rich services (e.g., with rich services (e.g.,

transactions, serialization…) transactions, serialization…) and queries and queries

Extensible drawing Extensible drawing surface with surface with

support for routing support for routing and auto-layoutand auto-layout

Artifact Artifact generation generation

Constraint checking Constraint checking and guides user to and guides user to

resolve issuesresolve issues

Visual Studio UI Visual Studio UI Integration for Integration for

components like components like Toolbox, MenusToolbox, Menus

Page 9: ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft

A Simple Workflow LanguageA Simple Workflow Language

AttendDSL Session

Try outDSL Tools in Hands-On Lab

TechEdParty

Tonight

Fascinated Fascinated by DSL Toolsby DSL Tools

Already Already ThirstyThirsty

Too lateToo late

Thirsty Thirsty nownow

Page 10: ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft

Define Domain Model Define Domain Model Task ClassTask Class

AttendDSL Session

Try outDSL Tools in Hands-On Lab

TechEdParty

Tonight

Page 11: ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft

Define Domain Model Define Domain Model InheritanceInheritance

AttendDSL Session

Try outDSL Tools in Hands-On Lab

TechEdParty

Tonight

Page 12: ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft

Define Domain Model Define Domain Model RelationshipsRelationships

AttendDSL Session

Try outDSL Tools in Hands-On Lab

TechEdParty

Tonight

Page 13: ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft

Define ShapeDefine Shape

AttendDSL Session

Rounded RectangleRounded Rectangle Outline color: blackOutline color: black Fill color: gray Fill color: gray

Text DecoratorText Decorator Position: centerPosition: center

Page 14: ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft

Define Connector Define Connector AppearanceAppearance

AttendDSL Session

Try outDSL Tools in Hands-On Lab

Text DecoratorText Decorator Position: Source, TopPosition: Source, Top

ConnectorConnector solidsolid blackblack filled arrowheadfilled arrowhead

Fascinated Fascinated by DSL Toolsby DSL Tools

Page 15: ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft

Define ConnectorDefine ConnectorVisual SyntaxVisual Syntax

AttendDSL Session

Try outDSL Tools in Hands-On Lab

TechEdParty

Tonight

Page 16: ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft

Define MappingDefine Mapping

AttendDSL Session

ShapeShape Domain ModelDomain Model

Page 17: ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft

CustomCustomBehaviorBehavior

Building A DesignerBuilding A Designer

NotationNotationDefinitionDefinition

MappingMappingDefinitionDefinition

DomainDomainModelModel

DefinitionDefinition

Code generated Code generated by DSL Toolsby DSL Tools

Validation/Validation/ConstraintsConstraints

Custom Custom XMLXML

SerializationSerialization

Code/Code/ArtifactArtifact

GenerationGeneration

Custom CodeCustom Code(SDK)(SDK)

Page 18: ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft

First Example First Example Building a simple Building a simple workflow designerworkflow designer

Define a domain modelDefine a domain model Define shapesDefine shapes Define mappingDefine mapping Generate codeGenerate code Build designerBuild designer Run designerRun designer

Page 19: ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft

Generators Based On TemplatesGenerators Based On Templates

standardStuff;standardStuff;standardStuff;standardStuff;<# foreach Task t in this.Workflow.Tasks<# foreach Task t in this.Workflow.Tasks {{#>#>

class <#= t.Name #> : TaskBaseclass <#= t.Name #> : TaskBase{ … }{ … }

<# }<# }#>#>moreStandardStuff; …moreStandardStuff; …

prospectinitiated

prospective sale

empty

overflow

Sat

weekly

accumulator4

£20

1 week delay

£30

prospectcancels

salesperson’saccount31

monthly

bank a/c

pay

7

£

standardStuff;standardStuff;standardStuff;standardStuff;class DoFirst : TaskBase {…}class DoFirst : TaskBase {…}class DoNext : TaskBase {…} class DoNext : TaskBase {…} ……

TemplateTemplate

Generated Generated CodeCode

ModelModel

QueriesQueries

Page 20: ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft

Software Factories Software Factories Multiple DesignersMultiple Designers

prospectinitiated

prospective sale

empty

overflow

Sat

weekly

accumulator4

£20

1 week delay

£30

prospectcancels

salesperson’saccount31

monthly

bank a/c

pay

7

£

Model 1 – FlowModel 1 – Flow

Model 2 – EntitiesModel 2 – Entities

7

£

<xxx yyy> <zzz /></xxx>

Model 3 – ControlModel 3 – Control

Flow aspect Flow aspect codecode

Control aspect Control aspect codecode

Entities aspect Entities aspect codecode

Page 21: ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft

Generating Artifacts Generating Artifacts From ModelsFrom Models

Define a simple html reportDefine a simple html report Create a reportCreate a report

Page 22: ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft

Example: Entity DesignerExample: Entity Designer

Page 23: ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft

Example: Utility For VSTSExample: Utility For VSTS

Page 24: ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft

Second Example Second Example Building a business entity Building a business entity designer with code generationdesigner with code generation Review domain modelReview domain model Review shape definitionReview shape definition Build and run designerBuild and run designer Build sample modelBuild sample model Review code generationReview code generation Generate WinForm code for business entityGenerate WinForm code for business entity Open WinForm for business entityOpen WinForm for business entity

Page 25: ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft

What’s Next?What’s Next?

DSL Tools are in an early stageDSL Tools are in an early stageCTP releases for Visual Studio 2005 availableCTP releases for Visual Studio 2005 availableContinue to release every 2-3 months with Continue to release every 2-3 months with growing feature setgrowing feature set

Designer SDKDesigner SDKModel Data Access Model Data Access Model Validation Model Validation UI and Designer BehaviorUI and Designer BehaviorCustom XML SerializationCustom XML Serialization

Richer design experience for Domain Models, Richer design experience for Domain Models, Notation and MappingNotation and MappingMultiple Views and Multiple ModelsMultiple Views and Multiple ModelsDesigner Deployment SupportDesigner Deployment Support

Page 26: ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft

Microsoft Domain Specific Language Microsoft Domain Specific Language (DSL) Tools For Visual Studio 2005(DSL) Tools For Visual Studio 2005

Generates executable designer based Generates executable designer based on description of the “Domain Specific on description of the “Domain Specific Language” (DSL) used in the designerLanguage” (DSL) used in the designer

Generated DesignerGenerated DesignerIs a complete usable tool (fully functional, Is a complete usable tool (fully functional, undo, persistence/XML file support… )undo, persistence/XML file support… )

Is starting point of designer development Is starting point of designer development (SDK, artifact generation… )(SDK, artifact generation… )

Page 27: ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft

Community And Resources Community And Resources

DSL Tools HomepageDSL Tools Homepage http://lab.msdn.microsoft.com/teamsystem/workshop/dsltools/

DSL Tools Community ForumDSL Tools Community Forum http://forums.microsoft.com/msdn/ShowForum.aspx?ForumID=61

Software Factorieshttp://msdn.microsoft.com/architecture/overview/softwarefactories/

Page 28: ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft
Page 29: ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft

Your FeedbackYour Feedbackis Important!is Important!

Please Fill Out a Survey forPlease Fill Out a Survey forThis Session on CommNetThis Session on CommNet

Page 30: ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft

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