2009-03-26 3 views
2

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

У нас есть целый ряд «интеграционных» прецедентами, где люди хотят либо

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

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

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

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

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

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

+0

Это звучит как большой вопрос, если бы только была более подробная информация. Как насчет нескольких примеров того, как могут взаимодействовать два плагина? –

ответ

1

Smart Client Software Factory - еще одно руководство для рассмотрения. Это WinForms по большей части и, возможно, немного сложнее, чем новая версия WPF (которая была полностью перепроектирована). Тем не менее, это также даст вам идеи для выполнения ваших модульных целей. Ссылки и документация хорошо справляются с тем, как модули являются отдельными, но могут передавать данные через общую структуру.

0

Рассмотрите образцы и практики Microsoft Composite Application Guidance for WPF and Silverlight. Даже если это не совсем то, что вам нужно, было бы неплохо изучить некоторые методы для выполнения некоторых необходимых для модульности, например, обмена данными между модулями.

2

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

Смежные вопросы