写点什么

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

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

关注

评论

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

记一次与写作朋友的线下沙龙

架构精进之路

技术交流 杂记 5月日更

微服务注册中心:Consul——概念与基础操作

程序员架构进阶

微服务 Consul 注册中心 28天写作 5月日更

python 常用模块详解

若尘

模块 Python编程 5月日更

k8s 集群下微服务 pod 的各种指标信息监控

Damon

微服务 5月日更

密码学系列之:memory-hard函数

程序那些事

加密解密 密码学 程序那些事

小傅哥,一个有“副业”的码农!

小傅哥

Java 小傅哥 技术成长 码农副业

把数字人民币打造成全球最佳的央行数字货币

CECBC

金融

网络攻防学习笔记 Day25

穿过生命散发芬芳

5月日更 网络攻防

访问控制

escray

学习 极客时间 安全 5月日更 安全攻防技能30讲

【Flutter 专题】120 Flutter & 腾讯移动通讯 TPNS~

阿策小和尚

5月日更 Flutter 小菜 0 基础学习 Flutter Android 小菜鸟

掌握学习方法,成为技术大牛

实力程序员

腾讯云实名认证流程

三掌柜

5月日更

☕【JVM 技术之旅】攻克技术盲点之“JVM常量池们“

洛神灬殇

JVM 5月日更 字符串常量池 静态常量池 运行时常量池

Bzz算力挖矿系统开发节点部署

薇電13242772558

数字货币 算力

“丝绸之舟”创新区块链帮扶模式

CECBC

区块链 丝路

从寻人到航天,科技与公益的下一个交汇点正在“星辰”中诞生

脑极体

Dubbo 路由规则之标签路由

青年IT男

dubbo

选择排序&插入排序 - DAY 15

Qien Z.

排序算法 插入排序 5月日更

架构学习笔记:微服务架构与SOA架构

风翱

微服务 SOA 5月日更

Nginx调试必备的几种技能

运维研习社

nginx 运维 实用技巧 5月日更

CG行业云渲染服务的演进之路

华为云开发者联盟

公有云 CG 渲染 云渲染 影视动画

5分钟速读之Rust权威指南(九)

wzx

rust

聊聊数据分析

数据社

数据分析 5月日更

Java设置Filter过滤了CSS等静态文件的问题

空城机

Java 5月日更

Feed流系统重构-架构篇

勇哥java实战分享

架构 RocketMQ 分库分表 ShardingJDBC redisson

通用连接池帮你解决资源管理难题

万俊峰Kevin

MySQL redis mongodb pool Go 语言

ThreadLocal内存溢出代码演示和原因分析!

王磊

Java 多线程

redis在微服务领域的贡献

捉虫大师

redis dubbo RPC 协议 注册中心

华为推送踩坑记录

mengxn

320万开发者在用的飞桨,全新发布推理部署导航图:打通AI应用最后一公里

百度大脑

人工智能 飞桨

Go 并发编程 — 深度剖析 sync.Pool 源码级原理

奇伢云存储

并发编程 云存储 Go 语言

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