Sign in
.NET Banana
Random stuff by Geoff Snowman
Translate This Page
Translate this page
Powered by
Microsoft® Translator
Options
Blog Home
Share this
RSS for posts
Atom
RSS for comments
Search
Tags
Book Reviews
Community
Database
Musings
My Life
Pages
PDC05
Random Technology
Archive
Archives
June 2006
(1)
April 2006
(2)
February 2006
(1)
January 2006
(3)
November 2005
(1)
October 2005
(10)
September 2005
(18)
June 2005
(1)
January 2005
(2)
December 2004
(22)
November 2004
(1)
October 2004
(7)
September 2004
(35)
August 2004
(16)
June 2004
(7)
May 2004
(13)
April 2004
(29)
March 2004
(43)
February 2004
(24)
January 2004
(15)
Domain Specific Languages Session Notes
MSDN Blogs
>
.NET Banana
>
Domain Specific Languages Session Notes
Domain Specific Languages Session Notes
MSDNArchive
15 Sep 2005 3:24 PM
Comments
2
Jochen Seemann
Vision: Support visual domain-specific languages (DSLs) that are specific to a problem. Imagine writing a Word doc describing a house, then giving it to a builder. You would get all the same problems that affect software projects.
New set of DSL tools being launched to the web this afternoon.
DSLs in siftware life cycle. Visual languages for requirements, to define design, to generate solutions, to specify design patterns, to customize applications, to visualize existing systems. So many needs, can’t meet with one visual language, triggered idea to allow designers for DSLs. Needs to be easy to implement designer or too hard to use DSLs.
Many similarities between designers for DSLs. All have drawing surface, property windows, toolbox, model explorer. These are different for each DSL, but all DSLs have them.
A DSL isn’t just a drawing package. Needs to be able to validate and explain issues to user.
Microsoft Modeling Platform in Visual Studio 2005
Domain model framework
Design surface framework
Template engine
Validation framework
Shell Framework
Building a DSL, tools for:
Step 1 – Define the domain model. (Metamodeling.)
Step 2 – Define the notation. (Toolkit understands shapes and decorators. Notation defined in XML file.)
Step 3 – Defined visualization of domain model via notation elements.
Works for bigger DSLs, e.g. there’s a sample that resembles a UML class diagram. Benefit of following this approach is that it also creates a formal definition of the DSL.
Need to create custom code for:
Code and artifact generation.
Custom XML serialization.
Validation and constraints.
Custom behavior.
DEMO: Using Visual Studio 2005 with DSL toolkit beta that ships this week. Wizard for DSL creation. Today, tool generates big XML file. Later, will use DSL for generating this file. CTRL F5 to fire up designer in new instance of Visual Studio. Automatically get designer features like zoom and connector routing. Added a property to domain model graphically. Auto-creates domain-specific designer source code. Property shows up in designer.
Expects an eco-system of pre-built templates, and that end users will tweak the templates.
Most people using UML use more than one UML diagram. More powerful than creating one designer is creating a suite of designers for multiple diagrams built on a single model. Many viewpoints onto an application, such as business requirements, business process, orchestration design, application design. If you have a collection of designers, perhaps you can build a software factory for a real-world application.
DEMO: Two designer packages working together. Use case designer and activity designer. Prototype tool for mapping use case designer to activity diagram. Once data available, can run impact analysis etc. against mapping data.
DEMO: Consider designing a DSL for the states in the life of a rental car. Took about 20 minutes to create based on downloaded activity template. Looks like an activity diagram, but also has specific properties like elapsed time for car cleaning, car damage report, etc. Use gang of four state pattern to generate code. Can navigate from DSL diagram to class diagram to code.
DEMO: EDS. Took existing code generator framework for rapid development to generate code from entity model specified in designer. Showed customer having orders in designer, and generates SQL database, C# object model, data access layer, etc. Objects have properties based on properties created in designer, stored procs written to do CRUD on modeled entities. Generates database containing random data and unit tests that can run in Team System. EDS excited about ability to build designers, reducing time to market.
CTP for toolkit on web today for beta 2 of VS 2005. CTP for VS 2005 RTM shortly after VS ships. RTW for Version One expected first quarter of 2006. Version Two planned for next version of Visual Studio, implements Designer Integration Framework.
Download at
http://lab.msdn.microsoft.com/teamsystem/workshop/dsltools/
2 Comments
PDC05
Blog - Comment List MSDN TechNet
Comments
Loading...
Leave a Comment
Name
Comment
Please add 1 and 5 and type the answer here:
Post