As a frequent user of a lot of open-source frameworks, I see an interesting architectural trend emerging. More and more frameworks are build on top of an internal model. Model-based frameworks separate the configuration-time activities from the run-time activities. This adds some complexity for the framework designer, but opens up many opportunities for some really cool features and possibilities.
Separate configuration and runtime
The framework is designed in such a way that the configuration model and the API are completely separated. The configuration API becomes just another consumer and manipulator of the configuration model. With a model based approach, the framework allows us to manipulate and extend the framework on top of the model. This gives me, as a consumer of the framework, to get the maximum out of these frameworks. Hopefully this trend will also be adopted by our friends at Microsoft…
If you want to learn more about this, read Chad Myers blog post.