极简实用的Asp.NetCore模块化框架决定免费开源了
背景
在開發(fā)這個框架之前,前前后后看過好幾款模塊化的框架,最后在一段時間內(nèi)對ABP VNext痛下狠心,研究一段時間后,不得不說 ABP VNext的代碼層面很規(guī)范,也都是一些最佳實踐,開發(fā)出一個模塊效率也很高。但不得不說,于我而言太重了。還看過一些其他模塊化的框架,就不說了,學習成本于我而言太高了,主要是自己懶。
于是,我在想有沒有一款上手簡單,比較經(jīng)濟實用的模塊化框架,只要會.net core 基本就可以上手呢,于是,將ABP VNext的模塊化核心代碼抽出來(在這里要特別感謝土牛了),結(jié)合asp.net core很完美,我本身的需求就是做到業(yè)務邏輯代碼能夠復用,不用經(jīng)常一些已經(jīng)寫過好幾遍的簡直難受到要吐的重復代碼,這于我而言就足夠了。
框架簡介
一款基于Asp.net core3.1的模塊化開發(fā)框架,提取了ABP VNext的模塊核心,適合中小型項目快速開發(fā),取名為神牛(ShenNius),意為大神大牛多提意見,一起參與,神牛云集,為dotnet社區(qū)貢獻一份自己的力量。追求“簡單”,“高效”,“實用”,總之秉承大道至簡的原則開發(fā),堅持業(yè)務模塊最低復雜度復用,只要會C#,再會點Asp.NetCore基礎(chǔ)知識,極易上手。適合小白入門進階,更適用(實用)老手上路干活。
所有的業(yè)務代碼可以按照類庫劃分,使用宿主托管。所有的代碼堅持"?Don't repeat yourself?"。堅決反對"?簡單的事情復雜干?","?大量代碼在應用層過度層層封裝?",反對"?過度設計?"的原則下進行開發(fā)。
如果你有這個習慣,并且也想找一款迷你型、上手快,不用學習太多東西的框架,那么它就適合你,只要你會dotnet core,幾乎沒有學習成本,除了ABP VNext的模塊化核心代碼。
另外、順手做了個簡單的后臺權(quán)限管理做為入門例子。采用LayuiMini+Asp.Net Core Razor Page,本來是想用Blazor,我前后看了幾款UI框架,目前都不是很成熟,需要踩坑。而我由于時間比較緊迫關(guān)系,只有自己一個人,先使用Layui,后期有時間我還是想上Blazor的,目前整個前后端交互基本都是分離的,后面想要切換到Blazor,也很好對接。
注:權(quán)限后臺管理有部分樣式之類的有借鑒“?FytSoaCms”這個開源項目。
軟件架構(gòu)
API框架:dotNetCore
ORM:SqlSugarCore
緩存:MemoryCache(后期會上redis,看項目業(yè)務需求)
日志管理:Nlog
工具類:Aes加密、Md5加密、RSA加密、Des加密
token:Json Web Token
實體驗證:FluentValidation
實體映射:AutoMapper
使用說明
ShenNius.ModuleCore是模塊化的核心代碼
ShenNius.Swagger是封裝的API Doc
ShenNius.Share.Infrastructure 基礎(chǔ)設施、里面包含常用的擴展方法、靜態(tài)類
ShenNius.Share.Models 實體層、里面包括Dto驗證、配置類
ShenNius.Share.Service 服務層、業(yè)務邏輯基本都在這個里面、里面包含了數(shù)據(jù)訪問操作。
ShenNius.Sys.API 基于RBAC的權(quán)限API。
ShenNius.Cms.API 基于Cms的API (待完成)
ShenNius.Shop.API 基于Shop的API (待完成)
ShenNius.API.Hosting API的宿主,所有API目前都放在這個里面托管,這也是魅力所在,可以Sys和Cms API各自托管使用獨立的宿主,主要看業(yè)務量。拆合很容易。
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項目
效果圖
這個框架,我一直會更新下去,不斷的去調(diào)整架構(gòu),關(guān)于Asp.Net Core Api如何配置swagger,FluentValidation等技術(shù)文章我近期也會更新文章出來,只要業(yè)務需要,我會將一些技術(shù)點慢慢地融入到框架中來。盡量做到務實,盡量不在應用層封裝自己大量的東西,增加學習成本。我本人真的不喜歡在應用層封裝大量東西的框架,包了一層又一層,沒任何意義。
另外,近期我會把一些權(quán)限管理的前端bug修復下,前端技術(shù)我是個半桶水,真的很發(fā)愁,如果有人愿意一起做開源,為社區(qū)貢獻一份力量,那就盡情的聯(lián)系我吧。以前自己也做了大量的個人項目,但都沒有開源出來。這次基本也是從小白做起,一起學習如何做好一個開源項目。
對了,近期我也會把CMS模塊盡快完善起來,后面做商城模塊。
最后,如果有什么問題,我也自建了"dotnet根據(jù)地"這樣一個微信群,可以識別下面的二維碼加入,一起交流溝通,如果群二維碼過期了也可以識別下面二維碼加我微信,邀請你加入微信群。
源碼地址
碼云:https://gitee.com/shenniu_code_group/shen-nius.-modularity
github:https://github.com/realyrare/ShenNiusFramework
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的极简实用的Asp.NetCore模块化框架决定免费开源了的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于Asp.net core配置信息读取
- 下一篇: .NET 6新特性试用 | 模式匹配之E