新HIS产品(客户端设计文档).docx 8页

  • 0
  • 0
  • 0
  • 约1.2万字
  • 2020-09-21 发布
文档工具:
    1. 1、本文档共8页,可阅读全部内容。
    2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
    3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
    4. 文档侵权举报电话:19940600175。
    Managed Extensibility Framework (MEF) 什么是 MEF? 扩展性问题 MEF 提供什么 MEF 适用于何处? MEF 和 MAF 简单计算器:一个示例应用程序 撰写容器和目录 具有属性的导入和导出 进一步的导入和 ImportMany 计算器逻辑 采用新类扩展简单计算器 采用新程序集扩展简单计算器 结束语 \o "单击以折叠。双击以全部折叠。" 什么是 MEF? Managed Extensibility Framework 即 MEF 是用于创建轻量、可扩展应用程序的库。?它让应用程序开发人员得以发现和使用扩展且无需配置。?它还让扩展开发人员得以轻松地封装代码并避免脆弱的紧密依赖性。?MEF 让扩展不仅可在应用程序内重复使用,还可以跨程序重复使用。 \o "单击以折叠。双击以全部折叠。" 扩展性问题 想象你是必须为扩展性提供支持的大型应用程序的设计者。?你的应用程序必须包含可能很多的较小组件,且其负责创建和运行较小组件。 解决问题最简单的方法就是将组件作为源代码包括在你的应用程序并直接从代码中调用它们。?这有很多明显缺点。?最重要的是,你无法在未调试源代码的情况下添加新组件,这是一项可能被接受的限制(例如在 Web 应用程序中),但不适用于客户端应用程序。?同样造成问题的是,你无法访问组件的源代码,因为组件可能由第三方进行了发展,同时由于同样的原因你不能允许第三方访问你的源代码。 一个稍许复杂的方法为提供扩展点或接口来允许应用程序和组件间的分离。?在此模块下,你可能提供组件可实现的接口以及使接口能与应用程序交互使用的 API。?这解决了要求源代码访问的问题,但它仍然存在自身问题。 因为应用程序缺少自行发现组件的能力,所以必须明确对其指出可用且应加载的组件。?这通常通过在配置文件中明确记录可用组件来完成。?这意味着确保组件正确变成了维护问题,尤其当要求执行更新的人员是最终用户而非开发人员时。 此外,组件能够与另外的组件进行沟通,除了通过应用程序自身的严格定义的通道。?通常不会出现应用程序设计者未预测到特定通信的需求的情况。 最终,组件开发人员必须接受包含他们实现的接口的程序集所在的硬依赖项。?这使得在一个以上的应用程序中使用组件变得困难,且它还会在你创建组件的测试框架时造成问题。 \o "单击以折叠。双击以全部折叠。" MEF 提供什么 MEF 通过?组合?提供了一种隐式发现它们的方法,而不是明确记录可用组件。?MEF 组件(称为一个?部分),以声明方式详细说明了其依赖项(称为?导入)及其可提供的功能(称为导出)。?当创建一个部分时,MEF 组合引擎利用从其他部分获得的功能满足其导入需要。 该方法解决了在之前部分中讨论的问题。?因为 MEF 部分以声明方式详细说明了其可在运行时发现自身的功能,这意味着应用程序不使用硬编码引用或脆弱的配置文件也能够使用 MEF 部分。?MEF 让应用程序得以通过元数据发现和检查部分,而无须将部分实例化甚至于加载其程序集。?因此,无须仔细说明应当何时加载扩展以及如何加载。 除了它提供的导出之外,部件能够指出其导入(将由其他部件填写)。?这不仅使部件之间的通信成为可能还使其变得简单,并且实现了良好的代码分解。?例如,对于许多组件都很普通的服务可被分解为单独部分,可轻易地进行调试和替换。 因为 MEF 模块在特定的应用程序集上没有硬依赖项,所以它允许扩展在不同应用程序之间重复使用。?这使得开发用于测试扩展组件的测试工具(独立于应用程序)变得简单。 通过使用 MEF 编写的可扩展应用程序声明了一个可由扩展组件填写的输入,它还可能为了向扩展揭示应用程序服务而声明导出。?每个扩展组件都声明一个导出,还有可能声明导入。?通过此方法,扩展组件自身为自动可扩展。 \o "单击以折叠。双击以全部折叠。" MEF 适用于何处? MEF 是 .NET Framework 4 的组成部分,适用于所有使用 .NET Framework 的地方。?你可以在客户端应用程序(不论其是否使用 Windows 窗体或其他技术)或使用 ASP.NET 的服务端应用程序里使用 MEF。 \o "单击以折叠。双击以全部折叠。" MEF 和 MAF .NET Framework 的早期版本引入了 Managed Add-in Framework (MAF),旨在让应用程序隔离和托管扩展。?MAF 与 MEF 相比,MAF 的重点级别较高,它关注扩展隔离和程序集加载及卸载,而 MEF 则关注可发现性、可扩展性和可移植性。?这两个框架可以平稳地相互操作,且一个单独的应用程序可以利用这两者。 \o "单击以折叠。双击以全部折叠。" 简单

    文档评论(0)

    • 内容提供方:wxc6688
    • 审核时间:2020-09-21
    • 审核编号:6151210235002243

    相似文档