Как создать приложение WPF, которое использует перезагружаемые плагины? - PullRequest
0 голосов
/ 13 марта 2011

У меня под рукой интересная проблема.

Мне нужно создать приложение WPF, в котором будет размещено несколько пользовательских элементов управления. (Приложение делает именно это - служит контейнером с возможностями стыковки для UserControls)

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

Эти пользовательские элементы управления должны быть подключаемыми (это просто) и перезагружаться (это кажется трудным / невозможным) во время выполнения. (Домены приложений, кажется, ответ здесь, но я не знаю ограничений, других чем ограничения AppDomain для MarshalByValue и marshalByRefObject. Есть ли какие-либо ограничения графического интерфейса?) «Перезагружаемый» во время выполнения, как при «горячей» замене компонента пользовательского интерфейса, когда приложение работает.

Я также хочу, чтобы в контекстном меню UserControl были некоторые элементы из Host, а некоторые элементы из самого UserControl.

У меня также есть логика для управления фокусом (изменение цвета границы и т. Д. На событиях фокуса) между хостом и элементами UserControls (вкладка между Host и UserControls).

Кроме того, я бы хотел, чтобы в UserControl была включена поддержка ActiveX для интеграции с контейнерами ActiveX, такими как Excel.

Это даст мне гибкость в плане самостоятельного запуска UserControl (модульное тестирование), в контейнере (плавная навигация и интеграция с контейнером и другими соответствующими элементами UserControl) и в качестве элемента управления ActiveX для интеграции с контейнерами ActiveX.

Я хотел бы знать, возможно ли это, и существуют ли фреймворки (MAF?), Которые поддерживают это. Любые ссылки на примеры или документацию помогут.

Заранее спасибо,

С уважением, Достопочтенный

1 Ответ

0 голосов
/ 23 июня 2011

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

...