DSL should not only be Visual Studio extension
Posted March 9, 2008on:
I have created two DSL projects on codeplex.com.
Agile Planner: A This tool is for agile project teams, who currently are using sticky notes on the wall. With this tool stories, backlog and iterations are managed in a graphic designer, saved as files within visual studio projects and can be exported to images, reports and etc.
SharePoint Services Site Top Navigation DSL: A DSL tool that models top navigation of WSS sites with a code generator that generates PowerShell scripts to create the navigation bar.
All successed with visual studio integrated mode (deploy as vspackages). All stucked with isolated mode (deploy as a stand alone application). It took me 2-3 day each to do DSL model. Now more than a week passed, I still did not finish a shell.
I wish I can host DSL designer directly, because it is really difficult to customize Visual Studio Isolated Shell. I explained in MSDN forum thread Re: Can we host DSL designer in a custom host application?
As using VS isolated shall for DSL, my first difficulty is to organize/hide the out-of-the-box packages, editors, templates. After copied the pkgundef file from the story board designer, web site template is gone, but something like “connect to database”, “class view”, “code definition window” are still there. Those GUIDs are pretty hard to manage.
Second difficulty is to deal with solution-project-file concept in VS. To implement custom project like in the story board designer is not easy. Actually I just want simple File | New, Open, Save …, not to use solution and project at all.
I thought maybe I can hide all out-of-box menus and supply my own menus. Then it comes to the thrid difficulty, which is to customize menus. VSCT is much better then CTC, but it requires editing XML file and matching GUIDs, IDs in code. Compare using visual studio cutomize ribbon and task pane for Word and Excel, how hard it is.
One day, customization of visual studio will become as easy as customization of Office applications. I believe that. But it will still face the requirement of integrating DSL designer with LOB applications. DSL has possible wider usage outside of development(code generation) world. DSL designer is expected to appear in custom applications, SharePoint sites and Office applications. For example, if the DSL designer is hosted in Word, our BA can then use the story board designer while writing the documents.
So please MSFT, consider unleashing the potentials of DSL. Follow the workflow designer brother, free the DSL designer to outside of VS shell.
IMHO, DSL itself can be a great product, not just a visual studio extension.