托管可扩展性框架(MEF)与复合UI应用程序块(CAB)

blu*_*blu 5 .net architecture frameworks mef cab

我们目前正在考虑使用CAB或MEF进行下一次应用.我没有看到关于兄弟控制通信如何处理事件代理的编码复制的任何例子,也许我错过了它.MEF之间的控制间通信如何工作?

此外,我们计划使用Infragistics,它为CAB框架提供了额外的组件.Infragistics控制如何整合到MEF中?

总的来说,MEF值得追求一个相当大的,15,000小时的严格开发,应用吗?

Meh*_*ras 7

我可能错了,但我不认为MEF有任何事件经纪.它是一种类似于ioc容器的通用组合引擎,但旨在用于更通用的插件和应用程序可扩展性解决方案.另一方面,CAB和Prism是UI框架,允许由UI组件组成的复合应用程序.由于UI组件很可能需要彼此通信并响应其他UI组件中的活动,因此底层框架需要提供用于UI组件之间的事件(pub/sub)的机制.


Sco*_*ock 6

如果您将MEF与WPF和MVVM模式一起使用,那么您的部件通常会导出ViewModel类和View类(例如DataTemplates等).您的View绑定到ViewModel并使用依赖项属性和命令来回通信.因此,如果A部分需要与B部分通信,那么A部分可以导入对B部分ViewModel的引用,并且它们可以来回进行方法调用.A部分还可以为Part B的事件等注册事件处理程序.


Gle*_*ock 6

MEF不包含事件机制,但您可以将Prism的事件聚合器与MEF一起使用.我在这里做了一个帖子.

http://codebetter.com/blogs/glenn.block/archive/2009/02/23/event-aggregation-with-mef-with-and-without-eventaggregator.aspx

它的工作方式是你基本上导出Prism的复合事件类.

HTH Glenn