最近在做一個項目,用的框架是Abp vnext ,不是Abp, 我自己也是剛開始用這個框架來做項目,難免要查資料,這個框架官方有中文文檔,可以到官網www.abp.io 去查看,國內也有一些寫了相關的文檔,但是很多文檔基本就是把官方文檔搬過來,對於實際有些關鍵點的坑並沒有填,還有些寫的通篇理論知識,各種名詞,像老太太的裹腳布,查資料查起來各種頭大。我是實戰派,這里就自己遇到的問題和開發項目的經驗講一些自己的理解,也好讓用這個框架的人員快速入門。
好,廢話不多說,下面就開始說,全是干貨哦(注意看以下內容要有.net core開發相關知識)。
先說下我認為能使用一個框架要首先解決的幾個問題:
- 要能理解框架整體結構
- 要能用框架實現基本的增刪改查
- 了解框架如何實現角色權限控制
- 系統的日志記錄、緩存處理等等框架是否實現,如何實現
了解了以上幾點,就基本可以用這個框架來開始做項目了,再有什么細節問題,可以遇到的時候再查資料解決。本篇我先說一下第一個點,就是abp vnext 框架的整體結構。
1、獲取框架代碼:
框架代碼可以通過兩種方式獲取,使用CLI 和 直接下載 ,這里我用的直接下載,有喜歡用CLI的也可以看着官方文檔看使用方法,官方文檔這塊介紹的比較詳細,我就不說了,這里用直接下載的方式。
下載的時候,ProjectType有兩個類型,Application 和 Module ,這兩個類型的區別,官網也有詳細的說明,我個人的理解就是Application 是帶了Web項目,傳統的系統框架。而Module 官網的介紹是這樣的,可用此模板開發基於模塊開發最佳實踐和約定的可復用 應用程序模塊 . 它同樣適用於開發微服務。我理解如果項目要基於微服務框架,或者以后准備要弄成微服務的,就用這個。abp vnext我認為就是為了微服務而生的,當然下載這個了。於是

創建項目
把include user interface 勾選上
下載下來解壓縮:

文件目錄
主要看host,src 兩個目錄

Host目錄下

src下
下邊我把主要的幾個項目講一下,先看host下項目
1、TestProject.Host.Shared ,這個項目其實沒多大用的到。看到Shared基本也能想到了。就是一些公用的配置之類的。比如他官方在這里做了個是否啟用租戶模式的配置。
2、TestProject.HttpApi.Host,這個比較重要,這是當前模塊(我這個模塊名字叫TestProject)的 主機宿主,里邊各種模塊相關的配置,運行起來這個,才能訪問模塊提供的api。
3、TestProject.IdentityServer,這是AuthServer,用的identityserver4,用戶的授權全靠它了。這個服務在整個項目存在一個就行了,如果多模塊,比如我又創建了個TestProject2,那么TestProject 和TestProject2 是共用 這個AuthServer 的。
4、TestProject.Web.Host 實際開發基本用不大到,這個官方給的一個例子,演示了客戶端如何使用identityserver4進行登錄
5、TestProject.Web.Unified 目前還沒用到,也不知道有什么用,不說了這個
然后看下src項目
1、TestProject.Application ,相當於service層,abp框架可以做到把這層直接轉為api,就不用寫controller層代碼了。具體如何轉的后邊會講到。
2、TestProject.Application.Contracts 這層主要放Dto(數據傳輸對象)和權限的一些配置。
3、TestProject.Domain ,領域層,領域模型開發不了解的可以去找些資料看一下。如果用貧血模型,這層就類似之前的的Model層。
4、TestProject.Domain.Shared,看到Shared了,那么就知道是啥了,公用配置。官網這里給了多語言相關的配置
5、TestProject.EntityFrameworkCore 這個我就不用說了吧
6、TestProject.HttpApi 傳統意義的Controller層,這里abp讓它失業了。
其他幾個目前沒用到,估計也沒啥用。
apb的主要結構就是這些,了解了這些,入門相當於是抬起了一個腳了。下篇將就實現增刪改查做個講解。