abp學習日記一(安裝)

安裝環境

.netcore 3.1
apb 2.2.1

dotnet tool install -g Volo.Abp.Cli

新建項目

abp new LY.Shop -t module

學習過程用個人的一個商城項目做爲案例。
源碼

目錄

在這裏插入圖片描述
在這裏插入圖片描述

Src

.Domain.Shared 項目

項目包含常量,枚舉和其他對象,這些對象實際上是領域層的一部分,但是解決方案中所有的層/項目中都會使用到.
例如 IssueType 枚舉和 IssueConsts 類 (可能是 Issue 實體用到的常數字段,像MaxTitleLength)都適合放在這個項目中.

該項目不依賴解決方案中的其他項目. 其他項目直接或間接依賴該項目.

.Domain 項目

解決方案的領域層. 它主要包含 實體, 集合根, 領域服務, 值類型, 倉儲接口 和解決方案的其他領域對象.

例如 Issue 實體, IssueManager 領域服務和 IIssueRepository 接口都適合放在這個項目中.

它依賴 .Domain.Shared 項目,因爲項目中會用到它的一些常量,枚舉和定義其他對象.

.Application.Contracts 項目

項目主要包含 應用服務 interfaces 和應用層的 數據傳輸對象 (DTO). 它用於分離應用層的接口和實現. 這種方式可以將接口項目做爲約定包共享給客戶端.

例如 IIssueAppService 接口和 IssueCreationDto 類都適合放在這個項目中.

它依賴 .Domain.Shared 因爲它可能會在應用接口和DTO中使用常量,枚舉和其他的共享對象.

.Application 項目

項目包含 .Application.Contracts 項目的 應用服務 接口實現.

例如 IssueAppService 類適合放在這個項目中.

它依賴 .Application.Contracts 項目, 因爲它需要實現接口與使用DTO.
它依賴 .Domain 項目,因爲它需要使用領域對象(實體,倉儲接口等)執行應用程序邏輯.

.EntityFrameworkCore 項目

這是集成EF Core的項目. 它定義了 DbContext 並實現 .Domain 項目中定義的倉儲接口.

它依賴 .Domain 項目,因爲它需要引用實體和倉儲接口.

如果不需要使用EF Core,可以刪除此項目.

.MongoDB 項目

這是集成MongoDB的項目.

它依賴 .Domain 項目,因爲它需要引用實體和倉儲接口.

如果不需要使用MongoDB,可以刪除此項目.

Host

解決方案中有一些宿主應用程序可以在開發時運行模塊. 在開發時會很有用. 除了正在開發的模塊外,宿主應用程序包括其他模塊:

宿主應用程序支持兩種類型的場景.

單體 (統一) 應用場景

如果模塊含有UI, 那麼 .Web.Unified 應用程序於在一個站點上託管UI和API. 它有自己的 appsettings.json 配置文件(包括數據庫連接字符串)和EF Core數據庫遷移.

.Web.Unified 應用程序有一個名爲YourProjectName_Unified的數據庫(本例中名爲 IssueManagement_Unified).

如果你選擇了 --no-ui 選項, 這個項目不會出現在你的解決方案中.

如何運行?

將其設置成啓動項, 使用包管理控制檯運行 Update-Database 命令遷移數據庫,然後運行應用程序. 默認用戶名: admin 密碼: 1q2w3E*.

分離部署&數據庫 場景

在這個場景中,有三個應用程序;

.IdentityServer 應用程序是其他應用程序使用的身份驗證服務器,它有自己的 appsettings.json 包含數據庫連接字符串和其他配置.
.HttpApi.Host 託管模塊的HTTP API. 它有自己的 appsettings.json 包含數據庫連接字符串和其他配置.
.Web.Host 託管模塊的UI. 它包含 appsettings.json 文件, 但是其中沒有數據庫連接字符串, 因爲它不需要連接到數據庫, 它主要調用遠程API服務器和身份認證服務器.
下圖展示了應用程序的關係:

你需要按照以下順序運行應用程序:

首先, 運行 .IdentityServer,因爲其他應用程序依賴它做身份認證.
然後運行 .HttpApi.Host,因爲.Web.Host應用程序使用API接口.
最後運行 .Web.Host 使用用戶名: admin 密碼: 1q2w3E* 登錄到應用程序.

說明:本問大部分內容都是從官網拷貝的,這些內容比較枯燥,而且我的言辭和理解肯定沒有官方團隊深入。

https://docs.abp.io/zh-Hans/abp/latest/Startup-Templates/Module

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章