`

MEF,扩展预览

阅读更多

MEF,a primitive!

MEF,"发现-重用-可动态组合";不依赖的特征编程。

 

什么是扩展?

扩展的本质是可以在多个程序中重用。扩展仍可以象原来一样,以程序特定的方式来实现。

 

MEF是什么?
MEF是微软为方便可扩展程序的创建,而提供的可管理的扩展框架简称,对程序扩展具有发现和组合能力。MEF是微软的原生框架,存在在.Net FX基准中。

 

用它解决什么问题?
通俗地说,就是支持插件模型。简化了运行时进行扩展这一问题的解决。

 

具体来说,MEF

(1)是宿主程序显化自身、揭示和曝光自已,为使用(或消费)外部扩展提供标准方式,而且对于扩展的互相依赖,则要做到正确组织、按正确的顺序将它们连接在一起;

(2)宿主程序定位和载入相关可行的扩展,发现机制的支持;

(3)允许使用额外的元数据以标记扩展,方便富查询和过滤。结构图如下。



 

  

怎么解决的?
核心是两块儿:目录表和容器。
目录表(catalog),用于发现扩展;
组合容器(CompositionContainer),协调实例创建并满足依赖关系。

 

最重要的类是哪个?

组合部件类(ComposablePart),有下列作用:

 

(1)组合部件类提供一至多个输出(Exports),当然后者也可能依赖到一至多个外部提供的服务或输入(Imports);

 

(2)组合部件类用来管理实例,MEF会缺省实现--给定类型(given type)的对象实例。只要遵循输入/输出合约,便一直支持可扩展可增添的组合部件实现;

 

(3)每个输入和输出都有合约(合约即输入和输出间的桥),输出合约可更进一步包括元数据,根据发现(discovery)再进行过滤。

 

(4)容器通过与栏目交互去访问组合部件。容器本身解决了部件的依赖性,并把输出显化到外部世界。如需要,可以直接向容器添加组合部件的实例。

 

(5)栏目返回组合部件,很可能会是程序的扩展。可能会有宿主程序所提供组件的输入(依赖),并且可能有其它的输出。

 

(6)组合部件实现,缺省地,使用基于特征的元数据,进行输入和输出声明。

 

小记:

微软重要的融合机制。



 

 

  • 大小: 46.7 KB
  • 大小: 64.3 KB
  • 大小: 84.1 KB
  • 大小: 94.5 KB
分享到:
评论

相关推荐

    MEF可扩展框架实现简易例子

    实现了一个MEF可扩展框架的简易例子,可参考MEF是如何实现并工作的

    MEF模块解耦,WCF Rest 扩展 基础示例

    MEF模块解耦,WCF Rest 扩展 基础示例

    Mef demo Mef demo

    Mef demoMef demo

    vs-mef, Visual Studio 使用的托管扩展性框架( MEF ) 实现.zip

    vs-mef, Visual Studio 使用的托管扩展性框架( MEF ) 实现 ( 管理扩展性框架工作室的视觉风格) 特性一个新的,更快的主机,为你现有的MEF部件重用已经使用的MEF属性ExportFactory<T> 支持创建具有作用域生命周期的子...

    扩展性MEF.rar111

    扩展性MEF.rar111

    MEF框架源代码 MEF框架源代码 MEF框架源代码

    MEF框架源代码 MEF框架源代码 MEF框架源代码

    MEF 10.2.pdf

    这是目前metro ethernet 技术最权威的标准met,该文档是mef10.2

    C# MEF使用实例

    MEF实例,MEF实例,MEF实例,MEF实例,MEF实例,MEF实例,MEF实例

    MEF框架入门

    MEF全称Managed Extensibility Framework(受管理扩展性框架),是微软.NET框架下为提高应用和组件复用程度而推出的。使用MEF能够使静态编译的.NET应用程序转换为动态组合,这将是创建可扩展应用、可扩展框架和应用...

    MEF 插件化开发简单案例

    MEF 让扩展不仅可在应用程序内重复使用,还可以跨程序重复使用。传统的 C/S 端开发,如果项目不是特别复杂,常规的开发模式还是可以应对的。但是一旦场景复杂度提升,一个小小业务功能的修改就需要更新整个客户端,...

    Silverlight Mef Demo

    使用MEF构建可扩展的Silverlight应用程序,这个Demo实现了一个可多重扩展的运算器,可以动态下载包,也可以静态导入。可以作为很好的MEF入门示例吧。

    WPF prism MEF 架构

    WPF prism MEF 架构

    《MEF入门》

    MEF入门,适合架构师和设计师学习,不错的资料

    mef与wcf整合

    这个代码介绍了mef与wcf整合的一个基础方案,通过mef实现动态和模块化管理wcf的一个基础实现思路。

    MEF9认证测试规范

    MEF9,认证测试规范,交换设备MEF认证必须.

    MEF 简单实例

    托管扩展性框架(Managed Extensibility Framework,简称MEF),是微软.NET框架下为提高应用和组件复用程度而推出的,用于使组件能够最大化的重用。使用MEF能够使静态编译的.NET应用程序转换为动态组合,这将是创建...

    MEF14认证测试规范

    MEF14,以太网交换机设备MEF认证必须

    MEF框架整理学习内容

    MEF框架整理学习内容

    C#MEF简单例子

    这段代码是一个MEF的小例子,适合入门看,老手请绕道。C#写的。

Global site tag (gtag.js) - Google Analytics