Организация сборок MEF - PullRequest
       4

Организация сборок MEF

1 голос
/ 20 июля 2011

Чтобы убедиться, что мы используем правильный подход к структурированию наших плагинов MEF, ведутся споры о том, имеет ли смысл иметь каждый плагин как отдельную сборку.

Например, предположим, что у нас есть решение DataProcessors, и в нем мы начинаем разрабатывать разные процессоры для каждого из типов файлов данных, которые мы получаем. Поскольку каждый процессор подключен к сети, мы хотим, чтобы в каталог MEF был включен этот новый плагин. Однако мы обеспокоены тем, что у нас будет решение с ~ 100 проектами из-за снижения производительности в VS и в нашей среде сборки.

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

Кто-нибудь знает, будет ли один подход работать лучше, чем другой?

Ответы [ 2 ]

2 голосов
/ 21 июля 2011

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

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

Мне было бы очень интересно услышать мнение других, хотя!

0 голосов
/ 21 июля 2011

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

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

например. Я мог бы иметь сборку целочисленных процессоров и другую сборку строковых процессоров.

Как я уже сказал, нет правильного или неправильного способа сделать это.

...