Что мы должны понимать, когда говорим о MEF - PullRequest
2 голосов
/ 25 августа 2011

Я изучал MEF (управляемую среду расширения) в течение двух дней.Тем не менее, я думаю, что MEF не может дать мне то, что я ожидаю от него.

Я хочу, чтобы программное обеспечение было следующим: будет основное приложение, и все модули приложения будут выполнены в виде плагина.Например, в модуле заказа приложения электронной коммерции, модуле кампании и т. Д. Все они должны быть добавлены в виде плагина.

Вопрос заключается в следующем: можно ли сделать такой дизайн с MEF на веб-форме Asp.NET?

1 Ответ

6 голосов
/ 25 августа 2011

Я хочу, чтобы программное обеспечение было следующим: будет основное приложение, и все модули приложения будут выполнены в виде плагина

Это точно типСценарий, который MEF позволяет.MEF разработан вокруг концепции составления неизвестного набора типов (части, говорящие на MEF).Эти части являются вашими модулями и плагинами.MEF заботится об обнаружении этих частей, и все связывает.MEF также не ограничивает вас одной моделью этого.MEF сам по себе является расширяемым, что делает его таким адаптируемым.

Когда вы объединяете ASP.NET с MEF, вы должны учитывать, что время жизни приложения определяется его доступностью в IIS.Вы также должны учитывать, что модель времени выполнения для веб-приложения сильно отличается от модели приложения для настольных компьютеров.

Я провел много времени с MEF и ASP.NET (в частности, ASP.NETMVC), вот несколько ссылок на мои статьи:

  1. Модульный ASP.NET MVC с использованием инфраструктуры управляемой расширяемости (MEF), часть первая
  2. Модульный ASP.NET MVC с использованием инфраструктуры управляемой расширяемости (MEF), часть вторая
  3. Модульный ASP.NET MVC с использованием инфраструктуры управляемой расширения (MEF), часть третья
  4. MVC3 и MEF
  5. Службы Plug and Play с MEF и WCF

Я бы сказал, что, вероятно, легчедобиться хорошей интеграции MEF + ASP.NET MVC, чем сделать то же самое для WebForms, как и MVC, поскольку его архитектура должна быть модульной и расширяемой (особенно в MVC3).Веб-формы, которые вам нужно учитывать, учитывая события и время жизни страницы, и то, как все это объединяется.

В Интернете есть несколько замечательных ресурсов, если вы гуглите, несколько убедительных примеров, хорошие трюки и т. Д., Например, статья Тима Робертаозаглавленный Определение веб-частей с помощью MEF .В StackOverflow уже есть целый ряд вопросов (с ответами), которые охватывают именно эту тему.

Вы также можете достичь аналогичных результатов с помощью контейнера IoC, таких как Castle Windsor, Ninject, Autofac и т. Д.

...