《MEF程序设计指南》博文汇总
摘要:

Managed Extensibility Framework(MEF)是.NET平台下的一个扩展性管理框架,它是一系列特性的集合,包括依赖注入(DI)以及Duck Typing等。MEF为开发人员提供了一个工具,让我们可以轻松的对应用程序进行扩展并且对已有的代码产生最小的影响,开发人员在开发过程中根据功能要求定义一些扩展点,之后扩展人员就可以使用这些扩展点与应用程序交互;同时MEF让应用程序与扩展程序之间不产生直接的依赖,这样也允许在多个具有同样的扩展需求之间共享扩展程序。
阅读全文
posted @
2010-08-11 18:15
Bēniaǒ
阅读(43826)
推荐(38) 编辑
MEF程序设计指南九:重组(Recomposition)MEF部件
摘要: 通过前篇八篇程序设计指南的学习,相信大家都知道应用程序部件的组合都是在初始化的时候进行装配的。如果当应用程序已经初始化完成了,此时又有新的部件被导入且进行装配,按照目前的实现方式就无法实现了,我们需要一种可以进行动态装配、动态组合以及可以动态的进行新的部件被装配组合的通知的功能,于此MEF所提供的重组(Recomposition)部件特性就可以派上用场了。
阅读全文
posted @
2010-07-31 00:47
Bēniaǒ
阅读(7770)
推荐(5) 编辑
MEF程序设计指南八:部件生命周期(Parts Lifetime)托管
摘要: MEF中的每一个可进行动态装配的导出部件都是具有生命周期的,在没有特别需求的情况下一般都没有对生命周期进行管理,而实际上MEF已为每一个部件进行了默认的生命周期管理,MEF的生命周期分为三种:Any、Shared及NonShared,被定义在System.ComponentModel.Composition.CreationPolicy枚举对象中。
阅读全文
posted @
2010-07-28 23:14
Bēniaǒ
阅读(7720)
推荐(3) 编辑
MEF程序设计指南七:使用目录(Catalog)动态装载xap与目录筛选(Filtered Catalog)
摘要: 如果不使用MEF进行托管扩展处理,只有通过WebClient进行程序包的下载、解析。实际上MEF的动态下载的底层实现一样是使用的WebClient,然后利用AggregateCatalog进行动态组合,详细可查看MEF的源代码(路径:Composition.Initialization\System\ComponentModel\Composition\Hosting\DeploymentCatalog.cs)。
阅读全文
posted @
2010-07-26 08:40
Bēniaǒ
阅读(8583)
推荐(5) 编辑
MEF程序设计指南六:MEF中的目录服务(DeploymentCatalog)
摘要:MEF提供的基于特性的编程模型,可以动态的根据目录找出程序集里面的所有程序部件。 对于MEF的目录服务MEF分别为WPF和Silverlight提供了不同的目录机制。使用目录的主要功能就是方便实现程序部件的装载,以及动态的组合应用程序部件等功能,更可以非常方便的得到程序部件的程序集、导出部件等相关数据。
阅读全文
posted @
2010-07-19 22:53
Bēniaǒ
阅读(8293)
推荐(2) 编辑
MEF程序设计指南五:迟延(Lazy)加载导出部件(Export Part)与元数据(Metadata)
摘要: MEF中使用导出与导入,实质上就是对一个对象的实例化的过程,通过MEF的特性降低了对象的直接依赖,从而让系统的设计达到一种高灵活、高扩展性的效果。在具体的设计开发中,存在着某些对象是不需要在系统运行或者的附属对象初始化的时候进行实例化的,仅仅只需要在需要使用到他的时候才会进行实例化,从系统的上来说这也是提高系统性能的一种可行的实现方式,这种方式就可以理解为对象的迟延初始化,或者叫迟延加载。MEF也对此使用场景提供了完善的实现机制,下面来看看在MEF中的迟延初始化是如何使用的。
阅读全文
posted @
2010-07-14 22:54
Bēniaǒ
阅读(12273)
推荐(5) 编辑
MEF程序设计指南四:使用MEF声明导出(Exports)与导入(Imports)
摘要:本篇介绍了如何使用MEF声明导出(Exports)与导入(Imports),包括类、字段、属性以及方法级别的部件导出、导出的应用。
阅读全文
posted @
2010-07-11 17:22
Bēniaǒ
阅读(11118)
推荐(5) 编辑
MEF程序设计指南三:MEF中组合部件(Composable Parts)与契约(Contracts)的基本应用
摘要:本篇介绍了如何定义组合部件(Composable Parts)和契约(Contracts),以及基于契约的的多重组件部件的相关应用,包括接口的多实现,如何使用ImportManyAttribute特性通过契约获取接口的多重实现实例等。最后还介绍了通过契约进行约束,实现装配指定契约的部件。
阅读全文
posted @
2010-07-04 02:17
Bēniaǒ
阅读(13774)
推荐(6) 编辑
MEF程序设计指南二:Silverlight中使用CompositionInitializer宿主MEF
摘要:本篇介绍了如何在Silverlight中使用CompositionInitializer宿主MEF,并通过不同的导入导出配置,演示了MEF的动态装载配件组合和一些简单的应用案例。
阅读全文
posted @
2010-07-03 14:29
Bēniaǒ
阅读(11994)
推荐(5) 编辑
MEF程序设计指南一:在应用程序中宿主MEF
摘要:本篇通过一个简单的应用实例介绍了如何在应用程序中宿主MEF,以及最基本的导入、导出和部件组合的应用。
阅读全文
posted @
2010-07-03 00:26
Bēniaǒ
阅读(26689)
推荐(14) 编辑