2009-04-22 5 views
2

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

  1. Ядро DLL (есть все основные функция)
  2. GUI
  3. третьей партии и полностью независимая библиотека DLL, которая требует для DI и т.д.

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

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

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

ответ

2

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

Пример:

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

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

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

0

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

Смежные вопросы