Как создать приложение WPF, использующее перезагружаемые плагины?

У меня есть интересная проблема.

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

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

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

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

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

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

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

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

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

С уважением, дост.


person Ven    schedule 13.03.2011    source источник


Ответы (1)


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

person Josh G    schedule 23.06.2011