ABP VNext學習日記8

shengshengwang發表於2020-12-18

1.事件匯流排
解析:事件匯流排是將訊息從傳送方傳輸到接收方的中介,它在物件、服務和應用程式之間提供了一種鬆散耦合的通訊方式。
[1]本地事件匯流排:適合程式內訊息傳遞
[2]分散式事件匯流排:適合程式間訊息傳遞,比如微服務釋出和訂閱分散式事件

2.ABP虛擬檔案系統
解析:abp add-package Volo.Abp.VirtualFileSystem

3.PreConfigureServices和PostConfigureServices
解析:
[1]AbpModule類定義了PreConfigureServices和PostConfigureServices方法用來在ConfigureServices之前或之後覆蓋和編寫程式碼
[2]在這些方法中編寫的程式碼將在所有其它模組的ConfigureServices方法之前/之後執行

4.OnPreApplicationInitialization和OnPostApplicationInitialization
解析:
[1]AbpModule類還定義了OnPreApplicationInitialization和OnPostApplicationInitialization方法用來在OnApplicationInitialization之前或之後覆蓋和編寫程式碼
[2]在這些方法中編寫的程式碼將在所有其它模組的OnApplicationInitialization方法之前/之後執行

5.框架模組和應用程式模組異同
解析:
[1]框架模組:這些是框架的核心模組。比如快取、郵件、主題、安全、序列化、驗證、EF Core整合、MongoDB整合等。它們沒有應用/業務功能,它們提供了日常開發經常用到的通用基礎設施、整合和抽象
[2]應用程式模組:這些模組實現了特定的應用/業務功能。比如部落格、文件管理、身份管理、租戶管理等。它們通常有自己的實體、服務、API和UI元件
說明:推薦為每個模組定義單獨的DbContext介面和類。

6.聚合
解析:聚合是域驅動設計中的一種模式,DDD的聚合是一組可以作為一個單元處理的域物件。比如,訂單及訂單系列的商品,這些是獨立的物件,但將訂單[連同訂單系列的商品]視為一個聚合通常是很有用的。

7.應用服務生命週期
解析:應用服務的生命週期是transient的,它們會自動註冊到依賴注入系統。

8.審計DTO
解析:
[1]CreationAuditedEntityDto
[2]CreationAuditedEntityWithUserDto
[3]AuditedEntityDto
[4]AuditedEntityWithUserDto
[5]FullAuditedEntityDto
[6]FullAuditedEntityWithUserDto

9.可擴充套件的DTO
解析:
[1]ExtensibleObject實現IHasExtraProperties
[2]ExtensibleEntityDto
[3]ExtensibleCreationAuditedEntityDto
[4]ExtensibleCreationAuditedEntityWithUserDto
[5]ExtensibleAuditedEntityDto
[6]ExtensibleAuditedEntityWithUserDto
[7]ExtensibleFullAuditedEntityDto
[8]ExtensibleFullAuditedEntityWithUserDto

10.ABP工作單元
解析:ABP框架的工作單元[UOW]實現提供了對應用程式中的資料庫連線和事務範圍的抽象和控制。

11.ABP多租戶
解析:Install-Package Volo.Abp.MultiTenancy

12.動態C# API客戶端
解析:ABP可以自動建立C# API客戶端代理來呼叫遠端HTTP服務[REST APIS]。通過這種方式不需要通過HttpClient或者其它低階的HTTP功能呼叫遠端服務並獲取資料。

13.ABP Dapper整合
解析:Install-Package Volo.Abp.Dapper

14.ABP SignalR整合
解析:abp add-package Volo.Abp.AspNetCore.SignalR

15.開源的應用程式模組
解析:
[1]Account:提供賬戶管理UI,並允許使用者登入/註冊應用程式
[2]Audit Logging:用於將審計日誌持久化到資料庫
[3]Background Jobs:用於在使用預設後臺作業管理器時儲存後臺作業
[4]Blogging:用於建立精美的部落格,比如ABP的部落格就使用了此模組
[5]Docs: 用於建立技術文件頁面。比如,ABP的文件就使用了此模組
[6]Feature Management:用於儲存和管理功能
[7]Identity:基於Microsoft Identity管理組織單元、角色、使用者和它們的許可權
[8]Identity Server:整合了IdentityServer4
[9]Permission Management:用於儲存許可權
[10]Setting Management:用於儲存設定
[11]Tenant Management:管理多租戶應用程式的租戶
[12]Users:抽象使用者,因此其它模組可以依賴此模組而不是Identity模組
[13]Virtual File Explorer:提供簡單的UI檢視虛擬檔案系統中的檔案

16.MSI檔案
解析:MSI檔案是Windows Installer的資料包,它實際上是一個資料庫,包含安裝一種產品所需要的資訊和在很多安裝情形下安裝和解除安裝程式所需的指令和資料。MSI檔案將程式的組成檔案與功能關聯起來。此外,它還包含有關安裝過程本身的資訊:如安裝序列、目標資料夾路徑、系統依賴項、安裝選項和控制安裝過程的屬性。

17.自動註冊
解析:
[1]按約定[所有的模組類、所有的控制器]
[2]按依賴介面
[3]按依賴特性

18.Volo.Abp.Domain.Entities.Auditing.FullAuditedAggregateRoot<Guid>
解析:Implements IFullAuditedObject to be a base class for full-audited aggregate roots.

19.Volo.Abp.Threading.OneTimeRunner
解析:This class is used to ensure running of a code block only once. It can be instantiated as a static object to ensure that the code block runs only once in the application lifetime.

20.Microsoft.EntityFrameworkCore.ModelBuilder
解析:提供一個簡單的API來配置一個IMutableModel,它定義了實體的形狀,它們之間的關係,以及它們如何對映到資料庫。

21.Volo.Abp.Application.Services.IApplicationService
解析:This interface must be implemented by all application services to register and identify them by convention.

22.Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto
解析:Simply implements IPagedAndSortedResultRequest.

23.Microsoft.AspNetCore.Authorization.AuthorizeAttribute.AuthorizeAttribute(string policy)
解析:用指定策略初始化一個AuthorizeAttribute的新例項。

參考文獻:
[1]模組化架構最佳實踐&約定:https://docs.abp.io/zh-Hans/abp/latest/Best-Practices/Module-Architecture
[2]微服務解決方案示例:https://docs.abp.io/zh-Hans/abp/latest/Samples/Microservice-Demo
[3]應用程式模組:https://docs.abp.io/zh-Hans/abp/latest/Modules/Index
[4]ABP Packages:https://abp.io/packages
[5]ABP Framework路線圖:https://docs.abp.io/zh-Hans/abp/latest/Road-Map
[6]ABP示例應用:https://docs.abp.io/zh-Hans/abp/latest/Samples/Index

相關文章