AICon日程100%就绪,9折倒计时最后一周 了解详情
写点什么

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

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

关注

评论

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

词向量word2vec(图学习参考资料1)

汀丶人工智能

图神经网络 图学习 11月月更

【简历优化】如何在简历中最大化体现出自己的学习能力?

王中阳Go

高效工作 面试 高效学习 简历 11月月更

9位资深技术专家!来自香山团队、平头哥等大咖云集的龙蜥RV专场回顾来了

OpenAnolis小助手

芯片 risc-v 龙蜥社区 2022云栖大会 技术专场

CSS学习笔记(七)

lxmoe

CSS 前端 学习笔记 11月月更

Git 命令的基本使用clone、push 等

忙着长大#

常见的API安全漏洞类型

阿泽🧸

11月月更 API漏洞

如何搭建数据指标体系

穿过生命散发芬芳

11月月更 数据指标体系

服务至上的时代,生态才是ToB软件厂商发展加速的油门

ToB行业头条

计算机网络:局域网的基本概念和体系结构

timerring

计算机网络 局域网 11月月更

读《计算机是怎样跑起来的》体会

听风go

ubuntu安装 GitLab、创建 group、user 和 project 并授权

忙着长大#

gitlab

GitLab 服务的数据备份与恢复

忙着长大#

gitlab

Redhat持久化日志与实战练习

阿柠xn

Linux 运维 11月月更

第三章TCP/IPip地址概念与应用

初学者

TCP/IP IP地址 11月月更

2022-11-13:以下go语言代码中,如何获取结构体列表以及结构体内的指针方法列表?以下代码应该返回{“S1“:[“M1“,“M2“],“S2“:[],“S3“:[“M1“,“M3“]},顺序不限

福大大架构师每日一题

golang AST 福大大

第一章TCP/IP协议

初学者

TCP/IP 11月月更

沿着公路,驶入隧道,寻访OpenHarmony的桃花源记

脑极体

tips-mac安装jdk及设置环境变量

无崖子Z

如何在 Kubernetes 中创建命名空间?

wljslmz

Kubernetes 命名空间 11月月更

极客时间运维进阶训练营第三周作业

chenmin

极客时间运维进阶训练营第三周作业

老曹

Zebec 创始人Sam Thapaliya11月12日Twitter Space 发言内容回顾

股市老人

案例体验HTTP2.0多路复用

小鑫同学

前端 HTTP2.0 11月月更

打破国内应用商店发展局限,vivo应用商店9.0创新突围

ToB行业头条

架构误区系列4:volatile task

agnostic

延迟任务 领域建模

极客时间运维进阶训练营第三周作业

LiaoWD

数据治理的核心:大数据开发平台

小鲸数据

大数据 数据开发 数据平台 数据开发平台 调度平台

What's new in dubbo-go v3.0.3

apache/dubbo-go

【愚公系列】2022年11月 微信小程序-app.json配置属性之subpackages和preloadRule

愚公搬代码

11月月更

【C语言】extern 关键字

謓泽

11月月更

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