Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Microsoft Visual Studio SDK DSL Tools - Any serious takers?

We are considering Microsoft DSL toolkit for creating some abstract designers. I already did some POCs, but would like to get some opinions on the same.

Any one here to share their experiences working with Microsoft DSL Toolkit and T4? Also, any pointers to open source DSL projects will help - Eg. Microsoft Service Factory modeling edition is heavily relying on DSL toolkit.

As OSLO/Quadrant will take some time to get released, I think the only option we have is to rely on Microsoft DSL designer. (See Kieth's blog on the same)

Also, here is some information I already have on DSL:

1 - A Nice Lab in MSDN on DSL tools

2 - A List of Projects in Codeplex using DSL toolkit

like image 287
amazedsaint Avatar asked Dec 15 '08 19:12

amazedsaint


3 Answers

We have done considerable work with the DSLs and have a number of them for in house and client based consultant use, though it has not me who has done most work with them. Once you have ironed out the modeling(no small feat) I would say that these are great tools.

I cannot point you at any open source projects unfortuanetly, and I will add that investment in getting a non trivial DSL up and running with is quite large, however if you get them right then the productivity boost is impressive.

edit - after a few years experience I make the following observations:

  1. The VS DSLs have bad visual performance large diagrams, you need fold the model elements away (hide/show)
  2. large diagrams with many interconnecting lines are hard to navigate (layouts are hard)
  3. Large Models perform adequately for code gen etc, with the time taken mostly on deserialisation (as expected)
  4. Model comparison is difficult due to the large number of GUIDs
  5. A good developer experience requires a lot of development over the out of the box properties dialogs.
  6. Models can be encrypted to protect IP, this makes comparison later extremely hard (but this is true for all encrypted files.)
like image 84
Preet Sangha Avatar answered Oct 14 '22 08:10

Preet Sangha


In addition to the above, the NORMA tool for Object-Role Modeling is built on the DSL Tools. It's a very sophisticated example of what can be done with them, and demonstrates using XML Transforms for model transformation and code generation.

like image 2
John Saunders Avatar answered Oct 14 '22 08:10

John Saunders


I have looked at the use of the visual studio DSL toolkit. Ultimately, I found those tools to be far to constricting. To require a GUI, without any ability to easily describe an underlying textual grammar, just seems inadequate to me. I require the ability to easily use the DSL without a GUI.

Oslo seems to be going in a very strange direction, storing all metadata for the DSL in a SQL DB. That just seems extraneous to me, and certainly can slow things down, especially if you want fast IDE integration. Admittedly I have not looked deeply into it, so it may be better than my impression of it.

As an aside, I recently implemented a DSL using Antlr. You can find my post as a response to a question on SO about it here

like image 4
Darien Ford Avatar answered Oct 14 '22 06:10

Darien Ford