19

我和我的团队开始计划开发一个模块化应用程序,该应用程序可能会多目标 WPF 和 Silverlight。

我个人有一些使用旧版本 PRISM 使用 MVVM 模式构建复合 Silverlight 应用程序的经验。当时我们还不熟悉 MEF 来处理各种模块依赖关系,所以我们没有使用它。

我们没有与任何特定的框架结婚,但想使用其中一个更大的参与者。因此,我们已经开始研究 Caliburn/Caliburn Micro、Prism、MVVM Light 和 Reactive UI。

我读过的关于模块化的大部分内容都建议使用 PRISM 和 MEF 来处理这部分过程。由于我仍在思考其中的一些内容,因此我不确定我是否遗漏了一些明显的选项。我能够在Caliburn Micro 和 MEF上找到这篇文章。

谁能指出我使用其他一些框架来组成复合应用程序的类似文章,类似于 PRSIM 使用区域等的方式?理想情况下,我想限制所需框架的数量,同时提供最大的灵活性。我们不反对采用“同类最佳”的方法,例如使用 MEF/PRISM 来处理合成,并使用 MVVM Light 进行视图管理等;但是为什么在 1 的时候使用 2 呢?

4

1 回答 1

30

您可能首先应该做的一件事是将它们隔离到适当的存储桶中。我经常看到人们将 MVVM 框架与应用程序组合框架混合在一起。一旦您将它们放在适当的存储桶中,您就可以开始从每个类别中选择一个框架,并将它们组合成您认为的最佳方案。

申请组成

  • Prism(使用任何 IoC 容器:MEF、Unity、Ninject、Autofac 等。使用 Prism 可以使 MVVM 变得更容易,但我不会称其为功能齐全的 MVVM 框架……它主要是一个模块化的应用程序组合框架。)
  • MEF(MEF 实际上能够开箱即用地进行应用程序组合。它通常被认为只是一个 IoC 框架,但它看似强大。)

MVVM 框架

  • ReactiveUI(我最喜欢的)
  • 卡利本
  • 卡利本微
  • MVVM 灯

我认为这将帮助您做出决定。你可以选择你喜欢的应用程序组合技术和你喜欢的 MVVM 框架,然后开始比赛。

至于文章,我没有太多。有很多关于使用 Prism 组合应用程序的好文章(这几乎是它的工作),但这里有一篇关于使用 MEF 组合应用程序的好文章:

http://blogs.microsoft.co.il/blogs/tomershamam/archive/2009/08/11/wpf-mef-declarative-composite-ui.aspx

您还应该在他的博客上查看 Glenn Block 的系列“构建 HelloMEF”。我找不到完整的列表(他与他的标签不一致),但这里是“MEF”标签。这里有很多好东西:

http://blogs.msdn.com/b/gblock/archive/tags/mef/default.aspx?PageIndex=1

于 2011-02-15T19:37:42.457 回答