極簡實用的Asp.NetCore模塊化框架決定免費開源了


背景

 在開發這個框架之前,前前后后看過好幾款模塊化的框架,最后在一段時間內對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”這個開源項目​。​

軟件架構

  1. API框架:dotNetCore
  2. ORM:SqlSugarCore
  3. 緩存:MemoryCache(后期會上redis,看項目業務需求)
  4. 日志管理:Nlog
  5. 工具類:Aes加密、Md5加密、RSA加密、Des加密
  6. token:Json Web Token
  7. 實體驗證:FluentValidation
  8. 實體映射:AutoMapper

使用說明

  1. ShenNius.ModuleCore是模塊化的核心代碼
  2. ShenNius.Swagger是封裝的API Doc
  3. ShenNius.Share.Infrastructure 基礎設施、里面包含常用的擴展方法、靜態類
  4. ShenNius.Share.Models 實體層、里面包括Dto驗證、配置類
  5. ShenNius.Share.Service 服務層、業務邏輯基本都在這個里面、里面包含了數據訪問操作。
  6. ShenNius.Sys.API 基於RBAC的權限API。
  7. ShenNius.Cms.API 基於Cms的API (待完成)
  8. ShenNius.Shop.API 基於Cms的API (待完成)
  9. ShenNius.API.Hosting API的宿主,所有API目前都放在這個里面托管,這也是魅力所在,可以Sys和Cms API各自托管使用獨立的宿主,主要看業務量。拆合很容易。
  10. ShenNius.Layui.Admin 基於layui的后台管理。

安裝教程

  1. git clone https://gitee.com/shenniu_code_group/shen-nius.-modularity.git
  2. 多項啟動ShenNius.API.Hosting 和ShenNius.Layui.Admin
  3. 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM