Quest in Time

Monday, January 24, 2005

Visual Studio DSL Metamodel

Hunting through the MSDN blogs relating to Visual Studio 2005 (VS2005) and DSL has begun to reveal useful stuff. From this point forwards I'll be focusing on DSL as it is being implemented in VS2005.

The basis for Domain Specific Languages is that each problem or solution domain should have a specific modeling language. In VS2005 Microsoft (MS) are providing a toolkit, not just of MS defined domains and languages, but allowing new DSL to be defined. DSL are defined in terms of models which are themselves defined in DSL.

This parallels the relationship between UML and the UML Metamodel which is itself described in UML. Thus I will refer to DSL definitions as conforming to the VS2005 DSL Metamodel, though I have not seen this term coming from MS.

Since VS2005 DSL is extensible in terms of its Metamodel, it is this that limits the DSL that may be defined. I think that this is the basis for most of the arguments between the UML and MS DSL camps, so that's where I'm concentrating my efforts at the moment.

Microsoft have issued a couple of walkthroughs related to this metamodel, unsurprisingly documented in VS DSL, my first task will be to translate these into UML for comparison. As far as I can tell I won't be able to do the reverse (i.e translate the UML metamodel into VS DSL), but more of this later.