Search Wiki:

What is new in the DSL Tools for Visual Studio 2010

What are DSL Tools?

The Domain Specific Language (DSL) Tools enable architects and developers to rapidly create and distribute their own custom model editors with a forms-based or graphical (using boxes and lines) user experience. The editors (sometimes called designers) are hosted in Visual Studio. T4 technology (Text Templating Text Transformation) can be used to generate textual artefacts from models.

The DSL Tools runtime and the DSL SDK

Visual Studio 2010 ships with the DSL Tools and T4 runtime in the box in every SKU since it is used by other tools in Visual Studio, such as the Linq to SQL designer. A DSL Tools authoring experience is shipped separately and depends on and exploits features in the Visual Studio SDK. This is the DSL SDK. This is a slight departure from Visual Studio 2008 where DSL Tools authoring shipped inside the VS SDK. Shipping separately gives us more flexibility on when we ship, in particular allows us to make more frequent improvements. We intend to make DSL Tools authoring (named DSL SDK) available from the Visual Studio Gallery ( The DSL SDK can be accessed, once installed from %Program Files%\Microsoft Visual Studio 2010 Beta2 SDK\VisualStudioIntegration\Tools\DSLTools

What is new in DSL Tools for Visual Studio 2010 Beta?

In Visual Studio 2010, the F5 experience is improved, and deployment of a DSL considerably simplified, exploiting the extension manager in the Visual Studio platform and the new facilities in the Visual Studio SDK top create a VSIX package which is a simple zip archive that unpacks itself into the User’s extensions folder.

Visual Studio 2010 Beta also brings 11 new DSL features:
  1. Different models can now interact with each other, (and with Visual Studio Team System Architecture UML designers), using the ModelBus. A DSL author can choose to generate a ModelBus adapter, that will expose his model to other models or tools.
  2. Databinding support has been added, allowing Windows.Forms and WPF form-based designers to be created by binding a standard winform or WPF-based UI directly to DSL models. This enables developers to quickly create designers such as the .ResX or .settings designers in Visual Studio. (In Beta2 we improved the form-based DSL templates).
  3. It is now possible to have completely or partially read only models, which can be used for instance by reviewing and commenting tools.
  4. A number of UI enhancements have been added, including :
    1. moveable decorator for connectors,
    2. sticky toolbox items (when the user double-clicks on an item in the toolbox,it’s not necessary to return to the toolbox for repeated applications of the tool),
    3. quick navigation and editing of compartments with the keyboard
    4. Copy and paste of diagram elements to images (in Bitmap and .wmf/emf)
    5. Copy and paste of model elements in or between diagrams. In Beta2, this was also applied to the Dsl Designer so that you can easily refactor your models!
  5. The notion of DslLibrary has been introduced. This enables factorizing and componentizing DSLs (for instance having several domain models have the same base-domain class). (New in Beta2): There is a new Dsl template for this and we can dynamically import libraries into a language during language authoring time. The authoring experience includes: loading libraries through dsl explorer, unload libraries through dsl explorer, validation warnings for circular dependencies between dsl libraries and language, validation warnings Detects broken imports)
  6. The Domain Model Extensibility enables third parties to extend a DSL after deployment (See a sample's documentation and source code)
  7. The DslDesigner itself can be extended both using the Domain Model Extensibility, and using a simpler MEF extensibilty. You can thus add domain properties, rules, but also now commands, gestures, validation to the Dsl designer if you wish (New in Beta2)
  8. T4 is now independant on the DSL Tools (you have T4 in Visual Studio and do not need to install the DSL Tools any longer to benefit from it). However, the DslSdk contains msbuild rules and tasks for T4 code-generation at build time
A migration tool is included to help DSL authors migrate their existing DSLs from Visual Studio 2008 and the associated VSSDK. (For more details, see the documentation and a video)

Last edited Nov 9 2009 at 9:55 AM  by jmprieur, version 10
Page view tracker