WCSF против MEF, что лучше для меня?
Я работаю над большим веб-приложением, которое включает в себя множество модулей (CRM, Inventory, Administration и т. Д.). Я хочу, чтобы я смог разработать каждый из этих модулей независимо (пользовательский интерфейс, базовая логика, логика DataAccess и все остальные).) и затем объединить их все вместе в основной модуль (эта интеграция должна быть только изменением в файле конфигурации). Например, если у меня есть основной модуль с именем Host, я должен иметь возможность добавить модуль CRM в модуль хоста, просто добавив эту строку в файл конфигурации хоста:
Я немного почитал WCSF и обнаружил, что он может помочь объединить некоторые модули вместе, но на самом деле он не предлагает такой большой помощи в плане интеграции этих элементов пользовательского интерфейса.
Некоторые друзья предложили MEF для работы, но я еще не смотрел на это.
Что, вы парни, думаете?
Можно ли достичь этого уровня модульности, и сколько работы мне нужно потратить, чтобы заставить его работать?
2 ответа
Это то, что делает MEF, и, поскольку он становится частью BCL из.NET 4, я бы определенно согласился (обратите внимание, что он также доступен в форме с открытым исходным кодом для.NET 3.5 SP1).
Однако не ожидайте, что какой-либо инструмент позволит вам волшебным образом разрабатывать слабосвязанный код. Это прежде всего дизайнерская дисциплина. Вы также можете создавать модульные приложения, используя общие шаблоны внедрения зависимостей и надстроек, используя только BCL (хотя DI-контейнер будет полезен).
Когда я читаю вопрос, я думаю: я бы пошел с MEF и избегал SCSF по многим причинам
- MEF очень легок в реализации, особенно против WCSF
- WCSF имеет так много требований, чтобы начать
- WCSF добавляет ненужные осложнения к типичным операциям
- У MEF уже есть много вариантов для подбора модулей
- Глен Блок (отец MEF) качается!
- Глен всегда делает MEF лучше, "легче" и "мощнее" одновременно.
- MONO ребята тоже пытаются поиграть с MEF
- WCSF - это WF 1 (не WF 4, и речь идет не о том, как недавно, а о многих проблемах в WF 1)
Тем не менее, это все не считается. WCSF и MEF разные. Аргумент не звучит нормально для меня.
Для чего вы, например, WCSF предназначен именно для этого. MEF для функциональности внутри каждого модуля, например, если это лучше.
Вы в MVC? Рассматривали ли вы особенности MVC 2.0 (сейчас RTM)?
Изменить: см. Эту серию из 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