As one of my ongoing projects I’ve been working on a toolkit that generates an MV/Pick DBMS using a graphical, flow-chart designer as the source.
- Start with the Visual Class Designer in Visual Studio.
- Create a flow-chart-style diagram that describes a database.
- Run some utilities that generate MV files and dictionaries. Some people would be happy to stop here. Now I want to create strongly typed .NET classes to operate on my new database.
- Run another utility to generate mv.NET Extended Definitions.
- Manually generate mv.NET entities from the files and defs.
- Generate the .NET code.
The end result is that I graphically designed a database, and then generated code to operate on that database. From this point it’s no longer necessary to continue maintaining the environment graphically, though that would be cool in itself. Now I can use Visual Studio with mv.NET components to maintain all aspects of the environment.
How far along is this?
Well, I’ve been able to take it end-to-end but with a lot of manual steps in the middle. I’m working to eliminate some of the manual steps and create more robust definitions in the designer which will then translate to better business classes for a final product.
And why am I doing it?
When you visualize a database graphically you can see missing components that you might not see otherwise. It’s very easy to move the graphics around to highlight flows and relationships. It’s also very easy to make changes compared to making changes to files and dicts after a database has already been created. Oh, and besides all that, it’s just very cool.
Note that I can actually create the database, see it all in MV, then just blow it away and replace it with a new one after making some changes in the designer. Of course that sort of manipulation needs to be restricted after data is added and code starts to operate on the data.
Will this be another commercial offering?
At this time I don’t think so. I’m doing this one for myself, to support some other projects I’m working on which require new databases. How many people in the MV industry would be interested in such a thing anyway? Not many, sorry to say.
Might this be a tool that the MV DBMS vendors would want to have to allow non-MV developers to generate and use new databases? Uh, yeah! Will my phone ever ring for this? I’m not holding my breath, sorry to say.