`

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(Managed Extensibility Framework)是.NET框架中一个用于构建可扩展应用程序的库,它提供了模块化和解耦的功能。在本示例中,我们将深入探讨如何利用MEF实现应用模块之间的解耦,以及如何将WCF(Windows ...

    扩展性MEF.rar111

    标题“扩展性MEF.rar111”表明这是一个关于“扩展性MEF”的压缩文件,可能是某个教程、文档集合或者代码示例。由于标题中包含rar后缀,我们可以推断这是一份RAR格式的压缩包,通常用于存储多个相关文件。而“111”...

    C#MEF简单例子

    MEF 是一个由 Microsoft 开发的框架,用于实现应用程序的可扩展性和模块化。它提供了一种简单的方式来组合不同的组件,以创建一个功能强大且灵活的应用程序。 MEF 的主要概念 1. 组件(Component): MEF 中的组件...

    Mef demo Mef demo

    Mef demoMef demo

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

    MEF(Managed Extensibility Framework,管理可扩展性框架)是.NET Framework中一个强大的插件化框架,由微软开发并引入。MEF的主要目的是简化应用程序的可扩展性和模块化,使得开发者可以轻松地添加、替换或更新...

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

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

    MEF(Managed Extensibility Framework)入门教程

    MEF(Managed Extensibility Framework)是微软.NET框架下的一个受管理扩展性框架,主要用于提高应用程序和组件的复用程度。它最初是作为.NET Framework 4.0的一部分推出的,但由于其强大功能,在.NET 3.5版本中也...

    MEF 10.2.pdf

    MEF 10.2文档是关于metro ethernet技术的权威标准,名为“Technical Specification MEF 10.2 Ethernet Services Attributes Phase 2”,该文档于2009年10月27日发布。MEF,即Metro Ethernet Forum(城域以太网论坛)...

    mef与wcf整合

    MEF(Managed Extensibility Framework)是.NET Framework中一个用于构建可扩展应用程序的库,它允许开发者在运行时发现并使用外部组件,实现了插件式架构。而WCF(Windows Communication Foundation)是微软提供的...

    Silverlight Mef Demo

    《使用MEF构建可扩展的Silverlight应用:深入解析“Silverlight Mef Demo”》 在软件开发领域,可扩展性是系统设计的关键要素之一。Microsoft Expression Blend的Silverlight技术结合Managed Extensibility ...

    MEF框架整理学习内容

    **Managed Extensibility Framework (MEF)**,即托管可扩展性框架,是Microsoft在.NET平台下推出的一个用于解决应用程序扩展性的框架。在MEF发布之前,业界已经有多种依赖注入框架来解决软件系统的扩展性问题,例如...

    WPF prism MEF 架构

    MEF(Managed Extensibility Framework)则是.NET Framework的一个组件,主要用于实现应用程序的插件式架构和扩展性。 **1. Prism库的核心概念** - **模块化(Modularity)**:Prism将应用程序拆分为独立的模块,...

    MEF框架入门

    MEF(Managed Extensibility Framework)是微软推出的一种框架,旨在增强.NET应用程序的扩展性和组件重用性。它允许开发者创建动态组合的应用程序,使得在运行时可以方便地添加、修改或移除功能模块,无需重新编译...

    MEF 注入框架入门导引 ppt

    ### MEF注入框架入门导引知识点详解 #### 一、MEF概述与重要性 - **MEF(Managed Extensibility Framework)**:是.NET Framework中的一个...- 在实际应用中,MEF可以帮助我们构建更加模块化和可扩展的应用程序结构。

    MEF导入usercontrol及服务

    在MEF中,我们可以将UserControl视为一个可扩展的模块,使其能够动态加载和使用。 **3. MEF导入UserControl** 要在WPF应用中使用MEF导入UserControl,首先需要在UserControl类上添加 `[Export]` 特性,表示这个User...

    MEF6-1协议

    这对于构建开放、灵活且可扩展的城域网络至关重要,同时也促进了城域以太网服务市场的健康发展。 总之,MEF6.1作为城域以太网服务的重要标准,其对EVC的分类与定义,以及与MEF31的紧密结合,共同构成了城域以太网...

    MEF+WPF Demo

    **MEF(Managed Extensibility Framework)** 是微软推出的一个扩展性框架,它允许开发者在应用程序中方便地引入和管理插件或者模块。MEF 主要用于构建可扩展的应用程序,使得第三方开发者能够轻松地为应用程序添加...

    Mef_MEFwinForm_

    【描述】"c#的插件小例子程序,方便新手学习插件入门"表明这个项目是为初学者设计的,旨在帮助他们理解和掌握MEF在创建可扩展的、模块化的Windows Forms应用中的基本用法。通过这个例子,开发者可以学习到如何将应用...

    MEF 插件模型

    MEF(Managed Extensibility Framework)是.NET Framework的一个组件,由微软开发,用于实现应用程序的可扩展性。它提供了一种灵活的方式,使得开发者能够轻松地添加、替换或更新应用的功能,而无需修改原始代码。在...

Global site tag (gtag.js) - Google Analytics