程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> NopCommerce架構分析之(四)基於路由實現靈活的插件機制

NopCommerce架構分析之(四)基於路由實現靈活的插件機制

編輯:ASP.NET基礎

NopCommerce支持靈活的插件機制,所謂Web系統插件,其實也就是可以像原系統的一部分一樣使用。

Web系統的使用方式就是客戶端發送一個請求,服務端進行解析。在asp.net MVC中對客戶請求的解析是通過路由的方式實現的。

所謂路由就是在客戶端發生請求時,對請求路徑的解析過程。

在Global.asax.cs中注冊所有路由類:

//register custom routes (plugins, etc) 
var routePublisher = EngineContext.Current.Resolve<IRoutePublisher>(); 
routePublisher.RegisterRoutes(routes); 

IRoutePublisher:路由發布者,以主動的方式向系統添加路由。實體類為:RoutePublisher。

IRouteProvider:路由提供者,每個插件都有一個路由提供者,向系統中注冊路由。

路由發布者(IRoutePublisher)通過IOC在運行環境路徑中查找路由提供者,即查找所有繼承IRouteProvider的類。然後有各插件的路由提供者向系統中注冊此插件的路由。

PluginManager:插件管理器,負責加載插件的DLL,並保存所有插件信息。此管理器在系統初始化時開始啟動並通過Initialize方法加載所有插件。

IPluginFinder:插件查找者,在使用時從插件管理器中查找插件。

每一個插件都擁有自描述文件:Description.txt; 類PluginDescriptor負責保存解析後的插件描述或者說是此描述文件的解析後實體類。

每個插件都集成IPlugin接口,插件擁有安裝和卸載的功能。

~/App_Data/InstalledPlugins.txt:保存所有加載或安裝了的插件。
~/Plugins:安裝的插件所在目錄。
~/Plugins/bin:每一個插件都會在此處建立一個備份。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved