2010-08-04 7 views
1

Для тех, кто работает с расширением приложения в .NET, что вы предпочитаете делать - создаете свой собственный уровень расширяемости или используете MEF (Managed Extensibility Framework) или MAF (управляемая надстройка)?Собственный слой расширяемости или MEF/MAF?

До сих пор я использовал оба способа реализации расширяемости приложений, и мне нравится MEF, поскольку он упрощает загрузку существующих сборок из определенного места без непосредственной проверки реализации интерфейса (из-за отсутствия ImplementationOf(interface) проверить .NET).

Каковы преимущества, которые вы видите в своих предпочтениях по уровню расширяемости? Каковы недостатки?

ответ

4

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

Он используется в VS 2010, поэтому в игре не может быть более широко используемого реального мира.

MAF на самом деле не то же самое. Он очень специфичен для System.AddIn и имеет более жесткие требования и контракты для удовлетворения. Сказав это, он также специально нацелен на определенный тип расширяемости, который может потребоваться некоторым людям.

Я бы выбрал только индивидуальный подход, если бы у меня была небольшая занимаемая площадь или приложение, которое просто не нуждалось во всех дополнительных накладных расходах.