BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

托管扩展性框架发布Preview 4版本

| 作者 Al Tenhundfeld 关注 0 他的粉丝 ,译者 赵劼 关注 5 他的粉丝 发布于 2009年2月13日. 估计阅读时间: 4 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。
微软的托管扩展性框架(Managed Extensibility Framework,MEF)是一个托管在CodePlex上的开源(MS-PL).NET应用程序组合框架。MEF主要提供了两方面内容:一个插件模型和一个控制反转容器。 
 
MEF目前还处于开发阶段,alpha版本,不过它的目标是使应用程序和组件能够尽可能的复用。这个想法使一个应用程序从“静态编译”转变为“动态组合”。传统的控制反转容器对于特定需求一般采用“向内关注”的模式,例如某个类需要一个日志记录器和一个事物上下文。而MEF更像一个插件提供者,“向外关注”于扩展点的释放。

MEF Preview 4的源代码已经提供下载。Preview 4的发布记录中写道:
  • 诊断功能上的增强——当组合错误发生时将提供更多的错误信息。
  • (创建期)生存策略的增强——导入器(Importer)能够为一个注入的对象请求一个特别的创建策略。现在,不能销毁(Non-disposable)且不共享的对象能够在容器销毁之前被垃圾收集器释放,之前的问题在于此类对象会被容器永久保留。
  • 去除AllowNonPublicCompositionAttribute——私有和内部的成员现在同样允许注入。
  • 命名空间的清理——System.ComponentModel.Composition中添加了两个新的命名空间:“.Hosting”和“.Primitives”。“Hosting命名空间包含了托管应用程序时所需的常用类型,例如ExportProvider、CompositionContainer以及各种Catalog。Primitives命名空间包含了实现自定义编程模型的类型,例如ComposablePart、ImportDefinition和ExportDefinition。”
  • 类型名的清理——许多类型名称被缩短了,这会造成破坏性的改变:
    • ComposablePartCatalog及相关类型从System.ComponentModel.Composition移动至System.ComponentModel.Composition.Primitives。
    • AttributedTypesPartCatalog改名为TypeCatalog
    • AttributedAssemblyPartCatalog改名为AssemblyCatalog
    • DirectoryPartCatalog改名为DirectoryCatalog
    • AggregatingComposablePartCatalog改名为AggregateCatalog
    • Catalog Caching扩展API作了内部修改。
  • 更新了示例应用程序:
    • Meflook——类似Outlook的客户端
    • Meftris——类似俄罗斯方块的游戏,每种形状作为插件提供
    • Extensible File Explorer——文件浏览器,拥有可扩展的视图,收藏文件浏览器,以及Shell服务。
要使用托管扩展性框架进行开发需要.NET Framework 3.5和Visual Studio 2008。

查看英文原文:Managed Extensibility Framework Preview 4

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT