10 月 23 - 25 日,QCon 上海站即将召开,现在大会已开始正式报名,可以享受 8 折优惠 了解详情
写点什么

托管扩展性框架发布 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:151589
用户头像

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

关注

评论

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

容易混淆的基本概念 成员变量 局部变量 全局变量

NewBoy

前端 移动端 iOS 知识体系 7月月更

Lepton 无损压缩原理及性能分析

vivo互联网技术

对象存储 无损压缩 lepton 图片压缩

SAP UI5 ObjectPageLayout 控件使用方法分享

汪子熙

前端开发 Fiori SAP UI5 ui5 7月月更

第五届 Polkadot Hackathon 创业大赛全程回顾,获胜项目揭秘!

One Block Community

区块链 科技

LLVM之父Chris Lattner:为什么我们要重建AI基础设施软件

OneFlow

人工智能 软件系统

如何让全彩LED显示屏更加节能环保

Dylan

LED LED显示屏

CSS动画篇之炫酷时钟之时钟墙

南城FE

CSS 前端 动画 时钟 7月月更

Vue.js基础环境的搭建以及简单使用Element-ui

是乃德也是Ned

7月月更

蚁群算法(实例帮助理解)

秃头小苏

蚁群算法 7月月更

Node の MongoDB Driver

空城机

mongodb Node 7月月更

基于昇腾AI丨以萨技术推出视频图像全目标结构化解决方案,达到业界领先水平

科技热闻

基于昇腾AI丨爱笔智能推出银行网点数字化解决方案,实现从总部到网点的信息数字化全覆盖

科技热闻

Web3基金会「Grant计划」赋能开发者,盘点四大成功项目

One Block Community

区块链+

购买小间距LED显示屏的三个建议

Dylan

LED显示屏

非技术部门,如何参与 DevOps?

飞算JavaAI开发助手

基于STM32+华为云IOT设计的智能防盗单车锁

DS小龙哥

7月月更

Qt实现json解析

小肉球

7月月更

基于OpenHarmony的智能金属探测器

OpenHarmony开发者

OpenHarmony

ORACLE进阶(三)数据字典详解

No Silver Bullet

oracle 7月月更 数据字典

SpringBoot Webflux解析

Ethan

谈谈对Flink框架中容错机制及状态的一致性的理解

百思不得小赵

flink 容错机制 状态 7月月更

OpenFeign

急需上岸的小谢

7月月更

RingCentral Android启动优化实践

RingCentral铃盛

android 启动流程

LeetCode-145. 二叉树的后序遍历(java)

bug菌

Leet Code 7月月更

微信小程序触底加载与下拉刷新的实现

猪痞恶霸

小程序 前端 7月月更

5G NR系统架构

柒号华仔

5G 网络 7月月更

基于昇腾AI丨高新兴推出城市道路车辆二次识别解决方案,达到业界领先水平

科技热闻

小红书自研KV存储架构如何实现万亿量级存储与跨云多活

小红书技术REDtech

存储 分布式KV 跨云多活

不要再说微服务可以解决一切问题了!

博文视点Broadview

如何将 DevSecOps 引入企业?

SEAL安全

DevOps DevSecOps DevSecOps和敏捷

【LeetCode】判断矩阵是否是一个 X 矩阵Java题解

Albert

LeetCode 7月月更

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