.Net Core3.1 + EF Core + LayUI 封裝的MVC版後臺管理系統

hg一如既往發表於2020-08-20

專案名稱:學生資訊管理系統1.0 

後臺框架:.Net Core 3.1 + EF Core    yrjw.ORM.Chimp

前端框架:ASP.NET Core MVC  +  LayUI + Bootstrap

資料庫:MS-SQL 或 MySQL 二選一

遷移方式:Code First  (推薦CLI命令初始化資料庫和升級)

 

框架結構圖:

 

 

專案需求:  (_PS:不包含業務,只為展示開發案例。)

登入模組案例 ,使用者名稱密碼驗證碼登入方式—— 已完成。

配置資訊設定案例,存庫方式——已完成。

操作員管理案例,簡單CURD操作——已完成。

部門管理案例,簡單CURD操作——已完成。

學生資訊查詢案例,簡單CURD操作——已完成。

 

框架封裝介紹:

1、簡單三層架構,前後端分離模式,目前採用Layui前端元件的MVC框架,後面可直接替換UI層VUE等前端框架。

2、整合了之前釋出的yrjw.ORM.Chimp包,該元件只是將EF Core使用倉儲模式的工作單元進行了封裝,常用的CURD方法和API統一返回的模型。

3、依賴注入,原來部分使用了Autofac屬性注入,後來發現使用Lazy<>衝突,將全部採用DI建構函式方式注入服務。

4、封裝配置項繫結繫結,支援ChangeToken.OnChange熱更新。

5、新增服務,服務端快取、CORS、ORM、Lazy懶載入、AutoMapper、認證、授權、異常處理。

6、新增Swagger,新增Jwt身份認證,模型驗證結果格式化。

7、封裝了Serilog日誌元件。

8、封裝了MemoryCache快取

9、封裝了Auth.Jwt身份認證。

10、封裝了yrjw.CommonToolsCore常用類庫擴充套件包。

11、MVC專案中使用WebApiClient元件,呼叫WebApi介面資料。

 

 

 看到這必須上程式碼了,框架原始碼下載地址:

 https://gitee.com/h_gxi/StudentManageSystem.git

使用說明:

1、Star原始碼或下載壓縮包後,使用VS2019開啟解決方案,如上圖。

2、設定資料庫連線字串,Student.Core.API專案中找到配置檔案進行修改,建立資料庫前右鍵重新生成專案。

3、進入Student.Core.API專案根目錄下,執行CMD命令。

使用dotnet ef命令,必須安裝dotnet-ef,依次執行命令:

dotnet tool install -g dotnet-ef
dotnet tool update -g dotnet-ef

通過資料庫遷移命令自動生成資料庫表:

 dotnet ef database update
 

 看到這裡資料庫已生成成功了。

 

 

4、設定啟動專案,將Student.Core.API和StudentManageSystem設為啟動。

 

 

 

 5、F5啟動,就可以訪問專案了,初始使用者名稱:admin  密碼:123456

 

 

 

筆記:

  下面總結下本人在學習.net core中遇到的一些問題,以及整個框架搭建的思路和使用開發教程。

去年剛接觸.net core時釋出過一篇關於.Net Core2.2 + EF Core + DI,三層框架專案搭建教程 ,當初想法比較簡單框架也不夠成熟,通過一年的學習與積累重新搭建了這套框架,一套比較完整的單應用系統,適用於中小型專案的開發應用。

       起初構建框架思想是,前後端分離、微服務架構、負載均衡、分庫分表,解決高併發需求為目的,但後來學習微服務架構中遇到了一些問題,再就是前端VUE初學階段,直接使用Vue.js UI等框架有些吃力,最終選擇先採用MVC版代替UI層進行過度一下,關於微服務這塊本人一直在學習過程中,搭建微服務架構還需要一點點時間吧,先來個單應用程式部署,對於小專案來說也是最佳選擇不是嗎。

       先說說本次框架都有哪些改變,由之前的.Net Core2.2直接升級採用最新版.Net Core3.1開發,ORM框架還是採用官方的EF Core(為什麼選他就不多糾結了,只為學習目的,後期也可能會換成其他輕量級框架如FreeSQL),使用ORM工作單元的封裝也不需要自己單獨弄了,我找了一個封裝好的元件包進行了升級和改造,並支援了.Net Core3.1版,元件包開源地址yrjw.ORM.Chimp,使用的是Code First模式,後期維護可以使用資料庫遷移工具命令,也可以單獨sql指令碼進行維護。當前專案中雖然沒用VUE.js,但還是按前後端分離模式做的,多了MVC專案代替UI層(StudentManageSystem),所有業務實現都是通過WebApi介面獲取資料。框架封裝除了ORM使用方便以外,Service層也有封裝基類方法,減少CURD操作重複程式碼量。

      這一年公司事情諸多,各種個性化專案對接,只能是在忙裡偷閒弄這專案可能存在有些細節未處理到位的地方,其實這套框架早在幾個月前已經差不多封裝好了,一直沒有時間去整理文件,剛抽空整理文件也做了些優化和完善了部分功能。這專案不存在任何業務邏輯,除了登入模組其他的都按開發案例作參考。

     框架原始碼已經發布出來了,有喜歡的朋友點贊,不喜歡的也歡迎拍磚,在這裡就不貼程式碼了,我的單應用程式框架基本就是這個樣子的,有不明白的地方可以留言我,我會抽空回覆的。

 

相關文章