Jochen Seemann

  1. 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.
  2. New set of DSL tools being launched to the web this afternoon.
  3. 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.
  4. 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.
  5. A DSL isn’t just a drawing package. Needs to be able to validate and explain issues to user.
  6. Microsoft Modeling Platform in Visual Studio 2005
    1. Domain model framework
    2. Design surface framework
    3. Template engine
    4. Validation framework
    5. Shell Framework
  7. Building a DSL, tools for:
    1. Step 1 – Define the domain model. (Metamodeling.)
    2. Step 2 – Define the notation. (Toolkit understands shapes and decorators. Notation defined in XML file.)
    3. Step 3 – Defined visualization of domain model via notation elements.
  8. 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.
  9. Need to create custom code for:
    1. Code and artifact generation.
    2. Custom XML serialization.
    3. Validation and constraints.
    4. Custom behavior.
  10. 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.
  11. Expects an eco-system of pre-built templates, and that end users will tweak the templates.
  12. 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.
  13. 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.
  14. 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.
  15. 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.
  16. 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.
  17. Download at