Steven Kelly's Feedback on DSL Tools

I just ran across Steven Kelly's feedback on using DSL Tools in the virtual lab. It appears that his biggest issues was: having to restart the lab a few times; and a bug in that version of DSL Tools in which generating code sometimes produces spurious error messages (it was fixed after several repeats). Otherwise, he seemed fairly happy with the experience.

He also had thoughts about having a graphical editor for the .dsldd files rather than having to do it in an XML editor. This is definitely too difficult to use as is, and it's something that we want to address in a future release. However, in the meantime, if you're using the Visual Studio XML editor, you should get IntelliSense for the valid values for attributes in that file based on the XSD that we've defined for the file format.

I also saw that Steven was asking about building a simple Use Case designer in DSL Tools and how long it would take to do. So, I decided to give it a shot using the Sept CTP of DSL Tools. Ok, so this was cheating a little because it has templates that weren't in the May CTP (the one in the virtual lab). In the Sept CTP, there's a new Use Case template in the Designer Wizard, so you can select that as your starting point. That gives you a simple domain model for Use Cases (Actor, UseCase, System, Comment, Association, Generalization, Extends, and Includes) and the basic shape definitions.

In addition to the generated solution, I had to add custom code for the System to make it a container of other shapes. Luckily, Alan Wills recently published a code customization guide that did exactly that, so I just copied that code into my solution, did a little renaming to match my namespace, and rebuilt the code. The result in the Use Case designer pictured below. It took about 5 - 10 minutes to do with the code customizations (again probably cheating, but only a little :).

Also, the lines are recti-linear rather than straight, but that can also easily be customized, and Alan discusses how to do that in the customization guide, so I didn't add that for the purpose of this designer.