Лучшая модель для интеграции плагинов - PullRequest
2 голосов
/ 26 марта 2009

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

У нас есть несколько случаев "интеграции", когда люди хотят либо

  1. Отправка данных из одного плагина в другой
  2. Отправка «действий» или «команд» в другое приложение (иногда с параметрами)

У нас есть несколько вариантов:

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

  2. Вставить библиотеки одного в другой и вызвать API одного плагина из другого

  3. создание плагинов интеграции, которые знают об общих точках интеграции, чтобы каждый отдельный плагин был полностью автономным, а плагин интеграции - единственное, что знает об интеграции. Это было то, что мы можем отправить каждый отдельный плагин без каких-либо посторонних зависимостей.

Мысли или другие предложения?

Ответы [ 3 ]

2 голосов
/ 26 марта 2009

Я бы взглянул на новую библиотеку Managed Extensibility Framework (MEF), которая в настоящее время разрабатывается Microsoft. См. сайт Codeplex . Насколько я понимаю, VS 2010 также будет использовать эту среду для обеспечения точки расширения в Visual Studio.

0 голосов
/ 26 марта 2009

Рассмотрим шаблоны и практики Microsoft Руководство по составным приложениям для WPF и Silverlight . Даже если это не совсем то, что вам нужно, было бы неплохо изучить некоторые методы выполнения того, что вам нужно для модульности, например, обмен данными между модулями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...