Design Details

These are the technical design details of this release, followed by a discussion of the challenges presented by this release and the design decisions for its implementation.

What it contains

This release contains the following additional components to the previous release (ReleaseM0) :
  • A DSL for configuring the editor host and multiple editors (Editor Configuration)
  • Documentation on how to use the PowerToy and how customize the editor (online on this site)
  • A refined set of installed artefacts

How does it work?

This release of the PowerToy is configured in much the same way as the previous release (ReleaseM0).
However, this release installs a new set of generated artefacts, adds additional resource files and a new DSL designer to the DSL solution.
The user works with this designer to define and customize the host, and the editors that it hosts. An editor is defined by the control that it hosts, and caption and icon to display to the user. The editor control can be any System.Windows.Forms.Control.

Added Artefacts

In this release of the PowerToy, the structure of the added artefacts has been re-designed from previous version. The rationale for this is that we now have artefacts (such as the designer and resource files) which are directly modifiable by the user, rather than generated. Therefore a clean separation of generated artefacts from modifiable artefacts was sought.
Using familiar patterns already established by the DSL Toolkit, the PowerToy employs a very similar layout to its installed artefacts.

Generated Files.png

Generation of the Views

Using the structure above, the PowerToy employs (again a familiar pattern from the DSL Tools) a design pattern that uses text templates to generate code derived from designer files. This pattern has certain advantages over another common style of explicitly invoking code generation from the designer (big green button approach). One important advantage is that the designer does not need to have any reference to the text templates that operate upon it, and therefore does not have to manage those references.

Configuring the Editors

In this release of the PowerToy, it became very important to find a way to configure and host multiple editors in the established tool-window, or in a replacement forms-based designer for the DSL.
TODO: How a user configures the editors

Tool-window Integration

TODO: Runtime integration of editors

Last edited May 16, 2007 at 8:27 AM by jezzsa, version 5


No comments yet.