天天看點

極簡實用的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”這個開源項目​。​

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.NetCore子產品化架構決定免費開源了
極簡實用的Asp.NetCore子產品化架構決定免費開源了
極簡實用的Asp.NetCore子產品化架構決定免費開源了
極簡實用的Asp.NetCore子產品化架構決定免費開源了
極簡實用的Asp.NetCore子產品化架構決定免費開源了
極簡實用的Asp.NetCore子產品化架構決定免費開源了
極簡實用的Asp.NetCore子產品化架構決定免費開源了

這個架構,我一直會更新下去,不斷的去調整架構,關于Asp.Net Core Api如何配置swagger,FluentValidation等技術文章我近期也會更新文章出來,隻要業務需要,我會将一些技術點慢慢地融入到架構中來。盡量做到務實,盡量不在應用層封裝自己大量的東西,增加學習成本。我本人真的不喜歡在應用層封裝大量東西的架構,包了一層又一層,沒任何意義。

另外,近期我會把一些權限管理的前端bug修複下,前端技術我是個半桶水,真的很發愁,如果有人願意一起做開源,為社群貢獻一份力量,那就盡情的聯系我吧。以前自己也做了大量的個人項目,但都沒有開源出來。這次基本也是從小白做起,一起學習如何做好一個開源項目。

對了,近期我也會把CMS子產品盡快完善起來,商城子產品後面逐漸排期更新。

最後,如果有什麼問題,我也自建了"dotnet根據地"這樣一個微信群,可以識别下面的二維碼加入,一起交流溝通,如果群二維碼過期了也可以識别下面二維碼加我微信,邀請你加入微信群​。

碼雲:https://gitee.com/shenniu_code_group/shen-nius.-modularity

github:https://github.com/realyrare/ShenNiusFramework

極簡實用的Asp.NetCore子產品化架構決定免費開源了
極簡實用的Asp.NetCore子產品化架構決定免費開源了

作者:課間一起牛

出處:https://www.cnblogs.com/mhg215/

聲援部落客:如果您覺得文章對您有幫助,請點選文章末尾的【關注我】吧!

别忘記點選文章右下角的【推薦】支援一波。~~~///(^v^)\\\~~~ .

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。

如果您有其他問題,也歡迎關注我下方的公衆号,可以聯系我一起交流切磋!

極簡實用的Asp.NetCore子產品化架構決定免費開源了

碼雲:碼雲      github:github