Модульные приложения только с кодом Entity Framework и ASP.NET MVC

Под модульными приложениями я имею в виду приложения, в которых базовая функциональность и модель данных могут быть расширены без изменения кода основного приложения.

Это популярный подход, например. CRM с открытым исходным кодом, например SugarCRM или VTiger.

Этому подходу можно следовать в приложении asp.net mvc с использованием областей или (переносимых областей из MVC contrib), которые позволяют добавлять новые контроллеры и представления в отдельные сборки, не влияя на основные dll.

Проблема возникает, когда кто-то хочет расширить модель данных базового приложения. Это невозможно в любом практическом смысле со структурой сущностей, где определение модели централизовано в файле Edmx. Такой подход не позволяет добавить новую таблицу, которая будет ссылаться на некоторую таблицу базового модуля в новой сборке.

Я заметил, что Orchard CMS обеспечивает полную модульность за счет использования nHibernate (что говорит о том, что у них есть поддержка Microsoft и проект задумывался как демонстрация технологий). Nhibernate допускает такую ​​модульность благодаря подходу POCO. Каждый объект / таблица определяется в отдельном файле, что, очевидно, является способом использования модульных приложений.

Однако есть надежда на подход Entity Framework Code Only, который генерирует модель Edmx во время выполнения с использованием определений POCO. Кто-нибудь пробовал использовать этот подход для распределения определений модели данных в отдельных подключаемых проектах?

7
задан aaimnr 28 February 2011 в 12:49
поделиться