IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 插件式框架与MEF -> 正文阅读

[开发工具]插件式框架与MEF

一、插件式架构设计意义
????????为什么采用插件式架构设计?业务上要求在应用程序部署完后,在不需要重新编译、安装应用程序的情况下,仍然可以对应用程序的功能进行扩展;为方便源码管理、项目管理、团队协作以及协同开发需求,将业务逻辑关系分成独立的模块;架构设计需求,将模块解耦,分而治之。

在这里插入图片描述

【集成部署】

【插件式部署】

**插件式架构设计的核心是:业务模块动态加载,而非静态引用。**

二、MEF插件式框架介绍
1、介绍
????????MEF(Managed Extensibility Framework)是微软为大型应用程序(比如Visual Studio)提供的一个功能扩展框架,通过一个混合层提升了灵活性、维护性和可测试性。MEF既可以用于第三方插件支持扩展功能,也能为常见的应用程序带来松耦合插件架构的好处。MEF现在已作为基础库,随.NET Framework中一起发布,命名空间System.ComponentModel.Composition;
2、版本说明

  • .NET Framework 版MEF

随.NET 4.0和Silverlight 4发布的内置MEF,称之为MEF1.0;命名空间:System.ComponentModel.Composition;这个版本提供了标准的扩展模型;Visual Studio 2010 中使用的是该版本;随.NET 4.5 发布了MEF2,该版本与.NET 4.0 中的MEF接口兼容,称之为MEF2.0;相比MEF1.0,MEF2.0更好用;这两个版本统称MEF
源码地址:https://github.com/MicrosoftArchive/mef
相关文档:
1)https://docs.microsoft.com/en-us/dotnet/framework/mef/
2)https://docs.microsoft.com/en-us/dotnet/framework/mef/attributed-programming-model-overview-mef

  • Nuget版MEF

????????通过Nuget发布的轻量级版本,是由.NET Framework 中 MEF2 移植;命名空间System.Compostion,这是一个可移植版本,针对静态混合进行了优化,提供更快的混合,可以用于手机、商店应用、桌面和WEB应用之中。

  • .NET Core版本

由.NET Framework 中 MEF2 移植;
源码地址:https://github.com/dotnet/corefx/tree/master/src
.NET Core 中使用MEF:
http://weblogs.asp.net/ricardoperes/using-mef-in-net-core

  • VS-MEF

????????Visual Studio 开发团队觉得 .NET Framework 里的 MEF2 性能太差,NuGet 版的 MEF2 功能太少,于是自己又写了一个,微软称之为 VS-MEF;从Visual Studio 2013开始就一直使用该版本
源码地址:https://github.com/microsoft/vs-mef.git

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-03-13 22:01:22  更:2022-03-13 22:02:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:55:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码