Whew! just finished the second major milestone of the (then proof-of-concept) FlexOODB API .
In a nutshell, the motivations for developing FlexOODB are to a) replace “mainstream” clunky and rigid persistence API’s (no inheritence or abstraction capabilities, can’t extend it, quirky must-be-embedded configuration requirements just to cite some reasons) b) develop a platform where ‘I-dont-have-to-manually-create-the-tables-for-my-apps!’ and c) provide Rapid Application Development (RAD) utilities for the Intigrix Platform. My goal is to minimize (if not take out!) the tedious and time consuming user interface<->data and data relationship binding from systems development, doing so will allow developers to focus on the more esoteric requirements of the system. This also means that software is easier to manage and time-to-market is a lot faster.
I’m satisfied with this milestone version: given a Schema (ie XSD) as the system’s data definition, the API can already generate a User Interface definition file (where we can set things like should a field be editable, updateable, auto-increment etc), generate the class entities then finally create the necessary java code, html and application files for CRUD (plus XML exporting and print friendly versions of the data). The API fully supports and generates the necessary CRUD code for multi-generational (ie parent-child-grandchild…ad infinitum) data structures, at this point though, each generation has to be of different class types — not really an issue for majority of apps.
In practical terms, using the old API, I was able to develop a working prototype (includes user management and authentication) of a personal healthcare system in a week (5 working days). I expect to improve on this by at least 25% as pages I had to manually make before (e.g. paging of items, child templates etc) are already created by default with this milestone version.