- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Managed Extensibility Framework (MEF)什么是 MEF?扩展性问题MEF 提供什么MEF 适用于何处?MEF 和 MAF简单计算器:一个示例应用程序撰写容器和目录具有属性的导入和导出进一步的导入和 ImportMany计算器逻辑采用新类扩展简单计算器采用新程序集扩展简单计算器结束语什么是 MEF?Managed Extensibility Framework 即 MEF 是用于创建轻量、可扩展应用程序的库。?它让应用程序开发人员得以发现和使用扩展且无需配置。?它还让扩展开发人员得以轻松地封装代码并避免脆弱的紧密依赖性。?MEF 让扩展不仅可在应用程序内重复使用,还可以跨程序重复使用。扩展性问题想象你是必须为扩展性提供支持的大型应用程序的设计者。?你的应用程序必须包含可能很多的较小组件,且其负责创建和运行较小组件。解决问题最简单的方法就是将组件作为源代码包括在你的应用程序并直接从代码中调用它们。?这有很多明显缺点。?最重要的是,你无法在未调试源代码的情况下添加新组件,这是一项可能被接受的限制(例如在 Web 应用程序中),但不适用于客户端应用程序。?同样造成问题的是,你无法访问组件的源代码,因为组件可能由第三方进行了发展,同时由于同样的原因你不能允许第三方访问你的源代码。一个稍许复杂的方法为提供扩展点或接口来允许应用程序和组件间的分离。?在此模块下,你可能提供组件可实现的接口以及使接口能与应用程序交互使用的 API。?这解决了要求源代码访问的问题,但它仍然存在自身问题。因为应用程序缺少自行发现组件的能力,所以必须明确对其指出可用且应加载的组件。?这通常通过在配置文件中明确记录可用组件来完成。?这意味着确保组件正确变成了维护问题,尤其当要求执行更新的人员是最终用户而非开发人员时。此外,组件能够与另外的组件进行沟通,除了通过应用程序自身的严格定义的通道。?通常不会出现应用程序设计者未预测到特定通信的需求的情况。最终,组件开发人员必须接受包含他们实现的接口的程序集所在的硬依赖项。?这使得在一个以上的应用程序中使用组件变得困难,且它还会在你创建组件的测试框架时造成问题。MEF 提供什么MEF 通过?组合?提供了一种隐式发现它们的方法,而不是明确记录可用组件。?MEF 组件(称为一个?部分),以声明方式详细说明了其依赖项(称为?导入)及其可提供的功能(称为导出)。?当创建一个部分时,MEF 组合引擎利用从其他部分获得的功能满足其导入需要。该方法解决了在之前部分中讨论的问题。?因为 MEF 部分以声明方式详细说明了其可在运行时发现自身的功能,这意味着应用程序不使用硬编码引用或脆弱的配置文件也能够使用 MEF 部分。?MEF 让应用程序得以通过元数据发现和检查部分,而无须将部分实例化甚至于加载其程序集。?因此,无须仔细说明应当何时加载扩展以及如何加载。除了它提供的导出之外,部件能够指出其导入(将由其他部件填写)。?这不仅使部件之间的通信成为可能还使其变得简单,并且实现了良好的代码分解。?例如,对于许多组件都很普通的服务可被分解为单独部分,可轻易地进行调试和替换。因为 MEF 模块在特定的应用程序集上没有硬依赖项,所以它允许扩展在不同应用程序之间重复使用。?这使得开发用于测试扩展组件的测试工具(独立于应用程序)变得简单。通过使用 MEF 编写的可扩展应用程序声明了一个可由扩展组件填写的输入,它还可能为了向扩展揭示应用程序服务而声明导出。?每个扩展组件都声明一个导出,还有可能声明导入。?通过此方法,扩展组件自身为自动可扩展。MEF 适用于何处?MEF 是 .NET Framework 4 的组成部分,适用于所有使用 .NET Framework 的地方。?你可以在客户端应用程序(不论其是否使用 Windows 窗体或其他技术)或使用 ASP.NET 的服务端应用程序里使用 MEF。MEF 和 MAF.NET Framework 的早期版本引入了 Managed Add-in Framework (MAF),旨在让应用程序隔离和托管扩展。?MAF 与 MEF 相比,MAF 的重点级别较高,它关注扩展隔离和程序集加载及卸载,而 MEF 则关注可发现性、可扩展性和可移植性。?这两个框架可以平稳地相互操作,且一个单独的应用程序可以利用这两者。简单计算器:一个示例应用程序查看 MEF 能做什么最简单的方法就是构建一个简单的 MEF 应用程序。?在此示例中,你构建了一个叫作简单计算器的非常简单的计算器。?简单计算器旨在创建一个接受形式为“5+3”或“6-2”的基础运算命令然后返回正确答案的控制台应用程序。?使用 MEF,你将能够添加新的操作人员而无须更改应用程序代码。请参阅简单计算器示例。开始,在 Visual Studio
您可能关注的文档
最近下载
- DB34_T 3222-2018 臭鳜鱼加工技术规程.docx VIP
- 20G520-1_2钢吊车梁6m_9m(2020年合订本-高清版).pdf VIP
- 2024年电厂化学专业题库(附答案).pdf VIP
- 屠景明著《象棋实用残局》1956年版-.pdf VIP
- UNIT1 NEVER GIVE IN NEVER, NEVER, NEVER文库.ppt VIP
- 下肢静脉血栓防治课件PPT最新完整版本.pptx VIP
- 食品厂项目计划书.docx VIP
- 七年级上册人教版历史知识点总结.docx VIP
- kosher认证申请表(kosherapplicationform).doc VIP
- 行香子》秦观课件.pptx VIP
原创力文档


文档评论(0)