插件式框架与MEF

1 篇文章 0 订阅

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

在这里插入图片描述

【集成部署】

【插件式部署】

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

二、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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 对于“c”的问题,需要进一步明确问题的具体内容。在数学中,“c”可能代表一些常数或系数,例如在一元一次方程中,c通常代表常数项;在求导中,c则代表常数函数的导数为零;在复数中,c则常用于表示实部。 在计算机领域中,C语言是一种广泛使用的编程语言,它具有高效、可移植、简洁等特点,成为了操作系统、网络、嵌入系统等方面的主流开发语言。同时,“c”也是C语言代码中的一个标记符号,通常用于表示变量或函数名。 除此之外,在其他领域中,“c”也可能有不同的含义和用法。例如在物理学中,c代表光速常数;在化学中,c可能代表一种化合物的命名方等。 综上所述,对于“c”的问题需要明确具体的语境和意义,才能准确回答。 ### 回答2: C是计算机科学中的一种编程语言,也是一种很常见的编程语言。它由美国贝尔实验室的丹尼斯·里奇在20世纪70年代初开发而成。 C语言具有简洁、高效的特点,被广泛应用于系统软件和应用软件开发中。C语言通过控制硬件资源和底层操作系统功能,提供了对计算机底层的直接访问能力,因此在开发操作系统、嵌入系统和驱动程序等方面有着广泛的应用。 C语言的语法简洁明了,易于学习和理解。它具有结构化的特点,支持模块化的程序设计,程序可以分成多个独立的、可复用的模块,方便代码的维护和扩展。C语言还提供了丰富的库函数,开发者可以利用这些库函数快速实现各种功能。 C语言是编写高效代码的重要工具。由于C语言的语法和特性与机器语言非常接近,因此编写的程序在执行效率上非常高。C语言还可以直接调用汇编语言,利用汇编语言进行优化,进一步提高了程序的性能。 总之,C语言是一种重要的编程语言,广泛应用于计算机科学领域。其简洁、高效、灵活的特点使得它成为开发各种软件和系统的首选语言之一。对于想要从事编程领域的人来说,掌握C语言是一个重要的基础,可以帮助他们理解底层原理,提高程序的执行效率,实现各种功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BoBPage

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值