.NET Core前后端分离快速开发框架(Core.3.0+AntdVue)
時(shí)間真快,轉(zhuǎn)眼今年又要過去了。回想今年,依次開源發(fā)布了Colder.Fx.Net.AdminLTE(254Star)、Colder.Fx.Core.AdminLTE(335Star)、DotNettySocket(82Star)、IdHelper(47Star),這些框架及組件都是本著以實(shí)際出發(fā),實(shí)事求是的態(tài)度,力求提高開發(fā)效率(我自己都是第一個(gè)使用者),目前來看反響不錯(cuò)。但是隨著前端和后端技術(shù)的不斷變革,尤其是前端,目前大環(huán)境已經(jīng)是前后端完全分離為主的開發(fā)模式,在這樣的大環(huán)境和必然趨勢之下,傳統(tǒng)的MVC就顯得有些落伍了。在這樣的背景下,一款前后端分離的.NET開發(fā)框架就顯得尤為必要,由此便定了框架的升級(jí)目標(biāo):前后端分離。
首先后端技術(shù)的選擇,從目前的數(shù)據(jù)來看,.NET Core的發(fā)展遠(yuǎn)遠(yuǎn)快于.NET Framework,最簡單的分析就是Colder.Fx.Core.AdminLTE發(fā)布比Colder.Fx.Net.AdminLTE晚,但是星星卻后來居上而且比前者多30%,并且這個(gè)差距在不斷擴(kuò)大,由點(diǎn)及面的分析可以看出我們廣大.NET開發(fā)人員學(xué)習(xí)的熱情和積極向上的態(tài)度,并不是某些人所認(rèn)為的那么不堪(走自己的路,讓別人說去吧)。大環(huán)境上微軟積極擁抱開源,大力發(fā)展.NET Core, 可以說前途一片光明。因此后端決定采用?.NET Core3.0?,不再浪費(fèi)精力去支持.NET Framework。
然后是前端技術(shù)選擇,首選是三大js框架選擇,也是從實(shí)際出發(fā),Vue相對(duì)其它而言更加容易上手,并且功能也毫不遜色,深得各種大小公司喜歡,如果偏要說缺點(diǎn)的話,那就是對(duì)TS支持不行,但是即將發(fā)布Vue3.0肯定會(huì)改變這一缺陷。選擇了Vue之后,然后就是UI框架的選擇了,這里的選擇更多了,我選擇了Ant Design Vue,理由便是簡潔方便,十分符合我的設(shè)計(jì)理念。
技術(shù)選型完畢之后便進(jìn)入研發(fā),由于鄙人前端比較菜,因此需要從頭學(xué)Vue2.x全家桶,從開始到現(xiàn)在差不多經(jīng)歷3個(gè)月,在預(yù)期之內(nèi)。其實(shí)學(xué)習(xí)并使用前端的Vue2.x全家桶并不難,還是比較容易上手的,所以在此給沒有前后端分離開發(fā)經(jīng)驗(yàn)的老哥打一記預(yù)防針,不要退縮,要知難而上,學(xué)習(xí)永無止境。
某些老哥可能比較直接粗暴,嫌我BBB嘮叨,下面直接上地址
代碼(GitHub):https://github.com/Coldairarrow/Colder.Admin.AntdVue
文檔(GitHub):https://github.com/Coldairarrow/Colder.Admin.AntdVue/wiki
代碼(碼云鏡像):https://gitee.com/Coldairarrow/Colder.Admin.AntdVue
文檔(碼云鏡像):https://gitee.com/Coldairarrow/Colder.Admin.AntdVue/wikis
在線預(yù)覽地址:http://coldairarrow.gitee.io/coler.antdvue.preview/#/Home/Introduce
由于服務(wù)器是阿里云的86服務(wù)器,帶寬1M小水管,因此將前端部署到碼云上了,在此多謝碼云,后端部署在阿里云86服務(wù)器CentOS7上。整個(gè)技術(shù)棧使用.NET Core + PostggreSQL+ Ant Design Vue + CentOS7+Nginx+Dokcer+jenkins,囊括了從快速開發(fā)到自動(dòng)化部署一條龍,開源免費(fèi)并具有高性能、高移植性、高拓展性(小公司創(chuàng)業(yè)選型+個(gè)人接單利器)
本框架為.NET Core3.0+Ant Design Vue版
本框架旨在極大的提高開發(fā)效率
使用技術(shù)棧:
后端:采用.NET Core平臺(tái),ASP.NET Core3.0,C#語言(使用反射等高級(jí)技術(shù)),Entity FrameworkCore(數(shù)據(jù)庫ORM框架)。
使用數(shù)據(jù)倉儲(chǔ)模式,抽象化數(shù)據(jù)庫操作(CRUD等)、支持事務(wù)處理以及分布式事務(wù)處理(跨庫)
支持?jǐn)?shù)據(jù)庫讀寫分離、分庫分表及事務(wù)(僅支持單表操作,不支持多表) 全面采用Autofac作為IOC容器,面向接口編程,全面解耦
集成多種工具類庫以及操作拓展
數(shù)據(jù)庫:支持SqlServer,PostgreSQL,MySQL,Oracle(框架使用簡單工廠,工廠方法,抽象工廠,可輕松更換數(shù)據(jù)庫),Redis作為分布式緩存
前端:Vue2.x全家桶+Ant Design Vue,其中集成常用組件,力求方便項(xiàng)目開發(fā)。
具體技術(shù)實(shí)施:
項(xiàng)目采用前后端完全分離模式,并采用嚴(yán)格分層模式,極大的增加聚合度,降低耦合度,
提高代碼的健壯性,可維護(hù)性。
前后端通過JWT進(jìn)行身份驗(yàn)證,通過數(shù)據(jù)接口操作數(shù)據(jù),統(tǒng)一使用JSON作為數(shù)據(jù)格式,并使用默認(rèn)接口簽名算法保證接口的安全性。
功能架構(gòu)部分詳解:
快速開發(fā):此功能為框架的核心,通過選擇數(shù)據(jù)庫中的表,就能自動(dòng)生成對(duì)應(yīng)的實(shí)體層、業(yè)務(wù)邏輯層、控制器、前端頁面Vue文件,無需編寫代碼即可生成基本的CRUD操作。
接口密鑰管理:管理接口的密鑰,若開啟接口簽名的規(guī)則,則前端需要通過給接口簽名才能夠正常訪問后臺(tái)接口。
權(quán)限管理:使用基本的RBAC權(quán)限控制,支持操作權(quán)限、接口權(quán)限以及數(shù)據(jù)權(quán)限
框架主要功能及特色如下
| 用戶登錄 | 用戶登錄、密碼修改 |
| 系統(tǒng)用戶管理 | 系統(tǒng)用戶管理 |
| 角1色管理 | 角色管理 |
| 部門管理 | 部門管理、天然多級(jí) |
| 權(quán)限管理 | 使用RBAC權(quán)限體系,基于角色的權(quán)限管理,支持菜單權(quán)限、操作權(quán)限(按鈕權(quán)限)、接口權(quán)限、數(shù)據(jù)權(quán)限 |
| 系統(tǒng)日志 | 支持多彩控制臺(tái)、文件、數(shù)據(jù)庫和ElasticSearch記錄日志,框架全局異常自動(dòng)捕捉,多級(jí)別記錄 |
| 快速開發(fā) | 通過數(shù)據(jù)庫直接生成實(shí)體層、業(yè)務(wù)邏輯層、控制器層以及前端頁面Vue代碼,無需編碼即可實(shí)現(xiàn)CURD |
| 數(shù)據(jù)庫操作封裝 | 使用基于EF的倉儲(chǔ)模式、封裝常用的CURD,支持單庫事物和分布式事物 |
| 多數(shù)據(jù)庫支持 | 使用基于EF的倉儲(chǔ)模式,支持各大主流關(guān)系型數(shù)據(jù)庫(SQLServer、MySQL、PostgreSQL和Oracle) |
| 超強(qiáng)移植性 | 使用抽象工廠封裝數(shù)據(jù)庫操作層,切換數(shù)據(jù)庫0代碼修改 |
| 支持軟刪除 | 一鍵切換刪除模式,支持物理刪除和軟刪除,對(duì)業(yè)務(wù)操作透明 |
| 緩存支持 | 支持系統(tǒng)自帶緩存和Redis緩存、封裝操作接口、簡單易用 |
| 前后端完全分離 | 前端使用Vue2.x全家桶+Ant Design Vue,界面簡潔美觀,組件化開發(fā) |
| 集成JWT驗(yàn)證 | 框架使用JWT作為身份驗(yàn)證,擺脫Cookie苦海,分布式拓展毫無壓力 |
| 集成對(duì)外接口簽名算法 | 框架對(duì)外接口可以開啟超強(qiáng)嚴(yán)格簽名校驗(yàn)(防抵賴、防偽造、防重復(fù)調(diào)用),保障系統(tǒng)安全性 |
| 頁面響應(yīng)式 | 前端為單頁應(yīng)用,無iframe,各大主流瀏覽器支持友好 |
| 拓展 | 其它各種幫助類庫及插件 |
其相關(guān)版本請(qǐng)看下表:
開發(fā)環(huán)境要求:
操作系統(tǒng):Windows 10
后端開發(fā)工具:Visual Studio 2019+
前端開發(fā)工具:Visual Studio Code,安裝nodejs,yarn
SDK:安裝.NET Core SKD 3.0 及以上
數(shù)據(jù)庫:SQLServer2008 R2及以上
更多內(nèi)容請(qǐng)閱讀原文:https://www.cnblogs.com/coldairarrow/p/11870993.html
總結(jié)
以上是生活随笔為你收集整理的.NET Core前后端分离快速开发框架(Core.3.0+AntdVue)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用 .NET Core模板引擎创建自定
- 下一篇: CentOS7 安装 Jenkins(