我正在使用 Silverlight 观看一些 MEF 或 Prism 教程,但同时也在做一些 MAF 工作(System.AddIn),并认为这也可能有效。我看到 Prism 和 MEF 几乎是一回事,但 Prism 具有事件聚合器。
有人对 MAF 与 Silverlight 的协同工作有什么想法吗?
我正在使用 Silverlight 观看一些 MEF 或 Prism 教程,但同时也在做一些 MAF 工作(System.AddIn),并认为这也可能有效。我看到 Prism 和 MEF 几乎是一回事,但 Prism 具有事件聚合器。
有人对 MAF 与 Silverlight 的协同工作有什么想法吗?
类似的帖子...在 MEF 和 MAF 之间进行选择(System.AddIn)
至于 MEF 与 PRISM,差异超出了 Event Aggregator 的存在——特别是可扩展性、发现和模块化的不同概念。在这一点上,这些都是一些免费的产品。6 月 1 日发布的 PRISM 4 支持 MEF(而不是 Unity)作为 DI 容器。Glenn在这里对 MEF 有一个很好的解释。
所以 MEF和 PRISM不是一回事。Prism 是一个 UI 组合框架,可以与 WPF、Silverlight、WP7、Surface 一起使用,并且可能与基于 C# 的 Win8 Metro Style Apps 一起使用。另一方面,MEF 是一个通用的组件组合框架,并作为一个健壮的依赖注入解决方案。通过组合,我的意思是它可以在运行时发现您的组件并将它们连接在一起。MEF 的重组功能特别有用——基本上系统可以在运行时改变其行为。想象一下,将一个新的 dll 放入应用程序的 bin 文件夹中,该 dll 会立即被拾取并出现新功能!
谈到 Silverlight,MEF 在那里工作就像一个魅力!您可以让 MEF 加载棱镜模块。最后,用于 SL 的 MEF 带有 DeploymentCatalog - 它允许您在运行时下载额外的 XAP,并且假设您利用重组功能,您可以在用户使用应用程序时为应用程序添加新功能,因此您可以节省带宽应用程序启动,因为您不必一次下载所有内容。
综上所述,MEF 与 SL 以及 Prism 一起工作得很好。强烈推荐串联!