說明:目前學習整理的ABP是ABP vNext版
參考:
ABP官網中文文檔 :有部分還沒翻譯完整,可以改為英文,然后用谷歌瀏覽器翻譯查看
[Abp vNext 源碼分析] - 文章目錄----myzony
[Abp vNext微服務實踐] - 文章目錄----一曲肝腸斷錄
ABP源碼 --源碼在根目錄的framework文件夾內
五分鍾完成 ABP vNext 通訊錄 App 開發 --張善友
ABP學習教程--xhznl (dotnet跨平台公賬號推薦)
舊版ABP:官網、官網英文文檔、中文文檔、 基於DDD的現代ASP.NET開發框架--ABP系列文章總目錄
基礎細節
實體類 & 聚合根
參考:
可繼承Entity類或繼承AggregateRoot聚合根類
Entity類 或 IEntity接口:
- Entity<TKey>類只是用給定的主 鍵類型 定義了一個Id屬性,在上面的示例中是Guid類型.可以是其他類型如string, int, long或其他你需要的類型
AggregateRoot 聚合根類:
- 繼承 Entity<TKey>類
- 聚合是域驅動設計中的一種模式.DDD的聚合是一組可以作為一個單元處理的域對象.例如,訂單及訂單系列的商品,這些是獨立的對象,但將訂單(連同訂單系列的商品)視為一個聚合通常是很有用的
模塊化
參考:模塊化
模塊類Module與啟動類Startup
- 啟動類Starup不再處理注入和配置,都放在Module類中來處理。在ConfigureServices方法內指定模塊類Module
- 每個服務都有一個模塊類Module,繼承AbpModule,在模塊類的頂部使用DependsOn(typeof())來定義依賴關系
依賴注入
參考:
是自動注入的,如果想手動注入需要另外設置
依賴注入約定:在接口與實現類名稱中,去掉接口前面的“I”,剩下的名稱與實現類后綴名相同就會自動注入,例如:接口ICalculator 和 ITaxCalculator 會注入到TaxCalculator實現類,會把兩個接口注入到一個實現類中,其實就是分別注入2次,一個類可以繼承多個接口。
數據傳輸對象 DTO
參考:數據傳輸對象(DTO)
數據傳輸對象(DTO)用於在應用層和表示層或其他類型的客戶端之間傳輸數據.
通常用DTO作為參數在表示層(可選)調用應用服務. 它使用領域對象執行某些特定的業務邏輯,並(可選)將DTO返回到表示層.因此表示層與領域層完全隔離.
領域驅動設計
動態C# API客戶端
ABP可以動態創建C#API客戶端代理來調用您的遠程HTTP服務(REST API)。這樣,您無需處理HttpClient
其他低級詳細信息即可調用遠程服務並獲得結果。
動態C#代理會自動為您處理以下內容;
- 通過考慮HTTP方法,路由,查詢字符串參數,請求有效負載和其他詳細信息,將C#方法調用映射到遠程服務器HTTP調用。
- 通過將訪問令牌添加到HTTP標頭來認證HTTP客戶端。
- 從JSON序列化和反序列化。
- 處理HTTP API版本控制。
- 將相關性ID,當前租戶ID和當前區域性添加到請求中。
- 正確處理服務器發送的錯誤消息並引發適當的異常。
任何類型的.NET客戶端都可以使用此系統來使用您的HTTP API。