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

Post on 19-Jan-2016

216 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

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

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

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)

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

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

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

Define Domain Model Define Domain Model Task ClassTask Class

AttendDSL Session

Try outDSL Tools in Hands-On Lab

TechEdParty

Tonight

Define Domain Model Define Domain Model InheritanceInheritance

AttendDSL Session

Try outDSL Tools in Hands-On Lab

TechEdParty

Tonight

Define Domain Model Define Domain Model RelationshipsRelationships

AttendDSL Session

Try outDSL Tools in Hands-On Lab

TechEdParty

Tonight

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

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

Define ConnectorDefine ConnectorVisual SyntaxVisual Syntax

AttendDSL Session

Try outDSL Tools in Hands-On Lab

TechEdParty

Tonight

Define MappingDefine Mapping

AttendDSL Session

ShapeShape Domain ModelDomain Model

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)

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

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

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

Generating Artifacts Generating Artifacts From ModelsFrom Models

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

Example: Entity DesignerExample: Entity Designer

Example: Utility For VSTSExample: Utility For VSTS

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

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

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… )

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/

Your FeedbackYour Feedbackis Important!is Important!

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

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

top related