背景
在開發這個框架之前,前前后后看過好幾款模塊化的框架,最后在一段時間內對ABP VNext痛下狠心,研究一段時間后,不得不說 ABP VNext的代碼層面很規范,也都是一些最佳實踐,開發出一個模塊效率也很高,但不得不說,于我而言太重了,還看過一些其他模塊化的框架,就不說了,學習成本于我而言太高了,主要是自己懶,
于是,我在想有沒有一款上手簡單,比較經濟實用的模塊化框架,只要會.net core 基本就可以上手呢,于是,將ABP VNext的模塊化核心代碼抽出來(在這里要特別感謝土牛了),結合asp.net core很完美,我本身的需求就是做到業務邏輯代碼能夠復用,不用經常一些已經寫過好幾遍的簡直難受到要吐的重復代碼,這于我而言就足夠了,
框架簡介
一款基于Asp.net core3.1的模塊化開發框架,提取了ABP VNext的模塊核心,適合中小型專案快速開發,取名為神牛(ShenNius),意為大神大牛多提意見,一起參與,神牛云集,為dotnet社區貢獻一份自己的力量,追求“簡單”,“高效”,“實用”,總之秉承大道至簡的原則開發,堅持業務模塊最低復雜度復用,只要會C#,再會點Asp.NetCore基礎知識,極易上手,適合小白入門進階,更適用(實用)老手上路干活,
所有的業務代碼可以按照類別庫劃分,使用宿主托管,所有的代碼堅持" Don't repeat yourself ",堅決反對" 簡單的事情復雜干 "," 大量代碼在應用層過度層層封裝 ",反對" 過度設計 "的原則下進行開發,如果你有這個習慣,并且也想找一款迷你型、上手快,不用學習太多東西的框架,那么它就適合你,只要你會dotnet core,幾乎沒有學習成本,除了ABP VNext的模塊化核心代碼,另外、順手做了個簡單的后臺權限管理做為入門例子,采用LayuiMini+Asp.Net Core Razor Page,本來是想用Blazor,我前后看了幾款UI框架,目前都不是很成熟,需要踩坑,而我由于時間比較緊迫關系,只有自己一個人,先使用Layui,后期有時間我還是想上Blazor的,目前整個前后端互動基本都是分離的,后面想要切換到Blazor,也很好對接,
注:權限后臺管理有部分樣式之類的有借鑒“ FytSoaCms”這個開源專案?,?
軟體架構
- API框架:dotNetCore
- ORM:SqlSugarCore
- 快取:MemoryCache(后期會上redis,看專案業務需求)
- 日志管理:Nlog
- 工具類:Aes加密、Md5加密、RSA加密、Des加密
- token:Json Web Token
- 物體驗證:FluentValidation
- 物體映射:AutoMapper
使用說明
- ShenNius.ModuleCore是模塊化的核心代碼
- ShenNius.Swagger是封裝的API Doc
- ShenNius.Share.Infrastructure 基礎設施、里面包含常用的擴展方法、靜態類
- ShenNius.Share.Models 物體層、里面包括Dto驗證、配置類
- ShenNius.Share.Service 服務層、業務邏輯基本都在這個里面、里面包含了資料訪問操作,
- ShenNius.Sys.API 基于RBAC的權限API,
- ShenNius.Cms.API 基于Cms的API (待完成)
- ShenNius.Shop.API 基于Cms的API (待完成)
- ShenNius.API.Hosting API的宿主,所有API目前都放在這個里面托管,這也是魅力所在,可以Sys和Cms API各自托管使用獨立的宿主,主要看業務量,拆合很容易,
- ShenNius.Layui.Admin 基于layui的后臺管理,
安裝教程
- git clone https://gitee.com/shenniu_code_group/shen-nius.-modularity.git
- 多項啟動ShenNius.API.Hosting 和ShenNius.Layui.Admin
- ShenNius.API.Hosting 可以配置你要啟動的API專案
效果圖
最后說明
這個框架,我一直會更新下去,不斷的去調整架構,關于Asp.Net Core Api如何配置swagger,FluentValidation等技術文章我近期也會更新文章出來,只要業務需要,我會將一些技術點慢慢地融入到框架中來,盡量做到務實,盡量不在應用層封裝自己大量的東西,增加學習成本,我本人真的不喜歡在應用層封裝大量東西的框架,包了一層又一層,沒任何意義,
另外,近期我會把一些權限管理的前端bug修復下,前端技術我是個半桶水,真的很發愁,如果有人愿意一起做開源,為社區貢獻一份力量,那就盡情的聯系我吧,以前自己也做了大量的個人專案,但都沒有開源出來,這次基本也是從小白做起,一起學習如何做好一個開源專案,
對了,近期我也會把CMS模塊盡快完善起來,商城模塊后面逐漸排期更新,
最后,如果有什么問題,我也自建了"dotnet根據地"這樣一個微信群,可以識別下面的二維碼加入,一起交流溝通,如果群二維碼過期了也可以識別下面二維碼加我微信,邀請你加入微信群?,
原始碼地址
碼云:https://gitee.com/shenniu_code_group/shen-nius.-modularity?
github:https://github.com/realyrare/ShenNiusFramework
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/267267.html
標籤:.NET技术
上一篇:Mock 框架 Moq 的使用
下一篇:WPF之資源
