写点什么

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

  • 2009-02-12
  • 本文字数:952 字

    阅读完需:约 3 分钟

微软的

托管扩展性框架(Managed Extensibility Framework,MEF)是一个托管在CodePlex 上的开源(MS-PL).NET 应用程序组合框架。MEF 主要提供了两方面内容:一个插件模型和一个控制反转容器。

MEF 目前还处于开发阶段,alpha 版本,不过它的目标是使应用程序和组件能够尽可能的复用。这个想法使一个应用程序从“静态编译”转变为“动态组合”。传统的控制反转容器对于特定需求一般采用“向内关注”的模式,例如某个类需要一个日志记录器和一个事物上下文。而 MEF 更像一个插件提供者,“向外关注”于扩展点的释放。

  • 诊断功能上的增强——当组合错误发生时将提供更多的错误信息。
  • (创建期)生存策略的增强——导入器(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

2009-02-12 01:151245
用户头像

发布了 157 篇内容, 共 54.4 次阅读, 收获喜欢 6 次。

关注

评论

发布
暂无评论
发现更多内容

并发神器CSP的前世今生

soolaugust

并发编程 并发 Go 语言

前端科普系列(2):Node.js 换个角度看世界

vivo互联网技术

node.js 大前端

前端科普系列(4):Babel —— 把 ES6 送上天的通天塔

vivo互联网技术

Java 大前端 ES6

Python处理PDF的实用姿势

程一初

Python 自动化 办公

宿舍晚上温度高,那是你没听“鬼故事”

华为云开发者联盟

人工智能 AI 华为云 modelarts

utf8字符集下的比较规则

Simon

MySQL 字符集

Python1024办公自动化系列

程一初

Python 自动化 办公

详解责任链模式

大头星

JavaScript 测试系列实战(一):使用 Jest 和 Enzyme 测试 React 组件

图雀社区

单元测试 自动化测试 Jest

带你全面认识 Linux

简爱W

Python处理PPT文件的实用姿势

程一初

Python 自动化 办公

当地铁站都比你更努力

escray

学习 面试

【程序员自救指南】中关村保洁大叔的一句话竟然帮我转正了

华为云开发者联盟

服务器 数字化 华为云 企业上云 云服务器

LeetCode680-验证回文字符串 Ⅱ-Easy

书旅

LeetCode

Python处理图像文件的实用姿势

程一初

Python 自动化 办公

Python处理邮件和机器人的实用姿势

程一初

Python 自动化 办公

代理模式详解

大头星

前端科普系列(3):CommonJS 不是前端却革命了前端

vivo互联网技术

Java 大前端 脚本

影响音视频延迟的关键因素(三): 传输、渲染

ZEGO即构

buffer API RTC sdk

Python处理音频文件的实用姿势

程一初

Python 自动化 办公

LeetCode1160---拼写单词---Easy

书旅

LeetCode

MySQL从入门到精通

书旅

MySQL 索引

Python处理Word文件的实用姿势

程一初

Python 自动化 办公

MacOS 环境下 Python 访问 MySQL

李绍俊

解读 Reference

浮白

ThreadLocal Reference ReferenceQueue Finalizer WeakHashMap

如何与面试官更好的沟通

escray

学习 面试

从《三体》到“中美科技战”,3分钟理解“网络”D丝为什么要迎娶“算力”白富美

华为云开发者联盟

数据 网络 芯片 算力 三体

数据库设计

Jayli

数据库

业务架构是什么?

周金根

BIZBOK 业务架构 IT帮 周金根

Python处理视频文件的实用姿势

程一初

Python 自动化 办公

Python处理Excel文件的实用姿势

程一初

Python 自动化 办公

托管扩展性框架发布Preview 4版本_.NET_Al Tenhundfeld_InfoQ精选文章