NopCommerce支持靈活的插件機制,所謂Web系統插件,其實也就是能夠像原系統的一部分同樣使用。asp.net
Web系統的使用方式就是客戶端發送一個請求,服務端進行解析。在asp.net MVC中對客戶請求的解析是經過路由的方式實現的。ide
所謂路由就是在客戶端發生請求時,對請求路徑的解析過程。spa
在Global.asax.cs中註冊全部路由類:.net
IRoutePublisher:路由發佈者,以主動的方式向系統添加路由。實體類爲:RoutePublisher。插件
IRouteProvider:路由提供者,每一個插件都有一個路由提供者,向系統中註冊路由。blog
路由發佈者(IRoutePublisher)經過IOC在運行環境路徑中查找路由提供者,即查找全部繼承IRouteProvider的類。而後有各插件的路由提供者向系統中註冊此插件的路由。繼承
PluginManager:插件管理器,負責加載插件的DLL,並保存全部插件信息。此管理器在系統初始化時開始啓動並經過Initialize方法加載全部插件。接口
IPluginFinder:插件查找者,在使用時從插件管理器中查找插件。ip
每個插件都擁有自描述文件:Description.txt; 類PluginDescriptor負責保存解析後的插件描述或者說是此描述文件的解析後實體類。路由
每一個插件都集成IPlugin接口,插件擁有安裝和卸載的功能;
~/App_Data/InstalledPlugins.txt:保存全部加載或安裝了的插件;
~/Plugins:安裝的插件所在目錄;
~/Plugins/bin:每個插件都會在此處創建一個備份;