MEF(Managed Extensibility Framework)是.NET Framework 4.0一个重要的库,Visual Studio 2010 Code Editor的扩展支持也是基于MEF构建的.MEF的目标是简化创建可扩展的应用程序,其核心类是ComposablePart,即具有组合能力的组 件,每一个称为ComposablePart(中文可为可组合构件,不过下文一直采用英文来表示,这样比较贴切)的组件可以组合(称为Import)其它 组件的功能(其它组件通过声明Expor…
体验Managed Extensibility Framework精妙的设计   MEF(Managed Extensibility Framework)是.NET Framework 4.0一个重要的库,Visual Studio 2010 Code Editor的扩展支持也是基于MEF构建的.MEF的目标是简化创建可扩展的应用程序,其核心类是ComposablePart,即具有组合能力的组件,每一个称为ComposablePart(中文可为可组合构件,不过下文一直采用英文来表示,这样比较贴切…
在"MEF(Managed Extensibility Framework)使用全部扩展组件"中,客户端应用程序调用了所有的扩展组件,而且如果有新的扩展组件加入,必须先关闭程序,再重新启动才可以调用所有组件. 本篇体验使用MEF的ExportMetadata特性,有选择性地使用某些扩展组件,使用Lazy<>,让客户端程序延迟动态加载组件,即使不关闭应用程序,也能调用所有组件.   ● StudentMEF.Lib, 类库,包含接口IStudent.cs ● StudentM…
MEF(Managed Extensibility Framework),所在命名空间是System.ComponentModel.Composition.dll.简单来说,MEF是将符合约定(一般是实现接口)的组件的Parts(类.方法和属性可看作是Part)标记为Export特性,再把这些组件放到与可执行程序同目录的Extensions文件夹中,最后通过把Part标记为Import来引用这些组件,从而为我们创建可扩展组件提供了方便. 以球员踢球为例,体验MEF的工作原理和便捷之处. ● He…
MSDN官方资料,并且微软还提供了SimpleCalculator sample学习样例 http://msdn.microsoft.com/en-us/library/dd460648(v=vs.110).aspx https://mef.codeplex.com/ 博友文章 http://www.cnblogs.com/Mainz/archive/2011/04/27/2030701.html   Ten Reasons to use the Managed Extensibility Fr…
概述 Managed Extensibility Framework(MEF)是.NET平台下的一个扩展性管理框架,它是一系列特性的集合,包括依赖注入(DI)以及Duck Typing等.MEF为开发人员提供了一个工具,让我们可以轻松的对应用程序进行扩展并且对已有的代码产生最小的影响,开发人员在开发过程中根据功能要求定义一些扩展点,之后扩展人员就可以使用这些扩展点与应用程序交互:同时MEF让应用程序与扩展程序之间不产生直接的依赖,这样也允许在多个具有同样的扩展需求之间共享扩展程序. 本文将介绍一…
Managed Extensibility Framework(MEF)是微软的一个用来扩展.NET应用程序的框架,它最初为了满足Visual Studio里的编辑器的需求,比如说,延迟加载所有东西和细粒度协定.随着托管代码慢慢地取代基于COM的扩展模型,MEF框架也逐渐成型. MEF是在Codeplex上开源的,并且现在已经是.Net 4.0的一部分.我们可以用它非常容易的实现插件框架.一个简单的示例如下(使用时需要添加System.ComponentModel.Composition.dll…
1.什么是MEF MEF是一个来自于微软协作构建扩展应用的新框架,它的目的是在运行中的应用中添加插件.MEF继承于.NET 4.0 Framework平台,存在于各种应用平台的系统程序集中 2.程序集 System.ComponentModel.Composition.dll 3.关键结构 Import Export Compose 4.相关知识 Part:一个对象,能导入或者导出与应用程序 Catalog:一个对象,帮助在程序集或者文件夹中查找有效的构建部件 Contract:导入和导出部分需…
最美丽的,现代化的和惊人的移动 UI 设计就在这里.今天,我们挑选了12个来自 Behance 和 Dribbble 网站的优秀用户体验的手机界面设计.这些界面设计作品都是由世界各地的优秀设计师分享,可以从中获取灵活,帮助你更好的设计出自己的优秀界面. 您可能感兴趣的相关文章 创意设计:折叠效果在移动App中的应用 经典设计:12个漂亮的移动APP网站案例 分享15套免费的扁平化界面设计素材下载 12套免费的 PSD 格式 Android UI 素材 40款 iPhone 和 iPad 应用程序…
场景:一个middleware可以具体为一个函数,而由前面的gin 路由分析可得,每一个路径都对有一个HandlersChain 与其对应. 那么实际上增加一个middleware的过程,就是将每一个路由策略加进来之前,与其绑定,这样就能使得这一类的路由到来的时候触发这个中间件生效. 下面看看gin web framework中是如何实现的? 首先是:gin.default()函数 // Default returns an Engine instance with the Logger and…
C#测试代码: using System; class Program { static void A() { try { Console.WriteLine("Throwing an exception"); throw new Exception("Did you catch it?"); } finally { Console.WriteLine("A.finally()"); } } static void B() { try { C()…
Background We’ve been hearing a lot of good feedback on the recently released update to the Entity Framework in .NET 4. This release marks a significant advancement from the first release that shipped with .NET 3.5 SP1. I’m not going to spend time he…
『可复用』这个词相信大家都熟悉,通过『可复用』的组件,可以大大提高软件开发效率. 值得注意的事,当我们设计一个可复用的面向对象组件时,需要保证其独立性,也就是我们熟知的『高内聚,低耦合』原则. 组件化设计的思路 不管是开发客户端应用程序还是开发服务器端应用程序,『组件』这个词我们并不陌生.不管是在iOS中的xib,还是在AngularJS的Component,或者后端开发的 User Control,可复用的组件是面向对象开发的基础.所以在Unity 3D 框架设计时,组件化是核心的概念.那么如…
在我们设计和开发应用程序时,经常要用到控件.比如开发一个客户端WinForm应用程序时,微软就为我们提供了若干控件,这些控件为我们提供了可被定制的属性和事件.属性可以更改它的外观,比如背景色,标题等,而事件可以丰富控件的行为,比如最常见的『按钮点击』,谁也不能确定点击之后将发生什么事,是连接数据库呢还是弹出警告框,在不同的场景下,『按钮点击』 的行为往往呈现不一致.所以,与其举棋不定,还不如把处理委托给开发者,这就是『OnClick』事件. SubView行为多变性 在上篇文章中,我阐述了为什么…
什么是 『动态数据集合』 ?简而言之,就是当集合添加.删除项目或者重置时,能提供一种通知机制,告诉UI动态更新界面.有经验的程序员脑海里迸出的第一个词就是 ObservableCollection.没错,它在WPF中盛行其道,通过它开发者可以很方便的达到动态更新界面.要在Unity 3D中使用ObservableCollection还是有些许困难的,因为Mono并不提供ObservableCollection类.但实际上,自己动手去构建一个『动态数据集合』也非难事,核心在于怎样去传播通知.这也是…
转自: http://developer.51cto.com/art/201104/255455_all.htm .NET 是 Microsoft XML Web services 平台.MEF是.NET Framework 4.0一个重要的库,Visual Studio 2010 Code Editor的扩展支持也是基于MEF构建的.下面让我们一起来看. MEF(Managed Extensibility Framework)是.NET Framework 4.0一个重要的库,Visual S…
摘要:.NET 是 Microsoft XML Web services 平台.MEF是.NET Framework 4.0一个重要的库,Visual Studio 2010 Code Editor的扩展支持也是基于MEF构建的.下面让我们一起来看. MEF(Managed Extensibility Framework)是.NET Framework 4.0一个重要的库,Visual Studio 2010 Code Editor的扩展支持也是基于MEF构建的.MEF的目标是简化创建可扩展的应…
前言:最近去了趟外地出差,介绍推广小组开发的框架类产品.推广对象是本部门在项目上面的同事——1到2年工作经验的初级程序员.在给他们介绍框架时发现很多框架设计层面的知识他们都没有接触过,甚至没听说过,这下囧了~~于是乎在想该如何跟他们解释MEF.AOP.仓储模式等方面的东东.本来 C#基础系列 应该还有两篇关于异步的没有写完,奈何现在要推广这些个东西,博主打算先介绍下项目中目前用到的些技术,异步的往后有时间再做分享.C#进阶系列主要围绕MEF.AOP.仓储模式.Automapper.WCF等展开.…
.NET自带IOC容器MEF之初体验   本文主要把MEF作为一种IOC容器进行讲解,.net中可用的IOC容器非常多,如 CastleWindsor,Unity,Autofac,ObjectBuilder,StructureMap,Spring.Net等,这些第三方工具各不相同,但功能大体都相同,大都需要事先对接口与实现进行配对(通过代码或配置文件),然后由系统自动或手动来通过接口来获得相应实现类的实例,对象实例化的工作由IOC容器自动完成. 概述    官方说法: Managed Exten…
引用地址:https://msdn.microsoft.com/zh-cn/library/gg145045.aspx C# using引用时,不知道有哪些命名空间,这下转载收集一篇,方面查找使用. NET Framework 类库是一个由类.接口和值类型组成的库,通过该库中的内容可访问系统功能.它是生成 .NET Framework 应用程序.组件和控件的基础.类库中的命名空间和命名空间类别在下表中列出,在此参考中有详细记录.将按使用情况列出命名空间和类别,最常用的命名空间会先列出. 命名空间…
.net framework 自从 2002 年发展至今,已经历了好几个版本,1.0, 1.1, 2.0, 3.0, 3.5 等不同的版本更替,.net framework 的Redistributable Package也愈来愈大,到了 .NET Framework 3.5 SP1 时已经膨胀到 231MB,除非软件本身就很大,不然对于 .NET 软件的Redistribute是相当不利的,除非客户端本身就有安装 .NET Framework,否则几乎都要夹带一个 .NET Framework…
背景叙述 在传统的基于 .Net Framework 框架下进行的 MEF 开发,大多是使用 MEF 1,对应的命名空间是 System.ComponentModel.Composition.在 DotNet Core 中,微软为了伟大的跨平台策略,引入了 MEF 2,其对应的命名空间是 System.Composition,这个需要开发者自己在 Nuget 上进行下载安装 Microsoft.Composition.2 与 1 相比,无论是在支持平台上还是性能上都有改进,值得我们探讨一下. 动…
1.什么是MEF 先来看msdn上面的解释:MEF(Managed Extensibility Framework)是一个用于创建可扩展的轻型应用程序的库. 应用程序开发人员可利用该库发现并使用扩展,而无需进行配置. 扩展开发人员还可以利用该库轻松地封装代码,避免生成脆弱的硬依赖项. 通过 MEF,不仅可以在应用程序内重用扩展,还可以在应用程序之间重用扩展. 也有人把MEF解释为“依赖注入”的一种方式,那么什么是“依赖注入”?如果这样解释,感觉越陷越深......根据博主的理解,了解MEF只需要…
MEF,Managed Extensibility Framework,现在已经发布了三个版本了,它们是 MEF 和 MEF2. 等等!3 去哪儿了?本文将教大家完成基于 MEF2 的开发.   MEF 和 MEF2 其实微软发布了四个版本的 MEF: 随着 .NET Framework 4.0 发布,微软称之为 MEF 随着 .NET Framework 4.5 发布,微软让它更好用了,微软称之为 MEF2,但因为接口兼容,也直接称之为 MEF .NET 开发团队觉得 MEF 第一代性能太差,…
本文告诉大家 dotnet framework 的源代码类库的意思 下面列出来 dotnet framework 源代码的各个类库的作用. System System 命名空间包含基本类和基类,这些类定义常用的值和引用数据类型.事件和事件处理程序.接口.属性和异常处理. System.Activities System.Activities 命名空间包含在 Window Workflow Foundation 中创建和处理活动所需要的所有类. System.AddIn System.AddIn…
转自:http://www.cnblogs.com/ulex/p/4186881.html IOC容器:工具较多,大体功能都相同,大都需要事先对接口与实现进行配对(通过代码或配置文件),然后由系统自动或手动通过接口来获得相应实现类的实例,对象实例化的工作由IOC容器自动完成. 概述:MEF :Managed Extensibility Framework(MEF)是.NET平台下的一个扩展性管理框架,他是一系列特性的集合,包括依赖注入等. 解决的问题: 1.MEF为宿主应用提供了一种标准的途径来…
from:http://msdn.microsoft.com/en-us/library/ms229335.aspx 我们平时在VS.net里引用的那些类库就是从这里来的 The .NET Framework class library is a library of classes, interfaces, and value types that provides access to system functionality and is designed to be the foundat…
前言 .Net FrameWrok的每个版本都要他的新特性的加入,比如,NET1.1中的委托,NET2.0中的泛型,NET3.0中的Linq,.NET4.0中的动态类型,那么.NET Framework 4.5有什么新特性呢? [caption id="attachment_1238" align="alignnone" width="600"] Net Framework4.5新特性[/caption] .NET Framework4.5的新特…
在MEF出现以前,其实微软已经发布了一个类似的框架,叫MAF(Managed Add-in Framework),它旨在使应用程序孤立和更好的管理扩展,而MEF更关心的是可发现性.扩展性和轻便性,后者更lightweight.我们将跟随MEF官网来学习. The Managed Extensibility Framework or MEF is a library for creating lightweight, extensible applications. It allows appli…
本文主要把MEF作为一种IOC容器进行讲解,.net中可用的IOC容器非常多,如 CastleWindsor,Unity,Autofac,ObjectBuilder,StructureMap,Spring.Net等,这些第三方工具各不相同,但功能大体都相同,大都需要事先对接口与实现进行配对(通过代码或配置文件),然后由系统自动或手动来通过接口来获得相应实现类的实例,对象实例化的工作由IOC容器自动完成. 概述    官方说法: Managed Extensibility Framework(ME…