精通 ABP 框架 -- 遵循軟件開發最佳實踐構建可維護的 .NET 解決方案 Mastering ABP Framework: Build maintainable .NET solutions by implementing software development best practices
[土]哈利爾·伊佈雷西姆·卡爾坎(Halil ?brahim Kalkan),楊帥
- 出版商: 清華大學
- 出版日期: 2023-09-01
- 售價: $768
- 貴賓價: 9.5 折 $730
- 語言: 簡體中文
- 頁數: 328
- 裝訂: 平裝
- ISBN: 730263596X
- ISBN-13: 9787302635963
-
相關分類:
軟體工程、軟體架構
- 此書翻譯自: Mastering ABP Framework: Build maintainable .NET solutions by implementing software development best practices (Paperback)
立即出貨
買這商品的人也買了...
-
$352邁向 Angular 2:基於 TypeScript 的高性能 SPA 框架
-
$450$356 -
$265Web API 的設計與開發 (Web API : the Good Parts)
-
$650$507 -
$580$458 -
$550$468 -
$474$450 -
$960$749 -
$600$468 -
$400$300 -
$1,640$1,558 -
$600$468 -
$714$678 -
$720$562 -
$650$507 -
$600$468 -
$714$678 -
$680$537 -
$390$371 -
$954$906 -
$556深入實踐 Kotlin 元編程
-
$505SQL從入門到進階
-
$790$616 -
$704領域驅動設計.Net實踐
-
$654$621
相關主題
商品描述
本書全面介紹ABP框架,包括如何使用ABP框架及其提供的基礎設施逐步構建可維護的模塊化應用程序解決方案,是一本使用ABP框架構建現代Web應用程序的實用指南。本書既有關於戰略設計的內容,又涉及具體的戰術實現。不僅包含用於入門和理解原理的簡單應用程序示例,還包括一個復雜的可媲美真實項目的案例,這些示例的源代碼都是開源的。 全書包括5部分共17章。第1部分(第1~4章)簡要介紹ABP框架; 第2部分(第5~8章)重點探討ABP框架提供的基礎設施; 第3部分(第9~11章)詳細討論如何使用ABP框架實現領域驅動設計; 第4部分(第12~14章)講述ABP框架為開發用戶界面和API提供的基礎設施; 第5部分(第15~17章)討論模塊化系統、多租戶和自動化測試。 本書可作為想要學習軟件架構和**實踐、使用微軟技術和ABP框架構建可維護的Web解決方案的開發人員的參考書,也可作為高等院校電腦、軟件工程等相關專業本科生的教學參考書。
目錄大綱
目錄
第1部分
概述
第1章
現代軟件開發和ABP框架
1.1開發企業級Web應用程序
面臨的挑戰
1.1.1選擇架構
1.1.2DRY原則
1.1.3構建基礎UI
1.1.4實現常見的業務需求
1.2ABP框架提供的功能
1.2.1ABP框架的架構
1.2.2啟動模板
1.2.3ABP框架的基礎設施
1.2.4社區
1.3小結
第2章
開始使用ABP框架
2.1準備工作
2.1.1IDE/編輯器
2.1.2.Net 6 SDK
2.1.3數據庫管理系統
2.2安裝ABP CLI
2.3創建一個新的解決方案
2.3.1下載基於啟動模板的
解決方案
2.3.2使用ABP CLI
2.4運行解決方案
2.4.1連接字符串
2.4.2創建數據庫
2.4.3運行Web應用程序
2.5ABP框架提供的一些
預構建模塊
2.5.1賬戶模塊
2.5.2身份模塊
2.5.3租戶管理模塊
2.6小結
第3章
應用程序開發步驟
3.1準備工作
3.2創建解決方案
3.3定義領域對象
3.3.1Category
3.3.2ProductStockState
3.3.3Product
3.3.4常量
3.4EF Core和數據庫映射
3.4.1向DbContext類中添加實體
3.4.2實體到數據庫表的映射
3.4.3AddMigration命令
3.4.4設置種子數據
3.4.5遷移數據庫
3.5產品信息列表
3.5.1ProductDto類
3.5.2IProductAppService接口
3.5.3ProductAppService類
3.5.4對象到對象的映射
3.5.5測試ProductAppService類
3.5.6自動API控制器和Swagger
3.5.7動態JavaScript代理
3.5.8創建產品頁面
3.5.9添加一個新菜單項
3.5.10向頁面添加產品數據表格
3.6創建產品
3.6.1應用服務契約
3.6.2應用服務實現
3.6.3UI
3.7編輯產品
3.7.1應用服務契約
3.7.2應用服務實現
3.7.3UI
3.8刪除產品
3.9小結
第4章
示例解決方案——EventHub
4.1準備工作
4.2EventHub簡介
4.3架構
4.3.1認證流程
4.3.2解決方案預覽
4.3.3項目依賴
4.4運行解決方案
4.4.1克隆GitHub倉庫
4.4.2運行基礎設施
4.4.3打開解決方案
4.4.4創建數據庫
4.4.5運行應用程序
4.4.6使用Tye運行解決方案
4.5小結
第2部分
ABP框架基礎
第5章
ASP.NET Core和ABP框架的基礎設施
5.1準備工作
5.2模塊化
5.2.1Startup類
5.2.2定義模塊類
5.2.3模塊依賴和啟動模塊
5.2.4模塊的生命周期
5.3依賴註入系統
5.3.1服務的生命周期
5.3.2約定優先的服務註冊方式
5.3.3與依賴註入相關的接口
5.3.4[Dependency]特性
5.3.5[ExposeServices]特性
5.4應用程序配置
5.4.1設置配置值
5.4.2讀取配置值
5.5選項模式
5.5.1定義選項類
5.5.2配置選項
5.5.3使用選項值
5.5.4通過配置系統設置選項值
5.5.5ABP框架和ASP.NET Core
的選項
5.6日誌
5.7小結
第6章
數據訪問基礎設施
6.1準備工作
6.2定義實體
6.2.1AggregateRoot類
6.2.2Entity類
6.2.3具有復合主鍵的實體
6.2.4Guid類型的主鍵
6.3使用倉儲
6.3.1通用倉儲
6.3.2自定義倉儲
6.4集成EF Core
6.4.1配置DBMS
6.4.2定義DbContext類
6.4.3向DI註冊DbContext類
6.4.4配置實體映射
6.4.5實現自定義倉儲
6.4.6加載關聯數據
6.5集成MongoDB
6.5.1定義DbContext類
6.5.2配置實體映射
6.5.3向DI註冊DbContext類
6.5.4實現自定義倉儲
6.6深入UoW系統
6.6.1配置UoW系統
6.6.2手動控制UoW系統
6.7小結
第7章
橫切關註點
7.1準備工作
7.2授權和權限系統
7.2.1簡單授權
7.2.2使用權限系統
7.2.3基於策略的授權
7.2.4在非控制器代碼中使用授權
7.3驗證用戶的輸入
7.3.1使用數據註解特性
7.3.2使用IValidatableObject接口
自定義驗證規則
7.3.3驗證異常
7.3.4禁用驗證
7.3.5在其他類中使用驗證
7.3.6集成FluentValidation
7.4異常處理
7.4.1用戶友好的異常
7.4.2業務異常
7.4.3控制異常日誌
7.4.4控制HTTP狀態碼
7.5小結
第8章
ABP框架提供的功能和服務
8.1準備工作
8.2獲取當前用戶
8.3數據過濾系統
8.3.1軟刪除數據過濾器
8.3.2多租戶數據過濾器
8.3.3禁用一個數據過濾器
8.3.4自定義數據過濾器
8.4審計日誌系統
8.4.1審計日誌對象
8.4.2審計日誌範圍
8.4.3審計日誌系統的配置選項
8.4.4精確控制審計日誌的禁用
和啟用
8.5緩存系統
8.5.1IDistributedCacheT接口
8.5.2緩存系統的配置選項
8.5.3錯誤處理
8.5.4在多租戶應用程序中
使用緩存
8.5.5使用Redis作為分佈式緩存
提供程序
8.5.6作廢失效的緩存
8.6UI本地化
8.6.1配置支持的語言
8.6.2確定當前語言
8.6.3定義本地化資源
8.6.4使用本地化JSON文件
8.6.5獲得本地化文本
8.6.6配置本地化資源
8.6.7在特定服務中使用本地化
8.6.8在客戶端中使用本地化
8.7小結
第3部分
領域驅動設計
第9章
DDD概述
9.1準備工作
9.2DDD簡介
9.2.1DDD的概念
9.2.2DDD分層
9.2.3實現DDD的構件
9.3基於DDD的.NET解決方案
的結構
9.3.1創建一個簡單的基於DDD的
.NET解決方案
9.3.2向ABP框架的啟動模板
項目結構演變
9.3.3分離宿主項目和UI項目
9.4多應用程序解決方案
9.5基於DDD的應用程序的
執行流程
9.6通用原則
9.6.1數據庫提供程序獨立原則
9.6.2展示層技術無關原則
9.7小結
第10章
領域層
10.1準備工作
10.2示例領域簡介
10.3聚合和實體
10.3.1聚合的概念
10.3.2通過ID引用其他聚合
10.3.3小聚合
10.3.4實體的主鍵
10.3.5實體的構造函數
10.3.6使用領域服務創建聚合
10.3.7業務邏輯和約束
10.3.8在實體方法中使用外部服務
10.4領域服務
10.5倉儲
10.6規約
10.6.1無參數的規約
10.6.2有參數的規約
10.6.3組合規約
10.7領域事件
10.7.1本地事件總線
10.7.2分佈式事件總線
10.8小結
第11章
應用層
11.1準備工作
11.2實現應用服務
11.3設計DTO
11.3.1設計DTO類
11.3.2驗證輸入DTO
11.3.3對象到對象的映射
11.3.4DTO設計的最佳實踐
11.4各層職責
11.4.1用戶授權
11.4.2控制事務
11.4.3驗證用戶輸入
11.4.4獲取當前用戶信息
11.5小結
第4部分
用戶界面和API開發
第12章
使用MVC/Razor Pages
12.1準備工作
12.2主題系統
12.2.1基礎庫
12.2.2佈局
12.3打包和壓縮系統
12.3.1安裝NPM包
12.3.2使用標準包
12.3.3導入腳本和樣式文件
12.3.4頁面打包
12.3.5全局打包配置
12.3.6創建命名打包
12.3.7控制打包和壓縮系統的行為
12.4菜單
12.5Bootstrap標簽助手
12.6表單和表單驗證
12.6.1呈現表單元素
12.6.2驗證用戶輸入
12.6.3本地化表單
12.6.4實現AJAX表單
12.7模態框
12.7.1基礎模態框
12.7.2模態框中的表單
12.7.3模態框中使用JavaScript
12.8JavaScript API
12.8.1獲得當前用戶信息
12.8.2檢查用戶權限
12.8.3檢查租戶功能
12.8.4本地化字符串
12.8.5展示消息框
12.8.6展示通知
12.9調用HTTP API
12.9.1abp.ajax API
12.9.2動態客戶端代理
12.9.3靜態客戶端代理
12.10小結
第13章
使用Blazor WebAssembly構建UI
13.1準備工作
13.2什麽是Blazor
13.3ABP框架的Blazor UI入門
13.4用戶身份驗證
13.5主題系統
13.6菜單
13.7使用ABP框架提供的
基礎服務
13.7.1用戶授權
13.7.2本地化用戶界面
13.7.3訪問當前用戶的信息
13.8使用ABP框架提供的UI服務
13.8.1展示消息框
13.8.2展示通知消息框
13.8.3展示警告框
13.9調用HTTP API
13.10全局腳本和樣式
13.11小結
第14章
構建HTTP API和實時服務
14.1準備工作
14.2構建HTTP API
14.2.1創建HTTP API項目
14.2.2創建ASP.NET Core控制器
14.2.3ABP框架的自動API
控制器系統
14.3訪問HTTP API
14.3.1使用ABP框架的動態
客戶端代理
14.3.2使用ABP框架的靜態(生成的)
客戶端代理
14.4在ABP框架中使用SignalR
14.4.1使用ABP框架的SignalR
集成包
14.4.2配置SignalR客戶端
14.5小結
第5部分
其他
第15章
模塊化系統
15.1準備工作
15.2模塊化簡介
15.2.1類庫和NuGet包
15.2.2應用程序模塊
15.3構建Payment模塊
15.3.1新建應用程序模塊
15.3.2重構Payment模塊解決
方案
15.3.3支付流程
15.3.4定義配置選項
15.4把Payment模塊安裝到
EventHub中
15.4.1設置項目依賴
15.4.2數據庫集成
15.5小結
第16章
多租戶
16.1準備工作
16.2多租戶簡介
16.2.1什麽是SaaS
16.2.2什麽是多租戶
16.2.3數據庫架構
16.3ABP框架為多租戶提供的
基礎設施
16.3.1啟用和禁用多租戶
16.3.2解析當前租戶
16.3.3使用當前租戶的信息
16.3.4切換租戶
16.3.5禁用數據隔離
16.3.6為領域實體啟用多租戶
支持
16.4功能系統
16.4.1定義功能
16.4.2核查功能
16.4.3管理租戶的功能
16.5何時使用多租戶
16.6小結
第17章
自動化測試
17.1準備工作
17.2ABP框架的測試基礎設施
17.2.1測試項目概覽
17.2.2測試項目依賴的庫
17.2.3運行測試
17.3單元測試
17.3.1測試靜態(無狀態)類
17.3.2測試無依賴項的類
17.3.3測試包含依賴項的類
17.4集成測試
17.4.1基於ABP框架的集成測試
17.4.2模擬數據庫
17.4.3預置測試數據
17.4.4測試倉儲
17.4.5測試領域服務
17.4.6測試應用服務
17.5小結