2010-07-09 54 views
3

我正在用Silverlight观看MEF或Prism的一些教程,但也在做侧面的一些MAF工作(System.AddIn),并认为这可能也适用。我看到棱镜和MEF几乎是一样的东西,但棱镜拥有事件聚合器。MAF vs. MEF vs. Prism

有没有人有关于MAF如何与Silverlight一起工作的想法?

回答

4

类似的帖子... Choosing between MEF and MAF (System.AddIn)

至于MEF对PRISM,差异超出事件聚集的存在 - 特别是可扩展性,发现和模块化的不同的概念。在这一点上,这些是一些免费的产品。 PRISM 4的6月1日下降支持MEF(而不是Unity)作为DI容器。 Glenn对MEF here有很好的解释。

+0

伟大的职位非常感谢! – Ryan 2010-07-10 21:52:29

+0

有趣,但我只是尝试引用System.AddIn到我的silverlight 4项目,它不在那里:(所以我想我不能使用那个吸... – Ryan 2010-07-13 02:13:29

3

所以MEF是不是与PRISM一样。 Prism是一个UI组合框架,可以与WPF,Silverlight,WP7,Surface一起使用,也可能与Win8的基于C#的Metro风格应用程序一起使用。另一方面,MEF是一个通用的组件构架框架,并且充当一个健壮的依赖注入解决方案。通过构图,我的意思是它可以在运行时发现你的组件,并将它们连接在一起。 MEF对其重构功能特别有用 - 基本上系统可以在运行时改变其行为。想象一下,将一个新的dll放入应用程序的bin文件夹中,该dll会立即启动并显示新的功能!

说到Silverlight,MEF就像魅力一样在那里工作!您可以通过MEF加载棱镜模块。最后,MEF for SL附带DeploymentCatalog - 它允许您在运行时下载其他XAP,并假设您利用重新构建功能,您可以在用户使用应用程序时为应用程序添加新功能,因此您可以节省带宽因为您无需一次下载所有内容。因此,总结起来,MEF与SL以及Prism都有很好的合作关系。强烈推荐串联!

+0

“想象一下,将新的DLL放入应用程序的bin文件夹,该DLL是马上就拿起来了,新的功能显示出来了!“这很好,但是删除dll或者卸载它对于MEF来说有点问题。 – gljivar 2012-12-14 08:18:29