Я хочу, чтобы программное обеспечение было следующим: будет основное приложение, и все модули приложения будут выполнены в виде плагина
Это точно типСценарий, который MEF позволяет.MEF разработан вокруг концепции составления неизвестного набора типов (части, говорящие на MEF).Эти части являются вашими модулями и плагинами.MEF заботится об обнаружении этих частей, и все связывает.MEF также не ограничивает вас одной моделью этого.MEF сам по себе является расширяемым, что делает его таким адаптируемым.
Когда вы объединяете ASP.NET с MEF, вы должны учитывать, что время жизни приложения определяется его доступностью в IIS.Вы также должны учитывать, что модель времени выполнения для веб-приложения сильно отличается от модели приложения для настольных компьютеров.
Я провел много времени с MEF и ASP.NET (в частности, ASP.NETMVC), вот несколько ссылок на мои статьи:
- Модульный ASP.NET MVC с использованием инфраструктуры управляемой расширяемости (MEF), часть первая
- Модульный ASP.NET MVC с использованием инфраструктуры управляемой расширяемости (MEF), часть вторая
- Модульный ASP.NET MVC с использованием инфраструктуры управляемой расширения (MEF), часть третья
- MVC3 и MEF
- Службы Plug and Play с MEF и WCF
Я бы сказал, что, вероятно, легчедобиться хорошей интеграции MEF + ASP.NET MVC, чем сделать то же самое для WebForms, как и MVC, поскольку его архитектура должна быть модульной и расширяемой (особенно в MVC3).Веб-формы, которые вам нужно учитывать, учитывая события и время жизни страницы, и то, как все это объединяется.
В Интернете есть несколько замечательных ресурсов, если вы гуглите, несколько убедительных примеров, хорошие трюки и т. Д., Например, статья Тима Робертаозаглавленный Определение веб-частей с помощью MEF .В StackOverflow уже есть целый ряд вопросов (с ответами), которые охватывают именно эту тему.
Вы также можете достичь аналогичных результатов с помощью контейнера IoC, таких как Castle Windsor, Ninject, Autofac и т. Д.