基于MVC和AutoFac的插件架构的实现方法

文档序号:6549139阅读:148来源:国知局
基于MVC和AutoFac的插件架构的实现方法
【专利摘要】本发明的一种基于MVC和AutoFac的插件架构的实现方法属于数据处理【技术领域】。该插件架构的实现方法包括如下步骤:S1,定义平台插件接口;S2,实现基础类的方法;S3,基于MVC架构进行插件编写,添加插件基础描述,插件的基本信息以及安装时需要读取的信息。本发明的插件架构的实现方法通过MVC和AutoFac设计一套高效灵活的插件机制,使得系统高效处理核心流程和数据,把与具体业务相关的功能交给插件实现,提高系统的灵活性以及可扩展性,适应系统的不断更新换代。
【专利说明】基于MVC和AutoFac的插件架构的实现方法

【技术领域】
[0001]本发明涉及系统数据处理【技术领域】,尤其涉及一种基于MVC和AutoFac的插件架构的实现方法。

【背景技术】
[0002]随着互联网的发展及政府企业信息化的日益发展及普及,信息系统,特别是互联网应用,需要更大的开放性以及不断的扩展更新,插件机制、MVC设计模式均得到广泛的应用。但目前,插件机制的设计模式往往与MVC无法很好地整合,插件无法充分利用MVC的优势,做到最大程度的灵活。


【发明内容】

[0003]为了解决上述技术问题,本发明的目的是提供一种基于MVC和AutoFac的插件架构的实现方法,该插件架构的实现方法通过MVC和AutoFac设计一套高效灵活的插件机制,使得系统高效处理核心流程和数据,把与具体业务相关的功能交给插件实现,提高系统的灵活性以及可扩展性,适应系统的不断更新换代。
[0004]本发明的目的是通过以下技术方案实现的:
[0005]一种基于MVC和AutoFac的插件架构的实现方法,包括如下步骤:
[0006]SI,定义平台插件接口;
[0007]S2,实现基础类的方法;
[0008]S3,基于MVC架构进行插件编写,添加插件基础描述,插件的基本信息以及安装时需要读取的信息。其中所有的Model均实现IModel,所有的ControlIer均实现IController,若用到AutoFac反射,则定义DependencyRegistrar ;通过实现IRouteProvider,注册所有路由;实现IPlugin或继承BasePlugin,实现安装及卸载方法。
[0009]通过上述本发明的技术方案,本发明的插件架构的实现方法提出一种基于MVC的插件机制,利用AutoFac的优秀1C(控制反转)框架,设计出一种可以灵活扩展的插件机制及方法。
[0010]具体效果为:定义一套完善的接口,把系统的细节交给系统外的处理,系统只控制每个业务的总体流程。通过MVC规范每个插件的设计模式,并利用AutoFac的高效1C机制,设计一套高效灵活的插件机制,使得系统高效处理核心流程,把与具体业务相关的功能交给插件实现,提高系统的灵活性以及可扩展性,适应系统的不断更新换代。

【专利附图】

【附图说明】
[0011]图1为本发明的插件架构的实现方法的流程框图;
[0012]图2为本发明的插件机制总体架构图;
[0013]图3为本发明的插件机制详细结构图;
[0014]图4为本发明的插件工作流程。

【具体实施方式】
[0015]下面结合附图对本发明的【具体实施方式】进行详细说明:
[0016]如图1所示,一种基于MVC和AutoFac的插件架构的实现方法,包括如下步骤:
[0017]SI,定义平台插件接口;
[0018]S2,实现基础类的方法;
[0019]S3,基于MVC架构进行插件编写,添加插件基础描述,插件的基本信息以及安装时需要读取的息。
[0020]如图2和图3所示,所述的步骤SI定义平台插件接口包括在平台的架构中,增加以下接口:
[0021]IPlugin:插件的操作接口,包括设置插件的属性信息,安装插件接口,卸载插件接口,定义安装方法以及卸载方法。
[0022]IPluginFinder接口,为获取插件的信息接口,定义关于获取插件信息的基础方法。
[0023]IRouteProvider,为路由注册接口,定义路由注册方法。
[0024]IRoutePublisher,为路由发布接口,定义路由发布方法。
[0025]IController,定义相关Act1n的基础方法。
[0026]IModel,定义与本平台相关的基础实现方法,所述的IModel包括ToString。
[0027]IService,用于插件调用平台的相关接口,定义基础的业务逻辑方法。所述的IService 包括 Insert、Update、delete、FindOne 或 FindAll 方法。
[0028]如图2、图3和图4所示,所述的步骤S2实现基础类的方法包括在平台的架构中,增加以下方法:
[0029]RoutePublisher,实现IRouteProvider中的所有方法,利用AutoFac反射出所有路由注册类,并对所有路由进行注册。
[0030]BasePlugins,实现 IPlugin 的所有方法。
[0031]PluginDescriptor,插件的实体类,所述的PluginDescriptor包含插件的版本、描述,类型,文件名称和作者等一系列状态。
[0032]PluginFileParser,包含对插件的实体操作方法,所述的PluginFileParser包括写入插件的描述信息,用于解析插件文件,读入插件配置,安装插件和保存插件配置。
[0033]PluginFinder,加载所有的插件,并获取它们的信息,供平台调用插件的所有方法,及用于获取插件的数据。
[0034]PluginManager,插件管理的主类,为平台提供插件的安装、保存以及卸载的方法。
[0035]XXXService,实现IService,实现读取本平台数据的方法。所述的XXXService中的方法包括 Insert、Update、delete、FindOne 或 FindAll。
[0036]所述的步骤S3插件编写包括基于MVC开发插件具体功能,其中所有的Model均实现IModel,所有的Controller均实现IController,若用到AutoFac反射,则定义DependencyRegistrar ;通过实现IRouteProvider,注册所有路由;实现IPlugin或继承BasePlugin,实现安装及卸载方法。
[0037]下面对附图作一详尽说明:
[0038]如图2所示,本发明中基于MVC及Autofac的插件机制,是基于接口的插件机制,包括以下接口模块:
[0039]平台接口模块,IService。此处IService是最基础的接口,它是一切Service层(服务层)所有类的基础接口,只要实现了 ISerVice的SerVice类,均可无缝地被插件所调用,使得插件能够统一、规范地读取系统的数据。
[0040]插件接口模块,包括:IModel、IController以及IRoute。由于本发明是基于MVC模式的,MVC模式的核心包含Model、Controller以及View,并通过Route处理路径解释的。而Model、Controller以及Route涉及到核心数据,因此通过IModel、IController以及IRoute接口的规范,使得平台能够统一、规范的获得插件的数据。而View主要用于页面显示,与数据规范性无关,因此本发明中的机制无需设计View的接口。
[0041]关于MVC的整体机制,如图2右边(插件项目)所示,插件必须给予MVC模式开发,并且所有的Model及Controller必须实现平台的IModel以及IController,插件页面的路由(Route)需经过平台的路由规范管理,并在平台中注册路由,因此需要实现IRoute接口。当有路径发出请求,系统根据实现的Route,找出对应的Controller,并调用对应具体的act1n,从Model中获取数据,并返回相应的View,返回给用户。
[0042]图1中所示,本发明中,所有的接口实现均基于AutoFac进行反射。
[0043]如图2所示,是本发明中的基于MVC及AutoFac的插件机制详细结构图,主要是关于平台如何管理插件的详细架构图。
[0044]IPlugin,插件的操作接口,主要有设置插件的属性信息,安装插件接口,卸载插件接口。
[0045]BasePlugins,实现IPlugin的所有方法,基础的接口类,一般的插件继承此类。
[0046]IPluginFinde 接口,获取插件的信息接口,在 AutoFac 里的 DependencyRegistrar注册此接口。系统启动的时候会加载到内存里。
[0047]PluginDescriptor,插件的实体类,包含了插件的版本、描述,类型,文件名称,作者等一系列状态。
[0048]PluginFileParser,包含对插件的实体操作方法,主要是写入插件的描述信息,用于解析插件文件,读入插件配置,安装插件,保存插件配置等。
[0049]PluginFinder,加载所有的插件,并获取它们的信息,主要供平台调用插件的所有方法,及用于获取插件的数据。
[0050]PluginManager,插件管理的主类,为平台提供插件的安装、保存以及卸载的方法。
[0051]关于插件MVC的路由的接口 IRoute 分为 IRouteProvider 以及 IRoutePublisher。IRouteProvider主要是插件接口,每个插件需要注册路由,必须实现IRouteProvider,而IRoutePublisher是平台接口,平台实现了此方法,用于发布所有实现了 IRouteProvider的插件类,并把实现了的路由注册到系统中。
[0052]本发明中,所有的接口均通过AutoFac的1C机制进行反射。
[0053]如图3所示,插件机制的工作流程如下:
[0054]每个插件新建时,必须实现IPlugin或者继承BasePlugin,若需要多个路由,贝丨J实现IMiscPlugin。此处插件的实现类,实现了安装方法以及卸载方法。同时插件建立好插件的描述信息,供平台安装插件时使用。
[0055]插件必须遵循MVC模式设计,每一个Model以及Controller必须实现IModel以及IController。路由的注册,必须通过实现IRouteProvider的类进行注册。
[0056]插件可以通过AutoFac把IService的具体类反射出来并调用,达到读取平台数据的功能。
[0057]平台根据插件的描述信息以及实现的安装以及卸载类,通过AutoFac的1C映射出插件具体的安装方法安装插件。安装成功后即把插件注册到平台中。
[0058]安装时,平台通过AutoFac的1C机制,把插件中的Model、Controller以及路由的注册类反射到平台中。
[0059]当有请求送达时,平台通过安装时注册的路由,对路径进行分析,根据AutoFac反射出的具体Controller中具体的Act1n进行处理,并返回相应的View返回给用户。
[0060]以上所述,仅为本发明较佳的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
【权利要求】
1.一种基于MVC和AutoFac的插件架构的实现方法,其特征在于,包括如下步骤: Si,定义平台插件接口 ; S2,实现基础类的方法; S3,基于MVC架构进行插件编写,添加插件基础描述,插件的基本信息以及安装时需要读取的信息。
2.根据权利要求1所述的插件架构的实现方法,其特征在于,所述的步骤SI包括在平台的架构中,增加以下接口: IPlugin:插件的操作接口,包括设置插件的属性信息,安装插件接口,卸载插件接口,定义安装方法以及卸载方法; IPluginFinder接口,为获取插件的信息接口,定义关于获取插件信息的基础方法; IRouteProvider,为路由注册接口,定义路由注册方法; IRoutePublisher,为路由发布接口,定义路由发布方法; IController,定义相关Act1n的基础方法; IModel,定义与本平台相关的基础实现方法; IService,用于插件调用平台的相关接口,定义基础的业务逻辑方法。
3.根据权利要求2所述的插件架构的实现方法,其特征在于,所述的IModel包括ToString0
4.根据权利要求2所述的插件架构的实现方法,其特征在于,所述的IService包括Insert、Update、delete、FindOne 或 FindAll 方法。
5.根据权利要求1所述的插件架构的实现方法,其特征在于,所述的步骤S2包括在平台的架构中,增加以下方法: RoutePublisher,实现IRouteProvider中的所有方法,利用AutoFac反射出所有路由注册类,并对所有路由进行注册; BasePlugins,实现IPlugin的所有方法; PluginDescriptor,插件的实体类; PluginFileParser,包含对插件的实体操作方法; PluginFinder,加载所有的插件,并获取它们的信息,供平台调用插件的所有方法,及用于获取插件的数据; PluginManager,插件管理的主类,为平台提供插件的安装、保存以及卸载的方法; XXXService,实现IService,实现读取本平台数据的方法。
6.根据权利要求5所述的插件架构的实现方法,其特征在于,所述的PluginDescriptor包含插件的版本、描述,类型,文件名称和作者状态。
7.根据权利要求5所述的插件架构的实现方法,其特征在于,所述的PluginFi IeParser包括写入插件的描述信息,用于解析插件文件,读入插件配置,安装插件和保存插件配置。
8.根据权利要求5所述的插件架构的实现方法,其特征在于,所述的XXXService中的方法包括 Insert、Update、delete、FindOne 或 FindAll。
9.根据权利要求1所述的插件架构的实现方法,其特征在于,所述的步骤S3包括基于MVC开发插件具体功能,其中所有的Model均实现IModel,所有的Controller



b。银练著--笨 ^xSnidaseg 承臶笹 uiSnui 脸笨:^θΡΙλο^^οηιΠ/^-TV TTrv < XT-) Tl oxQ^at r^TT^T^TT^rT^^T~~U t.W: 6 卜 f/ ^7 ^τ->r-ητ t.-T Π / M/ ?τηττ^τι τταα τ Π/^Γ>ζ
【文档编号】G06F9/445GK104166560SQ201410255786
【公开日】2014年11月26日 申请日期:2014年6月11日 优先权日:2014年6月11日
【发明者】陈秋汝 申请人:深圳德协保税电子商务有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1