WPF модули / плагины в собственном AppDomain - поддержка фреймворка? - PullRequest
0 голосов
/ 26 марта 2012

Мне нужно написать приложение, которое может загружать плагины.Я читаю документацию PRISM 4, и мне нравится концепция среды "Регион".Но все модули загружаются в первый AppDomain - но мне нужно создать приложение, в котором сторонние плагины могут аварийно завершить работу без сбоя всего приложения (поэтому я считаю, что несколько доменов приложений - лучшее решение?)опыт работы с этой темой?Должен ли я построить его поверх света MVVM сам?PRISM 4 - это инструмент, который я ищу?

Спасибо и наилучшими пожеланиями

1 Ответ

1 голос
/ 04 апреля 2012

Насколько мне известно, ни одна из популярных платформ MVVM (Prism, Caliburn, Calcium и т. Д.) Не поддерживает жизненный цикл модуля между приложениями и, что не менее важно, обмен сообщениями между приложениями из коробки.Тем не менее, невозможно настроить любой из них так:

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

Для одного Prism4 допускает несколько точек расширяемости в своем загрузчике, каталоге модулей и компонентах поиска служб.Таким образом, загрузка DLL и инициализация их точек входа на другом домене приложения не слишком сложна.Создание удаленного прокси-сервера агрегатора событий немного сложнее.

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

...