当前位置:  开发笔记 > 前端 > 正文

MEF:PRISM的替代品?

如何解决《MEF:PRISM的替代品?》经验,为你挑选了2个好方法。

MEF在多大程度上取代了PRISM?



1> Glenn Block..:

今天我会说Prism和MEF相互补充.就像棱镜和团结一样.Prism引入了一组特定的服务,如RegionManager,DelegateCommand和EventAggregator,它们有助于构建复合应用程序.另一方面,MEF是一种更通用的组合机制,用于应用程序和框架的可扩展性,无论它们是复合还是否.关于MEF的关键区别在于它的可发现性,这意味着它可以外出并动态发现所有可用的部件.

您可能有兴趣查看包含Unity和MEF集成层的MEF contrib项目(mefcontrib.codeplex.com).通过该扩展,Unity在幕后管理MEF,因此您不会与两个contianers竞争.它的优点是它允许您将Unity用于一般Pocos,并使用MEF来发现扩展.因此,当Prism目前在Unity上构建时,您可以使用它来利用MEF.要使用contrib项目,您必须对Unity Bootstrapper进行一些细微的更改,但它应该是相当简单的.

肯定有一些重叠.关于模块,它最突出的地方.Prism使用IModule作为发现手段.在MEF中,任何组件都可以是一个组件,可以动态发现.这意味着使用MEF,您可以从上到下实现模块化,使用Prism时,模块是更精细的单元.复合应用程序绝对是我们在MEF时间上所面临的一个领域.随着时间的推移,您很可能会看到越来越多的支持在MEF内部构建这些类型的应用程序.我们正在与p&p合作,以确保在发生这种情况时,顺利过渡.



2> Anderson Ime..:

编辑:不要读这个答案.这是令人尴尬的错误.我失败了.阅读下面的Glenn Block.

这并不明显,但这是同一个问题: 托管可扩展性框架(MEF)与复合UI应用程序块(CAB)

重复帖子中的共识是MEF和Prism以不同的方式提供相同的基本功能集,除了Prism提供Event Aggregator,它是应用程序组件之间的pub-sub通信方式.但是,您可以将其与MEF一起使用.真的,这几乎取决于偏好.


读一些东西并说"谁是这个笨蛋?这太奇怪了......"
呃......我知道这是从一年前开始的,我学到了很多,但这个答案确实是错的.格伦布洛克的帖子更准确.你可以看到这一点最突出的事实是,Prism V4可以选择*使用*MEF来处理各种形式的IoC和合成.我无法删除甚至是自己的帖子.
+1纯正诚实.虽然你的答案不是"最正确的",但它提供了与格伦答案形成鲜明对比的见解.MEF/Prism/Unity/MAF之间的责任/功能线非常模糊(你不应该得到一个downvote).
推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有