I finally managed to put this “thing” to work.
I’ve been struggling with this integration service, on my free time, since a couple of weeks ago. Definitely this is not a well documented feature nevertheless being only a Power Toy. There is only a readme document on the installation folder and less more.
I’m starting here a series of posts related to DSL integration. For now I let you with a brief introduction to this subject and in the next posts I’ll start with the bits and bytes.
DSLs are generally relatively small, highly focused languages used to model and solve certain clearly identifiable problems that various developer roles may have to tackle as part of the software development lifecycle.
Nevertheless, in many cases, architects and developers need to be able to navigate through various viewpoints, i.e. through different areas concerns and across various abstraction levels.
Navigation across viewpoints and transformation of related artifacts imposes new requirements on DSL design, especially in terms of integration among them. Perhaps the most important is the ability to refer to model elements of one language from a different one.
For example, let’s assume the development a Service Oriented Architecture (SOA) based application using two different DSL, namely Business Message Type DSL and Business Entities DSL. While using the Business Message Types DSL, the message designer may need to refer to instances of business entities, specified using the Business Entities DSL, in order to define what is the payload for any given message type.
The current release of DSL Tools does not support any integration across different DSLs. More specifically, it’s not natively possible to refer from the model elements or properties in a language to those modeled and instantiated in another one.
However, that level of integration can be programmatically obtained.
The Visual Studio DSL Integration Service (DIS) is a service added to Visual Studio by the Microsoft.VisualStudio.Modeling.Integration package, whose goal and main feature is to support referencing of model elements across different DSLs.
That’s all for today don’t miss the next series of posts.