Как использовать платформу надстроек в .NET 3.0? - PullRequest
1 голос
/ 07 октября 2008

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

Как бы вы создали функциональность надстройки в приложении с .NET 3.0 / 3.5?

Дополнительная информация при необходимости : хост-приложение сделано с WPF и некоторыми общими функциями. Каждая надстройка должна добавить собственную вкладку register к данному контейнеру со своим собственным содержимым (кнопками, текстовыми полями, ...) и методами для расширения хост-приложения.

Ответы [ 3 ]

2 голосов
/ 07 октября 2008

В дополнение к Daniels ссылке на кодовый комплекс, Джейсон У него также есть замечательная серия об использовании пространства имен System.AddIn при разработке Paint.NET, начиная с этой страницы -

http://blogs.msdn.com/zifengh/archive/2007/01/04/addin-model-in-paint-net-1-introduction.aspx

1 голос
/ 07 октября 2008

Обязательно ознакомьтесь со структурой управляемого расширения на www.codeplex.com / mef . Это фреймворк, который помогает создавать расширяемые приложения. При создании подключаемого приложения он заботится обо всем слесарном деле. В настоящее время я пишу серию статей, в которых основные функции mef показаны на http://www.jenswinter.com/?tag=/mef. Но статьи написаны на немецком языке.

Еще один фреймворк, который вы должны попробовать - это CompositeWpf (f.k.a. Prism). Это позволяет создавать композитные приложения WPF. Ваше приложение будет состоять из приложения оболочки и нескольких проектов модулей, которые соединены вместе и подключены к оболочке.

1 голос
/ 07 октября 2008

Также теперь доступна платформа Managed Extensibility Framework ( www.codeplex.com / mef ), которая позволяет использовать богатую платформу плагинов.

Вы также можете обнаружить, что внедрение зависимостей происходит в соответствии с тем, что вы могли бы использовать ( Unity , StructureMap , чтобы назвать только два).

Вы могли бы создать платформу плагинов поверх инфраструктуры внедрения зависимостей, хотя, вероятно, будет проще реализовать выделенную платформу плагинов, такую ​​как MEF.

...