NopCommerce源码架构详解--插件机制相关源码分析一

我们在软件开发的时候为了让软件本身有比较好的扩展性,而这个扩展又不会对原来的功能和代码进行破坏,这时就要用到软件的插件机制。也就是软件开发商要公布一些插件接口,让别人通过实现这些插件接口就可以为开发出软件本身不具有的插件功能。

插件机制是优秀软件必备的,插件听这名字就知道其作用,当我们需要的时候装上就可以用上插件为我们提供的功能,不需要就可以不用装或者卸载掉。软件中需要定义好插件所要的一些公共接口,而插件开发商只需要实现这些接口就行了。可以这样说,插件机制让软件功能更加丰富,可以完成一些个性化的功能,因为一个软件刚开发出来不可能满足所有人需求。NopCommerce也提供了插件机制,从今天开始蓝狐软件工作室就来为大家分析一下nopCommerce插件机制相关源码及设计思想。

下面来看看我画的NopCommerce插件相关类的类图。

从上图可以看到比较核心的类有PluginDescriptor、PluginFinder、BasePlugin、PluginManager、PluginFileParser,除此之外就是一些抽象接口IPlugin、IPluginFinder、IComparable<PluginDescriptor>等等。

PluginDescriptor:插件描述类,其包含插件名字、作者、类型、所属分组及引用的程序集等信息和一些操作,比如获取插件的实例,比较插件等等。

PluginFinder:插件查找类,其包含插件可能性检测、获取Nop的全部或指定插件相关信息等。

BasePlugin:所有插件的基类,它实现了接口IPlugin,功能主要是插件的安装和卸载。

PluginManager:这个类可以说是Nop插件机制最核心类了,从它的命字就知道它的作用是插件管理,它不仅能获取全部插件相关的信息,而且还能标示插件的安装状态及操作插件的信息。

PluginFileParser:Nop的每一个插件的相关信息是通过文本文件的形式记录的,它自己规定了一定的格式。为了让Nop能够正常的解析、查找到插件,每一个插件都要按照这个格式写它自己的信息。比如我们打开项目的插件NivoSlider,在根目录有一个文件Description.txt,内容如下:

 
  1. Group: Widgets
  2. FriendlyName: Nivo Slider
  3. SystemName: Widgets.NivoSlider
  4. Version: 1.05
  5. SupportedVersions: 3.40
  6. Author: nopCommerce team
  7. DisplayOrder: 1
  8. FileName: Nop.Plugin.Widgets.NivoSlider.dll

这个文件的解析就是靠类PluginFileParser完成的。

 

 

文章转载自:蓝狐软件工作室 » NopCommerce源码架构详解--插件机制相关源码分析一

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值