用于模块化MVVM应用程序的Prism + MEF的替代品

时间:2011-02-15 15:08:52

标签: mvvm prism mef mvvm-light caliburn

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

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

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

我读到的模块化大部分内容都表明PRISM和MEF可以处理这一过程。由于我还在围绕其中的一些,我不确定我是否缺少一些明显的选择。我能够在Caliburn Micro and MEF上找到这篇文章。

任何人都可以指点我使用其他一些框架编写复合应用程序的类似文章,类似于PRSIM使用区域等的方式吗?理想情况下,我想限制所需框架的数量,同时提供最大的灵活性。我们不反对采用“最佳”方法并使用例如MEF / PRISM来处理View管理的合成和MVVM Light等;但为什么在1时会使用2?

1 个答案:

答案 0 :(得分:29)

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

申请构成

  • Prism(使用任何IoC容器:MEF,Unity,Ninject,Autofac等。有一些东西可以让PrVM更容易使用MVVM,但我不会把它称为全功能的MVVM框架...它主要是一个模块化应用程序组合框架。)
  • MEF(MEF实际上可以开箱即用。它通常被认为只是一个IoC框架,但它看起来很强大。)

MVVM框架

  • ReactiveUI(我最喜欢的)
  • 卡利
  • Caliburn Micro
  • MVVM Light

我认为这有助于您做出决定。您可以选择自己喜欢的应用程序和应用程序组合技术,以及您喜欢的MVVM框架,并将其用于比赛。

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

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

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

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