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

19

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

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

我们并没有固定使用任何特定的框架,但是想要使用其中的大型玩家之一。因此,我们已经开始检查Caliburn / Caliburn Micro、Prism、MVVM Light和Reactive UI。

大部分我阅读的有关模块化的内容都建议使用PRISM和MEF来处理这个过程的部分。因为我仍在努力理解其中的一些内容,所以我不确定是否忽略了一些明显的选项。我能够找到这篇文章,介绍如何使用一些其他框架来组合类似于PRSIM使用区域等方式的组合应用程序:Caliburn Micro and MEF

有没有人可以指向类似的文章,使用一些其他框架来像PRISM一样组成组合应用程序?理想情况下,我希望在提供最大灵活性的同时尽量减少所需的框架数量。我们不反对采取“最佳品种”的方法,例如使用MEF / PRISM来处理组合和MVVM Light来处理视图管理等;但为什么用两个,如果一个就足够呢?


7
我很好奇你最后选择了什么。 - Anderson Imes
1个回答

30

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

应用程序组合

  • Prism(使用任何IoC容器:MEF、Unity、Ninject、Autofac等。有些事情使得Prism更容易使用MVVM,但我不会称其为全功能的MVVM框架......它主要是模块化应用程序组合框架。)
  • MEF(MEF实际上可以直接进行应用程序组合。它经常被视为仅仅是一个IoC框架,但它具有欺骗性的强大功能。)

MVVM框架

  • ReactiveUI(我最喜欢的)
  • Caliburn
  • 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


谢谢。我认为我大部分已经掌握了这个。我需要查看一些帖子。我会回来告诉你我找到了什么以及我选择了什么。 - Steve Brouillard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接