WCSF против MEF, что лучше для меня?

Я работаю над большим веб-приложением, которое включает в себя множество модулей (CRM, инвентаризация, администрирование и т. Д.). Я хочу иметь возможность разрабатывать каждый из этих модулей независимо (UI, Core Logic, DataAccess Logic и т. Д.). ), а затем интегрировать их все вместе в основной модуль (эта интеграция должна быть только изменением в файле конфигурации). Например, если у меня есть основной модуль с именем Host, я смогу добавить модуль CRM к модулю хоста, просто добавив эту строку в файл конфигурации хоста:

‹имя модуля =" CRM "/›

Я немного читал о WCSF и обнаружил, что он может помочь интегрировать некоторые модули вместе, но на самом деле он не предлагает такой большой помощи с точки зрения интеграции этих элементов пользовательского интерфейса.
Некоторые друзья предложили MEF на работу, но я еще не смотрел на это.
Что вы думаете, ребята?
Можно ли достичь такого уровня модульности и сколько работы мне нужно приложить, чтобы он заработал?


person Galilyou    schedule 07.04.2010    source источник
comment
Я предлагаю вам сделать запись конфигурации более конкретной, например <model name="CRM" assembly="../bin/CRM.dll" />   -  person Jaxidian    schedule 07.04.2010
comment
Вы уже в этом разобрались?   -  person Meligy    schedule 22.07.2010


Ответы (2)


Это то, что делает MEF, и поскольку он становится частью BCL из .NET 4, я бы определенно согласился с этим (обратите внимание, что он также доступен в форме с открытым исходным кодом для .NET 3.5 SP1).

Однако не ожидайте, что какой-либо инструмент позволит вам волшебным образом разработать слабосвязанный код. Это прежде всего дизайнерская дисциплина. Вы также можете писать модульные приложения, используя общие шаблоны внедрения зависимостей и надстройки, используя только базовый BCL (хотя контейнер DI был бы полезен).

person Mark Seemann    schedule 07.04.2010

Когда я читаю вопрос, я думаю: я бы выбрал MEF и избегал SCSF по многим причинам.

  • MEF очень легкий в реализации, особенно по сравнению с WCSF.
  • У WCSF так много требований, чтобы начать работу
  • WCSF добавляет ненужное усложнение типичным операциям
  • У MEF уже много вариантов подобрать модули
  • Глен Блок (отец MEF) молодец!
  • Glen всегда делает MEF лучше, «проще» и «мощнее» одновременно.
  • Ребята из MONO тоже пытаются поиграть с MEF
  • WCSF - это WF 1 (не WF 4, и дело не в том, насколько недавно, а во многих проблемах в WF 1)

Однако это все не в счет. WCSF и MEF разные. Этот аргумент мне не кажется нормальным.

Для того, что вам нужно, например, WCSF предназначен именно для этого. MEF предназначен для функциональности внутри каждого модуля, например, если он лучше.

Вы в MVC? Рассматривали ли вы возможности MVC 2.0 (RTM now) Areas?

Изменить: См. эту серию из 5 частей: http://blogs.msdn.com/simonince/archive/2008/06/19/wcsf-application-architecture-5-defining-modules.aspx

Edit2 Эта ссылка очень подробно описывает дискуссию между IoC (который, похоже, вы видите MEF) и WCSF: http://theniceweb.com/?cat=45

person Meligy    schedule 07.04.2010
comment
Ах, MVC. Нет, проект должен быть проектом веб-форм, поскольку мы много вложили в сторонние элементы управления. Кажется, вам нравится MEF, но вы все же говорите, что WCSF лучше в моем случае. Не могли бы вы дать ссылку на статью или что-то, что обрабатывает интеграцию модулей (включая пользовательский интерфейс, что очень важно) с использованием WCSF? - person Galilyou; 07.04.2010