欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于MVC和AutoFac的插件架構(gòu)的實現(xiàn)方法

文檔序號:6549139閱讀:166來源:國知局
基于MVC和AutoFac的插件架構(gòu)的實現(xiàn)方法
【專利摘要】本發(fā)明的一種基于MVC和AutoFac的插件架構(gòu)的實現(xiàn)方法屬于數(shù)據(jù)處理【技術(shù)領(lǐng)域】。該插件架構(gòu)的實現(xiàn)方法包括如下步驟:S1,定義平臺插件接口;S2,實現(xiàn)基礎(chǔ)類的方法;S3,基于MVC架構(gòu)進行插件編寫,添加插件基礎(chǔ)描述,插件的基本信息以及安裝時需要讀取的信息。本發(fā)明的插件架構(gòu)的實現(xiàn)方法通過MVC和AutoFac設(shè)計一套高效靈活的插件機制,使得系統(tǒng)高效處理核心流程和數(shù)據(jù),把與具體業(yè)務(wù)相關(guān)的功能交給插件實現(xiàn),提高系統(tǒng)的靈活性以及可擴展性,適應(yīng)系統(tǒng)的不斷更新?lián)Q代。
【專利說明】基于MVC和AutoFac的插件架構(gòu)的實現(xiàn)方法

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及系統(tǒng)數(shù)據(jù)處理【技術(shù)領(lǐng)域】,尤其涉及一種基于MVC和AutoFac的插件架構(gòu)的實現(xiàn)方法。

【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)的發(fā)展及政府企業(yè)信息化的日益發(fā)展及普及,信息系統(tǒng),特別是互聯(lián)網(wǎng)應(yīng)用,需要更大的開放性以及不斷的擴展更新,插件機制、MVC設(shè)計模式均得到廣泛的應(yīng)用。但目前,插件機制的設(shè)計模式往往與MVC無法很好地整合,插件無法充分利用MVC的優(yōu)勢,做到最大程度的靈活。


【發(fā)明內(nèi)容】

[0003]為了解決上述技術(shù)問題,本發(fā)明的目的是提供一種基于MVC和AutoFac的插件架構(gòu)的實現(xiàn)方法,該插件架構(gòu)的實現(xiàn)方法通過MVC和AutoFac設(shè)計一套高效靈活的插件機制,使得系統(tǒng)高效處理核心流程和數(shù)據(jù),把與具體業(yè)務(wù)相關(guān)的功能交給插件實現(xiàn),提高系統(tǒng)的靈活性以及可擴展性,適應(yīng)系統(tǒng)的不斷更新?lián)Q代。
[0004]本發(fā)明的目的是通過以下技術(shù)方案實現(xiàn)的:
[0005]一種基于MVC和AutoFac的插件架構(gòu)的實現(xiàn)方法,包括如下步驟:
[0006]SI,定義平臺插件接口;
[0007]S2,實現(xiàn)基礎(chǔ)類的方法;
[0008]S3,基于MVC架構(gòu)進行插件編寫,添加插件基礎(chǔ)描述,插件的基本信息以及安裝時需要讀取的信息。其中所有的Model均實現(xiàn)IModel,所有的ControlIer均實現(xiàn)IController,若用到AutoFac反射,則定義DependencyRegistrar ;通過實現(xiàn)IRouteProvider,注冊所有路由;實現(xiàn)IPlugin或繼承BasePlugin,實現(xiàn)安裝及卸載方法。
[0009]通過上述本發(fā)明的技術(shù)方案,本發(fā)明的插件架構(gòu)的實現(xiàn)方法提出一種基于MVC的插件機制,利用AutoFac的優(yōu)秀1C(控制反轉(zhuǎn))框架,設(shè)計出一種可以靈活擴展的插件機制及方法。
[0010]具體效果為:定義一套完善的接口,把系統(tǒng)的細(xì)節(jié)交給系統(tǒng)外的處理,系統(tǒng)只控制每個業(yè)務(wù)的總體流程。通過MVC規(guī)范每個插件的設(shè)計模式,并利用AutoFac的高效1C機制,設(shè)計一套高效靈活的插件機制,使得系統(tǒng)高效處理核心流程,把與具體業(yè)務(wù)相關(guān)的功能交給插件實現(xiàn),提高系統(tǒng)的靈活性以及可擴展性,適應(yīng)系統(tǒng)的不斷更新?lián)Q代。

【專利附圖】

【附圖說明】
[0011]圖1為本發(fā)明的插件架構(gòu)的實現(xiàn)方法的流程框圖;
[0012]圖2為本發(fā)明的插件機制總體架構(gòu)圖;
[0013]圖3為本發(fā)明的插件機制詳細(xì)結(jié)構(gòu)圖;
[0014]圖4為本發(fā)明的插件工作流程。

【具體實施方式】
[0015]下面結(jié)合附圖對本發(fā)明的【具體實施方式】進行詳細(xì)說明:
[0016]如圖1所示,一種基于MVC和AutoFac的插件架構(gòu)的實現(xiàn)方法,包括如下步驟:
[0017]SI,定義平臺插件接口;
[0018]S2,實現(xiàn)基礎(chǔ)類的方法;
[0019]S3,基于MVC架構(gòu)進行插件編寫,添加插件基礎(chǔ)描述,插件的基本信息以及安裝時需要讀取的息。
[0020]如圖2和圖3所示,所述的步驟SI定義平臺插件接口包括在平臺的架構(gòu)中,增加以下接口:
[0021]IPlugin:插件的操作接口,包括設(shè)置插件的屬性信息,安裝插件接口,卸載插件接口,定義安裝方法以及卸載方法。
[0022]IPluginFinder接口,為獲取插件的信息接口,定義關(guān)于獲取插件信息的基礎(chǔ)方法。
[0023]IRouteProvider,為路由注冊接口,定義路由注冊方法。
[0024]IRoutePublisher,為路由發(fā)布接口,定義路由發(fā)布方法。
[0025]IController,定義相關(guān)Act1n的基礎(chǔ)方法。
[0026]IModel,定義與本平臺相關(guān)的基礎(chǔ)實現(xiàn)方法,所述的IModel包括ToString。
[0027]IService,用于插件調(diào)用平臺的相關(guān)接口,定義基礎(chǔ)的業(yè)務(wù)邏輯方法。所述的IService 包括 Insert、Update、delete、FindOne 或 FindAll 方法。
[0028]如圖2、圖3和圖4所示,所述的步驟S2實現(xiàn)基礎(chǔ)類的方法包括在平臺的架構(gòu)中,增加以下方法:
[0029]RoutePublisher,實現(xiàn)IRouteProvider中的所有方法,利用AutoFac反射出所有路由注冊類,并對所有路由進行注冊。
[0030]BasePlugins,實現(xiàn) IPlugin 的所有方法。
[0031]PluginDescriptor,插件的實體類,所述的PluginDescriptor包含插件的版本、描述,類型,文件名稱和作者等一系列狀態(tài)。
[0032]PluginFileParser,包含對插件的實體操作方法,所述的PluginFileParser包括寫入插件的描述信息,用于解析插件文件,讀入插件配置,安裝插件和保存插件配置。
[0033]PluginFinder,加載所有的插件,并獲取它們的信息,供平臺調(diào)用插件的所有方法,及用于獲取插件的數(shù)據(jù)。
[0034]PluginManager,插件管理的主類,為平臺提供插件的安裝、保存以及卸載的方法。
[0035]XXXService,實現(xiàn)IService,實現(xiàn)讀取本平臺數(shù)據(jù)的方法。所述的XXXService中的方法包括 Insert、Update、delete、FindOne 或 FindAll。
[0036]所述的步驟S3插件編寫包括基于MVC開發(fā)插件具體功能,其中所有的Model均實現(xiàn)IModel,所有的Controller均實現(xiàn)IController,若用到AutoFac反射,則定義DependencyRegistrar ;通過實現(xiàn)IRouteProvider,注冊所有路由;實現(xiàn)IPlugin或繼承BasePlugin,實現(xiàn)安裝及卸載方法。
[0037]下面對附圖作一詳盡說明:
[0038]如圖2所示,本發(fā)明中基于MVC及Autofac的插件機制,是基于接口的插件機制,包括以下接口模塊:
[0039]平臺接口模塊,IService。此處IService是最基礎(chǔ)的接口,它是一切Service層(服務(wù)層)所有類的基礎(chǔ)接口,只要實現(xiàn)了 ISerVice的SerVice類,均可無縫地被插件所調(diào)用,使得插件能夠統(tǒng)一、規(guī)范地讀取系統(tǒng)的數(shù)據(jù)。
[0040]插件接口模塊,包括:IModel、IController以及IRoute。由于本發(fā)明是基于MVC模式的,MVC模式的核心包含Model、Controller以及View,并通過Route處理路徑解釋的。而Model、Controller以及Route涉及到核心數(shù)據(jù),因此通過IModel、IController以及IRoute接口的規(guī)范,使得平臺能夠統(tǒng)一、規(guī)范的獲得插件的數(shù)據(jù)。而View主要用于頁面顯示,與數(shù)據(jù)規(guī)范性無關(guān),因此本發(fā)明中的機制無需設(shè)計View的接口。
[0041]關(guān)于MVC的整體機制,如圖2右邊(插件項目)所示,插件必須給予MVC模式開發(fā),并且所有的Model及Controller必須實現(xiàn)平臺的IModel以及IController,插件頁面的路由(Route)需經(jīng)過平臺的路由規(guī)范管理,并在平臺中注冊路由,因此需要實現(xiàn)IRoute接口。當(dāng)有路徑發(fā)出請求,系統(tǒng)根據(jù)實現(xiàn)的Route,找出對應(yīng)的Controller,并調(diào)用對應(yīng)具體的act1n,從Model中獲取數(shù)據(jù),并返回相應(yīng)的View,返回給用戶。
[0042]圖1中所示,本發(fā)明中,所有的接口實現(xiàn)均基于AutoFac進行反射。
[0043]如圖2所示,是本發(fā)明中的基于MVC及AutoFac的插件機制詳細(xì)結(jié)構(gòu)圖,主要是關(guān)于平臺如何管理插件的詳細(xì)架構(gòu)圖。
[0044]IPlugin,插件的操作接口,主要有設(shè)置插件的屬性信息,安裝插件接口,卸載插件接口。
[0045]BasePlugins,實現(xiàn)IPlugin的所有方法,基礎(chǔ)的接口類,一般的插件繼承此類。
[0046]IPluginFinde 接口,獲取插件的信息接口,在 AutoFac 里的 DependencyRegistrar注冊此接口。系統(tǒng)啟動的時候會加載到內(nèi)存里。
[0047]PluginDescriptor,插件的實體類,包含了插件的版本、描述,類型,文件名稱,作者等一系列狀態(tài)。
[0048]PluginFileParser,包含對插件的實體操作方法,主要是寫入插件的描述信息,用于解析插件文件,讀入插件配置,安裝插件,保存插件配置等。
[0049]PluginFinder,加載所有的插件,并獲取它們的信息,主要供平臺調(diào)用插件的所有方法,及用于獲取插件的數(shù)據(jù)。
[0050]PluginManager,插件管理的主類,為平臺提供插件的安裝、保存以及卸載的方法。
[0051]關(guān)于插件MVC的路由的接口 IRoute 分為 IRouteProvider 以及 IRoutePublisher。IRouteProvider主要是插件接口,每個插件需要注冊路由,必須實現(xiàn)IRouteProvider,而IRoutePublisher是平臺接口,平臺實現(xiàn)了此方法,用于發(fā)布所有實現(xiàn)了 IRouteProvider的插件類,并把實現(xiàn)了的路由注冊到系統(tǒng)中。
[0052]本發(fā)明中,所有的接口均通過AutoFac的1C機制進行反射。
[0053]如圖3所示,插件機制的工作流程如下:
[0054]每個插件新建時,必須實現(xiàn)IPlugin或者繼承BasePlugin,若需要多個路由,貝丨J實現(xiàn)IMiscPlugin。此處插件的實現(xiàn)類,實現(xiàn)了安裝方法以及卸載方法。同時插件建立好插件的描述信息,供平臺安裝插件時使用。
[0055]插件必須遵循MVC模式設(shè)計,每一個Model以及Controller必須實現(xiàn)IModel以及IController。路由的注冊,必須通過實現(xiàn)IRouteProvider的類進行注冊。
[0056]插件可以通過AutoFac把IService的具體類反射出來并調(diào)用,達到讀取平臺數(shù)據(jù)的功能。
[0057]平臺根據(jù)插件的描述信息以及實現(xiàn)的安裝以及卸載類,通過AutoFac的1C映射出插件具體的安裝方法安裝插件。安裝成功后即把插件注冊到平臺中。
[0058]安裝時,平臺通過AutoFac的1C機制,把插件中的Model、Controller以及路由的注冊類反射到平臺中。
[0059]當(dāng)有請求送達時,平臺通過安裝時注冊的路由,對路徑進行分析,根據(jù)AutoFac反射出的具體Controller中具體的Act1n進行處理,并返回相應(yīng)的View返回給用戶。
[0060]以上所述,僅為本發(fā)明較佳的【具體實施方式】,但本發(fā)明的保護范圍并不局限于此,任何熟悉本【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)該以權(quán)利要求書的保護范圍為準(zhǔn)。
【權(quán)利要求】
1.一種基于MVC和AutoFac的插件架構(gòu)的實現(xiàn)方法,其特征在于,包括如下步驟: Si,定義平臺插件接口 ; S2,實現(xiàn)基礎(chǔ)類的方法; S3,基于MVC架構(gòu)進行插件編寫,添加插件基礎(chǔ)描述,插件的基本信息以及安裝時需要讀取的信息。
2.根據(jù)權(quán)利要求1所述的插件架構(gòu)的實現(xiàn)方法,其特征在于,所述的步驟SI包括在平臺的架構(gòu)中,增加以下接口: IPlugin:插件的操作接口,包括設(shè)置插件的屬性信息,安裝插件接口,卸載插件接口,定義安裝方法以及卸載方法; IPluginFinder接口,為獲取插件的信息接口,定義關(guān)于獲取插件信息的基礎(chǔ)方法; IRouteProvider,為路由注冊接口,定義路由注冊方法; IRoutePublisher,為路由發(fā)布接口,定義路由發(fā)布方法; IController,定義相關(guān)Act1n的基礎(chǔ)方法; IModel,定義與本平臺相關(guān)的基礎(chǔ)實現(xiàn)方法; IService,用于插件調(diào)用平臺的相關(guān)接口,定義基礎(chǔ)的業(yè)務(wù)邏輯方法。
3.根據(jù)權(quán)利要求2所述的插件架構(gòu)的實現(xiàn)方法,其特征在于,所述的IModel包括ToString0
4.根據(jù)權(quán)利要求2所述的插件架構(gòu)的實現(xiàn)方法,其特征在于,所述的IService包括Insert、Update、delete、FindOne 或 FindAll 方法。
5.根據(jù)權(quán)利要求1所述的插件架構(gòu)的實現(xiàn)方法,其特征在于,所述的步驟S2包括在平臺的架構(gòu)中,增加以下方法: RoutePublisher,實現(xiàn)IRouteProvider中的所有方法,利用AutoFac反射出所有路由注冊類,并對所有路由進行注冊; BasePlugins,實現(xiàn)IPlugin的所有方法; PluginDescriptor,插件的實體類; PluginFileParser,包含對插件的實體操作方法; PluginFinder,加載所有的插件,并獲取它們的信息,供平臺調(diào)用插件的所有方法,及用于獲取插件的數(shù)據(jù); PluginManager,插件管理的主類,為平臺提供插件的安裝、保存以及卸載的方法; XXXService,實現(xiàn)IService,實現(xiàn)讀取本平臺數(shù)據(jù)的方法。
6.根據(jù)權(quán)利要求5所述的插件架構(gòu)的實現(xiàn)方法,其特征在于,所述的PluginDescriptor包含插件的版本、描述,類型,文件名稱和作者狀態(tài)。
7.根據(jù)權(quán)利要求5所述的插件架構(gòu)的實現(xiàn)方法,其特征在于,所述的PluginFi IeParser包括寫入插件的描述信息,用于解析插件文件,讀入插件配置,安裝插件和保存插件配置。
8.根據(jù)權(quán)利要求5所述的插件架構(gòu)的實現(xiàn)方法,其特征在于,所述的XXXService中的方法包括 Insert、Update、delete、FindOne 或 FindAll。
9.根據(jù)權(quán)利要求1所述的插件架構(gòu)的實現(xiàn)方法,其特征在于,所述的步驟S3包括基于MVC開發(fā)插件具體功能,其中所有的Model均實現(xiàn)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日 優(yōu)先權(quán)日:2014年6月11日
【發(fā)明者】陳秋汝 申請人:深圳德協(xié)保稅電子商務(wù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
富裕县| 左云县| 盈江县| 永新县| 西乌| 专栏| 定州市| 禄丰县| 徐闻县| 镇原县| 通道| 巴塘县| 涟源市| 灵山县| 宿州市| 阳东县| 嘉兴市| 普定县| 巴塘县| 余庆县| 牟定县| 南江县| 沙河市| 滨海县| 阜新市| 台东县| 渝中区| 建始县| 莱阳市| 巴林左旗| 房产| 通化县| 兰溪市| 嵩明县| 龙胜| 迁西县| 大理市| 东阳市| 西畴县| 图们市| 安多县|