關注nop有2年多, 基本都是下載看看結構, 里面的多語言跟主題模板 插件加載 是我比較喜歡的。
最近看nop4.1版本已經全面替換成了asp.net core 2.1 +ef core2.1,所以專門寫個博客記錄心得。 不喜勿噴
Git下載地址:
文件結構一直都沒有變,跟之前的都一樣。
core 是核心,包含所有的數據類 domain文件夾。
為了更好的理解nop的一些運行機制跟結構,我打算新建一個新的nop項目來模仿nop.web 。
這個項目名稱我叫做:Unions.Web
設置unions.web 為啟動項目,並添加對應的nop引用, 主要是 nop.core nop.web.framework nop.services nop.data
為了方便,我們先把對應數據庫配置都拷貝原本的web項目里面的 文件夾App_Data跟 appsettings.json。
接下去我們先替換掉nop.web里面的依賴注入跟路由配置。
先從nop.web 里面拷貝Infrastructure 文件夾 Factories 工廠文件夾 Extensions 擴展文件夾 Models 文件夾 Validators 文件夾並修改里面的nop.web 改成 Unions.Web
最好是每個文件夾的替換方式為 Nop.web+文件夾 去替換
然后點擊生成 會報錯:
admin的工廠方法我們還沒用到,暫時也不會涉及到區域,就先把這些全部注釋掉
好了,現在項目生成成功了。
接下來我們要開始運行首頁配置。
nop用到autofac 依賴注入 跟驗證, 它自己設置了路由規則跟配置
都是在 Infrastructure 文件夾里面
現在需要改造下 startup.cs里面的兩個方法
可以直接從nop.web里面拷貝整個cs內容
很簡單,nop把他封裝起來了。 要記得先添加一個引用,nop是采用擴展方法的形式去寫的
using Nop.Web.Framework.Infrastructure.Extensions;
拷貝之后是這樣:
然后就是修改下nop本身的路由規則:
這個里面 GeneicUrlRouteProvider是負責生成對應的url 下面那個RouteProvider是配置路由規則
這些是可以全部注釋掉,然后換成我們mvc自帶的路由規則,設置啟動頁面還是 原生的mvc首頁
routeBuilder.MapLocalizedRoute("HomePage", "",
new { controller = "Home", action = "Index" });
保留: 其他刪掉,要是一開始不想安裝數據庫,就直接注釋下圖所示的安裝中間件,然后運行F5 可以看到進入到我們自己的首頁