We released the next milestone of the DSL Editor PowerToy today on CodePlex.

"A means to add multiple editors to your DSL, either hosted in a tool-window, or replace the graphical designer of your DSL"

The idea of this release is to provide the ability to add multiple DSL Editors to display different 'views' of your Domain Model with any windows form control. You write the control, we host it, provide the runtime UX and the integration to the domain model and runtime environment for you.

The idea with these 'views' is to allow you to display some aspect of your DSL (in an editor) for viewing and possibly editing. This 'aspect' could be for example, some parent-child relationship (potentially not even visible in your designer) or maybe some cross-cutting concern across whole domain model. The choice is yours. The 'view' is configured in the PowerToy (see below how), and the editor control displays that 'view' however you see fit.

[BTW: The editor is a windows control (forms-based) so one imagines this view will be displayed by some combination of windows controls, but its not limited to just forms controls. In fact any display technology you want.]

Ultimately, (in final release) the PowerToy will be providing an special editor control that has a tree-grid-like display, that can handle hierarchical relationships. But the idea is that you can provide your own control.

You can host these windows controls in either a dedicated tool-window or, (new in this release) as a replacement for the graphical designer of your DSL. [A little known secret of the DSL tools!] and is very handy in cases where a the box-line graphical designer is not optimal for displaying or interacting with your domain model.

 

The PowerToy now provides a small configuration language to configure your various editors, and control the hosting options (in toolwindow or as replacement designer).

This language will develop further in next release to help you define the 'views' mentioned above for display in the editors.

Links

Go give it a try!

More Info

This release establishes a new infrastructure and design platform for the next milestones which will add the ability to graphically define the views (pick and chose various aspects of your domain classes/relationships) of your underlying domain model (expanding the configuration language above).

Those 'views' will be available to your editors to bind to to display and interact with. The next release will also deliver a simple hierarchical control to navigate these views.