I’ve been reworking FlowSharp into a “Service Oriented Architecture.” As the above overview diagram illustrates, there are now three major service blocks:
- Docking services – The toolbar and property grid are now dockable, and canvases are treated as dockable documents, so you can have multiple documents in one application.
- The various controllers and functions of FlowSharp have been converted to services (see below)
- As a result, I’ve been able to add the “shapes as code” in the FlowSharpCode project that I wrote about earlier. The beauty of this is, adding the FlowSharpCode services “simply” requires defining the services in modules.xml and the additional shapes in plugins.txt.
The architecture relies on The Clifton Method discussed previously.
Here’s a full blown gloriosky architecture diagram:
At the time of this writing, there’s still a few critical bugs to update the Code Project article, but I hope to get them resolved soon!