1. 程式人生 > >.netcore+vue+elementUI 前後端分離---支援前端、後臺業務程式碼擴充套件的快速開發框架

.netcore+vue+elementUI 前後端分離---支援前端、後臺業務程式碼擴充套件的快速開發框架

框架採用.NetCore + Vue前後端分離,並且支援前端、後臺程式碼業務動態擴充套件,框架內建了一套有著20多種屬性配置的程式碼生成器,可靈活配置生成的程式碼,程式碼生成器介面配置完成即可生成單表(主表)的增、刪、改、查、匯入、匯出、上傳、稽核基礎功能。只需要簡單瞭解即可上手開發

框架基礎功能已構建完成,可直接上手開發功能

  • Vol.WebApi類庫可獨立用於restful api服務單獨部署,用於其他系統單獨提供介面,直接上手編寫業務程式碼即可。
  • Vue+Vol.WebApi 可用於現有框架前後端分離進行開發
  • Vol.Web類庫可用於傳統MVC+Razor方式進行專案開發
  • Vol.Builder類庫可作為一個獨立的程式碼生成器,可生成cshtml頁面、Vue頁面、Model檔案、Service與Repository.cs業務處理程式碼類
  • 可作為一個獨立站點來發布靜態html網頁.
  • 可直接用於H5移動App開發H5開發看這裡

框架特點

  • 支援前端、後臺基礎業務程式碼動態擴充套件,可在現有框架增、刪、改、查、匯入、匯出、稽核基礎業務上擴充套件複雜的業務程式碼
  • 基本業務全部由框架完成,上手即可對基礎業務以外的程式碼進行擴充套件
  • 上手簡單,需要.net core2.1、VsCode mysql/sqlservcer 2012、redis(可選) 及以上版本的開發環境
  • 學習成本低,封裝了常用可擴充套件元件及Demo(前端基於Iview/Element-UI元件進行了二次封裝、後臺提供了大量的擴充套件方法)
  • 開發效率高,內定製開發的程式碼生成器,生成前端(Vue、後臺程式碼),程式碼生成器已完成90%以上的重複工作,只需要在提供的擴充套件型別中實現其他業務
  • 前端vue頁面表單下拉/多選框完成自動繫結資料來源,不需要寫任何程式碼,並支援擴充套件自定開發繫結。
  • 後臺已完成許可權、選單、JWT等內部功能

如果你沒有做過webpack+vue工程化開發專案,可能會剛開始相當不適應,或者安裝環境總是出問題,但只要你熟悉開發流程後,你會發現採用Vue開發比Jquery爽太多了。上手專案需重點了解基礎Vue語法,特別是瞭解元件、路由及import的使用

開發及依賴環境

VS2017 、.NetCore2.1 、EFCore2.1、JWT、Dapper、Autofac、SqlServer/MySql、Redis(可選,沒有redis的在appsetting.json中不用配置,預設使用內建IMemory)、
VsCode、Vue2.0(webpack、node.js,如果沒有此環境自行搜尋:vue webpack npm)、Vuex、axios、promise、IView、Element-ui

專案執行

如果你沒有前端環境,請先安裝node
前端開發使用VsCode

  • 1、使用cmd命令切換至前端Vue專案.../VOL.Vue路徑下,執行npm install命令(只有從來沒執行過此命令的才執行npm install)
  • 2、執行後端專案:在後端專案路徑.../VOL.WebApi/執行builder_run.bat埠設定的是9991,執行前先看appsettings.josn配置屬性說明
  • 3、執行前端專案:在前端Vue專案路徑.../VOL.Vue/執行run.bat(每次啟動會進行編譯,這個時間可能會有點長)
  • 4、輸入http://localhost:8080訪問

功能介紹

功能 描述 完成情況
使用者管理(登陸、密碼修改) 登陸、密碼修改
角色管理 角色管理
許可權分配 使用者基礎許可權分配,後臺支援多種許可權控制方式,也可自行定義
使用者許可權/選單靜態化處理 為減少Redis讀取資料傳輸量,對使用者許可權/選單在本地伺服器作靜態化處理,只有在使用者許可權/選單變化時才重新整理redis快取
JWT認證 採用前臺端分離JWT認證,並且支援JWT過期動態重新整理
非同步佇列批量寫日誌 框架封裝了一個非同步佇列寫日誌,此前專案每天PV約150W左右,採用非同步佇列的方式批量寫入日誌非常順暢
Repository Repository作為資料提供,提供了常用EF方法封裝
前端常用元件封裝 此框架主要圍繞表單元件進行開發,並且封裝的元件都支援擴充套件
基礎業務實現 已實現(表/主從表)的增、刪、改、查、匯入、匯出、稽核基礎功能(前提建一張帶主鍵的mysql/sqlserver表),這些基礎業務不要寫任何程式碼,直接用程式碼生成器生成即可,並且生成的程式碼支援其他業務程式碼擴充套件
程式碼生成器 程式碼生成器為視覺化配置,提供了可配置屬性的20多種,所有基礎功能只需要勾選確認,生成的程式碼包括Vue/Vue擴充套件檔案/路由,後臺表相關的類(控制器/擴充套件控制器,業務介面/擴充套件業務介面,介面實現/擴充套件介面實現類),支援單表表單、主從表單的程式碼生成
資料來源預先配置 資料來源作為前端下拉框/多選框的字典項源,支援key/value配置及sql從資料來源載入配置
表單資料來源自動繫結 如果一個表單帶有多個下拉框,這裡只需要配置資料來源編號即可自動繫結
Redis/Memory快取 已對Redis/Memory封裝直接使用即可
Dapper 已對Dapper封裝直接使用即可
擴充套件方法 框架封裝了大量的擴充套件方法,如:通用實體校驗(框架所有實現校驗全部依賴於此擴充套件)擴充套件、string擴充套件、object擴充套件、表示式生成/解析擴充套件、檔案操作擴充套件等
H5開發 可支援直接開發並部署H5頁面 H5開發看這裡
分庫分表 分庫分表操作 x
靜態頁面釋出   x
訊息推送   x
框架文件、程式碼生成器、Demo看這裡

1、只讀基礎表單

整個只讀的基礎表單的所有前後端程式碼,全部由程式碼生成器生成,程式碼生成器中幾乎不需要配置,並支援並後端業務程式碼擴充套件,直接生成程式碼後,配置選單許可權即可

2、自動繫結下拉框資料表單

整個自動繫結下拉框資料表單的所有前後端程式碼,全部由程式碼生成器生成,並支援並後端業務程式碼擴充套件,在程式碼生成器中只需要指定資料來源編號,頁面載入時會根據編號自動載入資料來源並繫結

3、啟用圖片支援、稽核表單

整個啟用圖片支援、稽核表單的所有前後端程式碼,全部由程式碼生成器生成,並支援並後端業務程式碼擴充套件,稽核功能需要在選單配置許可權、程式碼生成器中勾選啟用圖片支援

4、高階查詢

整個表單的所有前後端程式碼,全部由程式碼生成器生成,並支援並後端業務程式碼擴充套件,查詢欄位、型別(下拉框、日期、TextArea等)、所在行與列都由程式碼生成器完成,不需要寫任何程式碼

5、單表新建、編輯

單表新建、編輯所有前後端程式碼,全部由程式碼生成器生成,並支援並後端業務程式碼擴充套件,新建、編輯欄位、型別(下拉框、日期、TextArea等)、所在行與列、欄位是否只讀、標籤顯示的長度等都由程式碼生成器完成,不需要寫任何程式碼

6、主從表新建、編輯

主從表新建、編輯所有前後端程式碼,全部由程式碼生成器生成,並支援並後端業務程式碼擴充套件,新建、編輯從表配置、欄位、型別(下拉框、日期、TextArea等)、所在行與列、欄位是否只讀、標籤顯示的長度等都由程式碼生成器完成,不需要寫任何程式碼

7、單列、多列Form表單

單列、多列Form表單,已封裝成元件,並且支援元件擴充套件。可配置顯示的列的數量、是否只讀、列的資料型別(日期、下拉框、TextArea、列寬、自動繫結資料來源、圖片上傳等), 這些只需要配置JSON格式即可使用

8、可配置的Table(自動/手動載入table資料、自動繫結資料來源、編輯功能)

單列、多列Form表單,已封裝成元件,並且支援元件擴充套件。可配置顯示的列的數量、是否只讀、列的資料型別(日期、下拉框、TextArea、列寬、自動繫結資料來源、圖片上傳等), 這些只需要配置JSON格式即可使用

從後臺載入資料、自動繫結資料

可編輯的table,手動繫結資料、自動繫結資料來源

表單與table混合使用

9、excel匯入

excel匯入整個頁面都由程式碼生成器生成,匯入的欄位、欄位是否必填,下載模板也由程式碼生成器上配置(自己根據實際需要決定是否採用此方法),匯入時會驗證是否為空與資料的合法性,邏輯校驗自己實現擴充套件方法即可

10、H5開發

H5只是做了一個簡單的Demo,如果你有H5開發經驗,請忽略,如果你沒有H5開發經驗,可看看這裡

11、許可權分配

目前只實現了對使用者的角色的Action進行許可權分配

12、選單管理

預設8種許可權,可自行定義其他許可權(程式碼生成器完後,直接在選單上配置url(url路徑為自動生成前端的router->path,從此處複製過過即可))

13、個人中心

個人中心目前只開發了頁面與修改密碼,其他功能自行根據需要實現

14、前端、後臺業務程式碼動態擴充套件

框架提供了前臺後端擴充套件方法與屬性,只需要根據自己的業務實現擴充套件業務。後臺大部分都採用的委託擴充套件方法,這裡只截了一張圖前端資料載入事件的擴充套件方法,前後臺完整擴充套件參考Demo:http://132.232.2.109/SellOrder

15、程式碼生成器

程式碼生成器提供了20多種可配置的屬性,可靈活配置顯示、查詢、編輯、匯入、匯出、主從關係等功能點選看程式碼生成器文件

 

還有角色管理、日誌管理、資料來源管理、其他元件、後臺程式碼等功能就不再介紹了,點這裡看看就知道了

 

此框架由程式碼生成器完成了大部分工作能極大減少程式碼量,並支援前臺端程式碼的擴充套件。如果你對前後端分離開發的方式或H5開發有興趣,那麼希望此框架對能你有所幫助! 如果你覺得框架對你有用,幫忙點個星,非常感謝! Demo地址:http://132.232.2.109 帳號:admin666密碼:123456(本地超級管理員帳號:admin密碼123456) GitHub地址:https://github.com/cq-panda/Vue.NetCore.git 如果你需要Quartz.Net做定時任務管理,你可以試試這個:https://github.com/cq-panda/Quartz.NetUI (站點與MySql部署在同一個1G1核1M頻寬的服務Centos服務上,訪問可能會出現延遲現象)