2

我们有许多插件应用程序,它们都可以独立运行,也可以在同一个主机容器中运行。用户可以使用一个或多个插件运行一个主机容器或多个主机容器。

我们有许多“集成”用例,人们想要

  1. 将数据从一个插件发送到另一个插件
  2. 将“动作”或“命令”发送到另一个应用程序(有时带有参数)

我们有几个选择:

  1. 在容器级别有一个众所周知的事件总线,所有插件都知道并且可以发布和订阅定义良好的消息或对象

  2. 将一个插件的 dll 嵌入另一个插件并从另一个插件调用一个插件的 API

  3. 创建了解公共集成点的集成插件,这样每个单独的插件都是完全独立的,并且集成插件是唯一了解集成的东西。这是我们可以在没有任何无关依赖的情况下发布每个单独的插件。

想法或其他建议?

4

3 回答 3

2

我会看看微软目前正在开发的新的托管可扩展性框架 (MEF) 库。请参阅Codeplex 网站。据我正确理解,VS 2010 也将使用此框架在 Visual Studio 中提供扩展点。

于 2009-03-26T15:23:56.590 回答
1

智能客户端软件工厂是另一个需要考虑的指导。它大部分是 WinForms,可能比新的 WPF 版本(完全重新架构)稍微复杂一些。但是,它也会为您提供实现模块化目标的想法。链接和文档很好地涵盖了模块是如何分离的,但可以通过通用框架传递数据。

于 2009-03-26T14:59:35.397 回答
0

考虑 Microsoft 的WPF 和 Silverlight 的模式和实践复合应用程序指南。即使它不完全是您所需要的,学习一些方法来完成模块化所需的一些方法(例如在模块之间共享数据)也是一个很好的模式。

于 2009-03-26T14:46:31.340 回答