Какой слой должен отвечать за загрузку плагинов? - PullRequest
2 голосов
/ 23 апреля 2009

У меня есть приложение с 2 основными компонентами + другие библиотеки DLL:

  1. Core DLL (получил все основные функции)
  2. GUI
  3. Сторонние и полностью независимые библиотеки DLL, которые требуют DI и т. Д.

Теперь я реализую поддержку плагинов.

Какая DLL должна отвечать за загрузку этих плагинов? GUI или Core DLL?

Я использую MEF, поэтому не совсем уверен, где его можно вставить.

Ответы [ 2 ]

2 голосов
/ 23 апреля 2009

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

Пример:

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

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

Кроме того, они загружаются с использованием разных подходов ... ядро ​​запускается только при использовании определенных правил, а другое загружает все из каталога (плагинов).

0 голосов
/ 23 апреля 2009

Я бы подумал, что Core DLL, так как это, вероятно, бизнес-логика, будет плагинами.

...