Hi Everyone,
Doesn't it seem a little backward to be introspecting the DB to get
config files? What if there were a standard XML application definition
schema which also included the database definition. This file could be
used to describe not only the structure of the database, but also the
relationships between entities (similar to the Transfer). It could
also include data used by the application for business logic or
presentation of forms, etc. This information could be used to generate
config files for Transfer, ColdSpring, MG, etc. It could also be used
to generate the DB. Any change to the application definition schema
could trigger updates to the database and any generated code or config
files that were mapped and would include the ability to turn pieces on
and off. The huge upside would be that the application definition
schema would be framework agnostic and could also be used by
developers wanted to build custom frameworks. We could also begin to
develop widgets and components that read the defintion file and allow
developers to drop in some really cool opensource modules. Just
thinking out loud.
Has anyone else thought about this approach or started developing such
a beast? Does something already exist that I am not aware of?
Jonathan
Brian, all fair points. It was already raining when I started the
parade ;-) I am not really interested in merging all the various
frameworks together, but managing configuration and code generation
better to reduce inefficiencies. So, if I need to add a column to the
database, I don't want to have to write in that change 6 places or go
back to a code generation tool and reproduce code for several
different purposes. I should be able to add it to the schema and press
a button to have all the standard methods and config files updated
with the change along with the addition of the column to the database.
As for the scope of the project, I will only support one technology
stack to start with and go from there.
This is an experiment for me. I am not confident that any attempt of
mine at doing what I am suggesting will have a happy ending. However,
I really feel that it is a worthy goal. I have started and will see
where this goes. At the least, it will help me on my current project,
but my hope is that I can produce something that will help other
people as well. My approach is to have a utility application that
allows you to manage the application schema using a browser if you so
choose. A better implementation would be to do this as an Eclipse
plugin, but that is not something I have time or the expertise to take
on.
Peter, it sounds like you might be a good consultant for me ;-) Your
project sounds very interesting.
I will come back in a week or two with an update.
-J