views:

265

answers:

3

Hi,

I've just started playing with domain-specific tools development, and I'm playing with Visual Studio SDK DSL Tools. However, I heard that Microsoft have another initiative into domain-specific development called "Oslo".

My impression is that DSL Tools is focused on graphical domain-specific languages, whereas Oslo is focused on textual one, but I'm not sure about it.

May someone pointing out what are the differences between "DSL Tools" and "Oslo"?

+4  A: 

Oslo and the DSL Toolkit

DSL Tools and Oslo

Those MSDN blogs' posts answer that question.

Moayad Mardini
They post the microsoft-version, though.
Lars Corneliussen
+2  A: 

You're correct. The DSL Toolkit is used to create a graphical DSL designer. This designer can then run inside of Visual Studio (or inside your own host program) in order to create instances of the DSL model. In the context of Visual Studio, these instances can then be used to generate code or other text-based artifacts, using the T4 text templating engine built into Visual Studio.

Note also that the designer does not need to have a graphical design surface. Once the domain model has been created, you can populate it from a hierarchical explorer view, or through code. One of the things generated for you from your domain model is a strongly-typed API for accessing instances of the model.

John Saunders
+1  A: 

The main two differences are the vision and the division.

The vision, because DSL Tools focus building domain-specific development environments that run inside Visual Studio or a Visual Studio Shell, while Oslo wants to enable easier data programming and as a side product also offers tools for building DSLs that help you to specify your data in self-made languages.

The division, because the two investments are made in different divisions, hence totally different teams. We hope, and they say, the teams talk to eachother, but no one really knows.

For the future it's most likely that Oslo (in two weeks no longer called Oslo) will provide the infrastructure for DSL Tools (metamodel, database, query-language). At least we can expect some integration between the two.

Lars Corneliussen