Today, we are making available the first installment of our Domain-Specific Language tools as a technical preview. Please note that this is work in progress and not a beta or even a final release. To put this all in context, let’s examine how we got here ...
Developers who are using UML, data modeling or business process modeling tools are often faced with the need to personalize or customize these tools. They turn them into domain-specific, company-specific and even project-specific modeling tools. They modify what a diagram shows and what it means, and they add code generators, report generators, and functionality to do useful things with their models. Often they will write custom code to import and export their models. In some cases, they even devise their own interpretation of standard languages like UML. But in other cases, a developer may simply be reusing a pattern of code with a template language or XML schema for which he writes a code generator for specific projects. Developers who are interested in using models and generators like this are indulging in model-driven development as a way to achieve higher productivity. We believe that for this development approach to be successful, it is necessary to enable developers, both tool builders and tool users, to create their own custom and problem-specific modeling tools with little effort.
Our 'Domain-Specific Language (DSL) Concepts Editor' is the first step along this path. Today, you can download a tool that you can use to describe the concepts in a problem domain as the basis for a modeling tool or graphical designer. It is itself a graphical tool built on top of our designer platform and it is completely integrated into Visual Studio. For example, if you need a business process modeling tool, this editor allows you to describe the concepts specific to the way you like to model your business processes. If you are building a statechart tool, you can describe what a state is, the properties a state has, what kinds of states exist, how transitions between states are defined, etc. Of course, the notion of a statechart used to describe the status of contracts in an insurance company and the notion of a statechart used to describe user interaction amongst pages on a website are similar, but different. With the ‘DSL Concepts Editor’ you can specify exactly the definition of statechart concepts you need in your tool.
Our intention is to provide you with tools to build graphical designers that are focused on specific aspects of application building. However, this does not necessarily mean that you need to invent entirely new notations. You can use the same well-known notations for statecharts in these custom tools, but you will have the freedom to extend or redefine the notation, and describe precisely what the notation means in your problem domain. The 'DSL Concepts Editor' also enables you to define concept models that are not necessarily used in graphical designers or modeling tools. We will explain these scenarios and how this can be achieved in a white paper later this year.
Today is the first step. Over the next few months, we will make more white papers, documentation and additional tools available.