By modular applications I mean applications in which base functionality and data model can be extended without modifying core application code.
It's a popular approach with eg. open source CRMs like SugarCRM or VTiger.
This approach may be followed in asp.net mvc application using Areas or (portable areas from MVC contrib) which allow adding new controllers and views in separate assemblies, without impacting core dlls.
The problem arises when one wants to extend the base application's data model. It's not possible in any practical sense with entity framework where the model definition is centralized in the Edmx file. This approach doesn't allow adding a new table that would reference some base module table in a new assembly.
I've noticed, that the Orchard CMS achieves full modularity by using nHibernate (which is telling, given they have Microsoft backing and the project was meant as a technology showcase). Nhibernate allows such modularity thanks to the POCO approach. Each entity/table is defined in a separate file which obviously is the way to go with modular applications.
There is, however, a hope with Entity Framework Code Only approach, which generates Edmx model in runtime using POCO definitions. Has anyone tried this approach to distribute the data model's definitions in a separate, pluggable projects?