I’ve added some select DRAKON shapes for creating flowcharts. The Python code in the lower right editor is generated from the flowchart, and the output from the run is shown on the left.
PyLint is also now integrated into FlowSharpCode’s PythonCompilerService. This really improves the development process as many syntactical errors are detected before even running the code.
Also, the code generator creates an execution tree which independent of the language syntax, which means that support for other languages is easily added. Now granted, the code itself in each of the DRAKON shapes is Python code, but I have some ideas of how to make that code agnostic as well.
The built in “left-right” and “up-down” connectors now have a grip in the middle connecting line that can be moved to create “U”, “C” and their mirror, connections. A much needed enhancement!
Lots of changes to FlowSharp recently!
- Refactoring of code components into services
- UI now implements docking panels and multiple documents
- FlowSharp and FlowSharpCode are now unified
- Bookmark navigation of shapes
- Ctrl-Tab navigation of shape selection history
Read about it more on the Code Project article!
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:
Find FlowSharp on GitHub!
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!
Actually the name of the application is FlowSharpCode, but VAPORware sounds more fun!
This is purely a concept piece. It’s intended to either inspire or cause an eye rolling “what a crazy idea” reaction. It is crazy, in my opinion, but in a sense it’s crazy because in my limited use cases so far, it works. And because it’s so crazy, the majority of this article will not be written, it’ll be screenshots of the application in use. The problem with this approach is that it ends up sort of looking like a PowerPoint presentation, which is hard to avoid!
…that you have no idea whether the concept is viable, let alone how to implement the concept because it’s probably never been done before?
- Shapes contain code
- Code can be compiled into assemblies
- Assemblies can be referenced
- Uses SharpDevelop’s Avalon code editor (yes, it has Intellisense)
- And more (strange) features…