Raise your level of abstraction
Was developing some tools for *internal* use for a while, have shared a story here in May 2012.
Got some feedback and made some friends :-). Thank you MDSN!
Looks like when making those *MD* tools have actually found a way of how to directly interpret general DB schemas in server-client environment.
It works like that: when an application's tables and their relations could be drawn (UML or Visio like - "boxes-and-lines" style), that drawing fed into a server, which generates neccessary DB objects and feeds that schema further to client-side interpreters. The App is up and running instantly. Just one page of a schema or its' text/XML representation. The rule applies - one DB Table - one line of source. Tables can contain supported binaries, in my case those are images, HTML, PDF, could be anything.
My implementation is good enough: stable, fast, DB agnostic, SaaS, ACID, transactional, real-time synchronized and such. Not ideal though.
The quesion is: standalone or server-client, ACID or not, I could not find no information on possibility of direct execution or interpretation a schema of a general data driven application. To me an idea to run an App schema sounds pretty suspicious. What I'm missing?
Almost a whole Line Of Business App is developed and deployed in minutes. In pure declarative way. There is no code generation - except SQL, which is generated on the fly and fed into an underlying DB. There is API to Java (could be any general PL). There are a few finished LOB Apps running locally and cloudside (HR, dispatch, customer service, etc. 10 to 50 tables). Zero maintenance, no admin required. Very little code needed to implement a particular App business logic - 100 to 1000 lines, sometimes 0. Unexpectedly those "blocks-and-lines" schemas express much more then just simple CRUD logic. A wheel reinvention?
And another question: what do I do about it? Not an academician to make a study, not a businessman enough to create a company around... just let it go? Have already shutdown a would be business website...
Thank you for your time, waiting to hear from you, Alex Semenov.
Alex, unless you make use of stored procedures (which I have nothing against), database schemas as a metamodel lack the ability of representing behavior. As you mention, they are pretty decent at modeling structure. But that is not enough other than for the simplest CRUD apps.