Hi Ryan,
Indeed you need to have more info but if you combine and substract all the required info you will end up the tabledefinition, its relations and columninfo. How and where you will get these from is not really my concurn :-) as long as I can get the info through the interface.
The 1st phase is to build it up on a SQL backend and from their on I will define more interface so that you can exchange components in the chain as they are interface driven and have no references to each other.
Default I will keep in my implentation based on Subsonic. My favorite 'ORM' but in scaffolding you don't use the objectmodel as it is! you just need to have the info on what, where, how to store and collect.
But give me probably 2 more weeks and I will hopefully be able to do a 'long' cast on defining the database, building screens for scaffolding and executing these screens and interact with the datastore. This all is subjected to delay as I have my customers also.
And still am figuring everything out from scratch, but luckely have a good bag of experience to collect from !
But in the end you, the developer, will certainly be in charge on how and by what means the datastore is dealth with. Especcially with MEF and the interfaces you can take out one piece, adjust it to your requirements and replace the orginal part. and not just on one single place but you could have it on the complete chain from screen to the end of collecting and storing data. That is in my optic the way to go if you want to build a framework, because a framework should help you out instead of putting you in restrain!!
So if anybody has some real good classes on reflection, object overloading, automapping routines,
It would be a to long piece of code but to give you an small idea of performance..
Creating the object tree for a
Contact
|____Address
|______Country (Enum)
|____Gender (Enum)
|____RelatedContact -(Again a contact object)
This class structure is fully generated, and decorated with attributes and inherits a base class (for data stuff) this gets generated and compiled in just 110ms. If I would be able to generate the complete dataschema in objects in 500ms I am very happy as this is only at the first initial request! and perhaps we can let it load on a seperate thread while the screens are getting instanciated..
So you see, still a load of ideas but nothing real concrete yet.