C# 與 .NET 6 開發從入門到實踐
敖瑞
買這商品的人也買了...
-
$790$616 -
$500$390 -
$680$530 -
$720$562 -
$474$450 -
$709深入淺出 ASP.NET Core
-
$500$390 -
$580$435 -
$880$695 -
$680$530 -
$600$468 -
$800$624 -
$690$538 -
$714$678 -
$580$406 -
$857C# 10 和 .NET 6 入門與跨平臺開發, 6/e
-
$820$615 -
$860$645 -
$768$730 -
$607SQL 數據分析實戰, 2/e
-
$980$774 -
$680$530 -
$860$679 -
$790$624 -
$880$695
相關主題
商品描述
本書以ASP.NET Core項目為例,系統地介紹了.NET6的各個重要知識點。書中內容融合了作者多年實踐的豐富經驗,講解深入淺出,全面且細致。 本書共分為四篇25章。第一篇(第1~3章)是.NET 6基礎篇,主要介紹.NET平臺、C#語言和Visual Studio開發環境的常用功能和特性。第二篇(第4~10章)是Entity Framework Core篇,主要介紹Entity Framework Core的各種功能和使用方法,包括快速入門、實體模型、實體模型的關系、管理實體模型和數據庫架構、管理數據、查詢數據、Entity Framework Core共享功能等內容。第三篇(第11~24章)是ASP.NET Core篇,主要介紹ASP.NET Core框架的基礎知識、身份認證、授權、MVC、Razor Pages、Blazor、Razor類庫、Web API、遠程過程調用、實時通信、應用安全、高級功能等內容。第四篇(第25章)是實戰演練篇,用一個功能完整的電子商城項目來串聯前面三篇介紹的大部分功能,幫助讀者跨越從基礎知識的學習到實際應用的門檻。 本書以.NET 6的入門學習者和有其他C系語言的使用經驗並有意瞭解ASP.NET Core的人為主要目標讀者,同時適合被中高級開發者當作功能模塊速查和學習高級功能的手冊,還可以作為高等院校相關專業的教學用書和培訓學校的教材。
目錄大綱
目 錄
第一篇 .NET 6基礎
第1章 構建.NET 6開發環境 3
1.1 .NET、.NET Core、.NET Standard與.NET Framework 3
1.2 ASP.NET Core與ASP.NET 4
1.3 其他.NET應用模型 4
1.4 Visual Studio簡介 4
1.5 安裝Visual Studio 5
1.6 小結 7
第2章 Visual Studio的解決方案和項目 8
2.1 解決方案和項目簡介 8
2.2 創建解決方案和項目 8
2.2.1 創建方法 8
2.2.2 操作演示和說明 9
2.3 引用其他項目和第三方程序包 12
2.3.1 引用其他項目 12
2.3.2 引用第三方程序包 13
2.3.3 卸載程序包和項目引用 16
2.4 .NET主要項目類型 16
2.5 解決方案和項目文件解析 16
2.5.1 解決方案文件 16
2.5.2 項目文件 17
2.6 小結 18
第3章 C#發展史 19
3.1 簡介 19
3.2 C# 1.0 19
3.2.1 類、結構體和聯合體 20
3.2.2 接口 22
3.2.3 屬性 23
3.2.4 委托 26
3.2.5 事件 28
3.2.6 運算符和表達式 29
3.2.7 語句 31
3.2.8 命名空間 31
3.2.9 特性 32
3.2.10 unsafe上下文 33
3.3 C# 2.0 35
3.3.1 泛型 35
3.3.2 協變和逆變 38
3.3.3 委托的方法組轉換 39
3.3.4 分部類型 39
3.3.5 匿名方法 40
3.3.6 可為null的結構體 40
3.3.7 枚舉器 41
3.3.8 靜態類 41
3.3.9 獨立的屬性訪問器保護級別 43
3.3.10 委托類型推斷 43
3.4 C# 3.0 44
3.4.1 自動實現屬性 44
3.4.2 分部方法 44
3.4.3 對象初始化器 45
3.4.4 隱式類型的本地變量 45
3.4.5 匿名類型 46
3.4.6 Lambda表達式 46
3.4.7 表達式樹 47
3.4.8 擴展方法 47
3.4.9 LINQ(Language-Integrated Query) 48
3.5 C# 4.0 50
3.5.1 動態綁定 50
3.5.2 可選參數和命名參數 50
3.5.3 嵌入的互操作類型 51
3.5.4 泛型的協變和逆變 51
3.6 C# 5.0 52
3.6.1 調用方信息特性 52
3.6.2 異步成員 52
3.7 C# 6.0 53
3.7.1 靜態導入 53
3.7.2 異常篩選器 54
3.7.3 表達式體成員 54
3.7.4 自動屬性初始化表達式 55
3.7.5 索引初始化器 55
3.7.6 null引用傳播運算符 55
3.7.7 字符串內插 56
3.7.8 nameof運算符 57
3.7.9 catch和finally塊中的await 57
3.7.10 Roslyn 57
3.8 C# 7.0 60
3.8.1 out變量 60
3.8.2 元組、解構和棄元 60
3.8.3 模式匹配 61
3.8.4 本地函數 62
3.8.5 表達式體成員增強 63
3.8.6 二進制文本和數字分隔符 63
3.8.7 throw表達式 63
3.8.8 ref局部變量和返回值 63
3.9 C# 7.1 64
3.9.1 異步主函數 64
3.9.2 default表達式 64
3.9.3 元組元素名稱推斷 65
3.9.4 泛型類型參數的模式匹配 65
3.10 C# 7.2 65
3.10.1 非尾隨命名參數 65
3.10.2 數值文本的前導下畫線 66
3.10.3 private protected訪問修飾符 66
3.10.4 針對參數的in修飾符 66
3.10.5 針對方法返回值的ref readonly修飾符 67
3.10.6 readonly struct結構體 67
3.10.7 ref struct結構體 68
3.10.8 條件ref表達式 68
3.11 C# 7.3 68
3.11.1 非托管類型和泛型約束增強 68
3.11.2 無須固定即可訪問固定的字段 69
3.11.3 可以重新分配ref局部變量 69
3.11.4 可以使用stackalloc數組上的初始值設定項 69
3.11.5 更多類型支持fixed語句 70
3.11.6 元組支持“==”和“!=”操作符 70
3.11.7 支持為自動實現屬性的後台字段添加特性 70
3.11.8 增強包含in修飾符的方法重載的選擇策略 70
3.11.9 擴展out變量的適用範圍 71
3.11.10 改進方法重載的選擇策略 71
3.12 C# 8.0 71
3.12.1 默認接口方法 71
3.12.2 模式匹配增強 72
3.12.3 結構體的readonly成員 75
3.12.4 using聲明 75
3.12.5 靜態本地函數 76
3.12.6 可釋放的ref struct 76
3.12.7 可為null的引用類型 76
3.12.8 異步可釋放 77
3.12.9 異步枚舉器 78
3.12.10 索引和範圍 79
3.12.11 null合並賦值 80
3.12.12 非托管泛型結構體 80
3.12.13 嵌套表達式中的stackalloc 80
3.12.14 內插字符串和逐字字符串 80
3.13 C# 9.0 81
3.13.1 init屬性訪問器 81
3.13.2 記錄 81
3.13.3 頂級程序 83
3.13.4 模式匹配增強 84
3.14 本機大小的整數 85
3.14.1 函數指針 85
3.14.2 禁止本地初始化特性 86
3.14.3 靜態匿名函數 87
3.14.4 類型推導的new表達式 87
3.14.5 類型推導的條件表達式 88
3.14.6 協變返回類型 88
3.14.7 foreach循環支持GetEnumerator擴展方法 88
3.14.8 參數棄元 89
3.14.9 本地函數支持特性 89
3.14.10 模塊初始化器 90
3.14.11 分部方法增強 90
3.14.12 源生成器 91
3.15 C# 10.0 91
3.15.1 結構體記錄 91
3.15.2 結構體允許自定義公共無參構造函數 91
3.15.3 強化的with表達式 92
3.15.4 記錄允許密封ToString方法 92
3.15.5 全局using 92
3.15.6 文件範圍的命名空間 93
3.15.7 常量內插字符串 93
3.15.8 內插字符串處理程序 93
3.15.9 Lambda表達式增強 93
3.15.10 CallerArgumentExpression診斷特性 94
3.15.11 解構支持混合使用已有變量和內聯聲明變量 94
3.15.12 增強的屬性模式 94
3.15.13 方法上的自定義異步狀態機特性 95
3.16 小結 95
第二篇 Entity Framework Core
第4章 快速入門 99
4.1 簡介 99
4.2 創建項目和安裝EF Core 99
4.3 創建數據模型 99
4.4 創建數據上下文 100
4.5 創建數據庫 100
4.6 簡單使用 101
4.7 小結 102
第5章 實體模型 103
5.1 實體類型和實體模型配置 103
5.1.1 基本實體類型 104
5.1.2 基礎實體模型配置 105
5.1.3 排序規則 108
5.1.4 值生成和計算屬性 109
5.1.5 影子屬性 112
5.1.6 幕後字段 112
5.1.7 模型字段 113
5.1.8 鍵 114
5.1.9 索引 117
5.1.10 並發標記與行版本 118
5.1.11 值轉換器 119
5.1.12 值比較器和屬性快照 121
5.1.13 數據種子 123
5.1.14 構造函數 124
5.1.15 繼承 127
5.1.16 無鍵實體類型 129
5.1.17 實體的多重映射 130
5.1.18 索引器屬性、共享類型實體和屬性包 131
5.2 全局查詢過濾器 132
5.3 自定義實體模型註解 132
5.4 自定義數據庫函數和映射 133
5.4.1 標量值函數映射 133
5.4.2 表值函數映射 134
5.4.3 存儲過程映射 135
5.5 在一個上下文類型中使用多個模型 136
5.6 小結 137
第6章 實體模型的關系 138
6.1 概念和術語簡介 138
6.2 實體模型的關系與影子屬性 138
6.3 一對一關系 139
6.3.1 實體類型和關系配置 140
6.3.2 表共享(表拆分) 141
6.3.3 從屬實體類型 142
6.4 一對多關系 143
6.4.1 實體類型和關系配置 143
6.4.2 自關聯與樹形實體類型 145
6.4.3 從屬實體類型的集合 145
6.5 多對多關系 146
6.5.1 顯式映射 146
6.5.2 隱式映射 148
6.6 模型關系的級聯刪除 149
6.7 小結 151
第7章 管理實體模型和數據庫架構 152
7.1 遷移 152
7.1.1 安裝遷移工具 153
7.1.2 管理遷移 154
7.1.3 應用遷移 155
7.1.4 自定義遷移操作 156
7.1.5 使用獨立的遷移項目 162
7.1.6 為模型提供多個遷移 163
7.1.7 自定義遷移歷史記錄 164
7.2 逆向工程 165
7.3 EF Core Power Tools 165
7.4 小結 165
第8章 管理數據 166
8.1 基礎保存 166
8.1.1 添加實體 166
8.1.2 更新實體 167
8.1.3 刪除實體 168
8.1.4 訂閱保存事件和註冊保存攔截器 169
8.2 保存相關實體 170
8.2.1 同時添加多個相關實體 170
8.2.2 為主實體單獨添加從實體 171
8.2.3 更改實體的關系 172
8.2.4 刪除關系 173
8.3 並發沖突 174
8.4 事務 175
8.4.1 簡單事務 175
8.4.2 跨上下文事務 176
8.4.3 使用外部事務 177
8.4.4 保存點 178
8.5 異步保存 178
8.6 實體跟蹤器和實體追蹤圖 179
8.6.1 基礎使用 179
8.6.2 訂閱實體跟蹤事件 180
8.7 小結 180
第9章 查詢數據 181
9.1 基礎查詢 181
9.1.1 查詢數據集合 181
9.1.2 查詢單個數據 182
9.1.3 查詢標量值 183
9.1.4 引用影子屬性 183
9.1.5 查詢標記 184
9.2 復雜查詢 184
9.2.1 結果投影 184
9.2.2 連接查詢 185
9.2.3 分組查詢 187
9.2.4 臨時禁用全局查詢過濾器 188
9.3 原始SQL查詢 188
9.4 映射的自定義函數 189
9.4.1 使用標量值函數 189
9.4.2 使用表值函數和存儲過程 189
9.4.3 自定義方法轉換 190
9.5 加載相關數據 191
9.5.1 預加載 191
9.5.2 延遲加載 192
9.5.3 顯式加載 195
9.5.4 拆分查詢 195
9.6 跟蹤和非跟蹤查詢 196
9.7 顯式編譯查詢 197
9.8 查看生成的SQL語句 197
9.9 服務端查詢和客戶端查詢 198
9.10 命令攔截器 198
9.11 異步查詢 199
9.12 小結 199
第10章 Entity Framework Core共享功能 200
10.1 配置上下文 200
10.1.1 日誌記錄 200
10.1.2 參數顯示 201
10.1.3 全局默認拆分查詢 201
10.1.4 全局默認基於標識解析的非跟蹤查詢 201
10.2 自動重試 201
10.3 內存數據庫 202
10.4 小結 202
第三篇 ASP.NET Core
第11章 快速入門 205
11.1 簡介 205
11.2 創建項目 205
11.3 小結 208
第12章 公共基礎 209
12.1 依賴註入 209
12.1.1 概述 209
12.1.2 在控制台應用中使用依賴註入 210
12.1.3 在ASP.NET Core應用中使用依賴註入 214
12.1.4 EF Core中的依賴註入 216
12.1.5 面向切麵編程 216
12.2 配置 223
12.2.1 簡介 223
12.2.2 在控制台應用中使用配置 224
12.2.3 在ASP.NET Core應用中使用配置 224
12.3 選項 226
12.3.1 簡介 226
12.3.2 具名選項 226
12.3.3 數據變更同步和變更事件 226
12.3.4 後期處理 226
12.3.5 選項驗證 226
12.3.6 選項作用域 227
12.3.7 在控制台應用中使用選項 227
12.3.8 在ASP.NET Core應用中使用選項 232
12.3.9 利用依賴註入的選項 233
12.4 日誌 234
12.4.1 日誌類別 235
12.4.2 嚴重性級別 235
12.4.3 事件Id 235
12.4.4 消息模板 236
12.4.5 記錄異常 236
12.4.6 作用域 236
12.4.7 運行時更改過濾器級別 236
12.4.8 在簡單控制台應用中使用日誌 236
12.4.9 記錄提供程序 237
12.5 主機 238
12.5.1 托管服務 238
12.5.2 環境 240
12.5.3 通用主機 240
12.6 Web主機 243
12.6.1 托管到Windows服務和Linux服務 243
12.6.2 .NET後台服務 244
12.7 中間件和請求處理管道 245
12.7.1 中間件和請求處理管道的關系 245
12.7.2 終端中間件和管道短路 246
12.7.3 中間件的順序 247
12.7.4 管道分支 248
12.7.5 內置中間件 249
12.7.6 自定義中間件 251
12.8 Startup類 254
12.8.1 基礎使用 254
12.8.2 多環境Startup 255
12.8.3 Startup過濾器 256
12.8.4 .NET 6新增的最小配置API 258
12.9 靜態文件 258
12.9.1 基礎使用 258
12.9.2 目錄瀏覽 259
12.9.3 靜態文件授權 260
12.10 動態響應和靜態資源壓縮 260
12.10.1 動態響應壓縮 260
12.10.2 靜態資源壓縮 261
12.11 緩存 261
12.11.1 客戶端緩存 261
12.11.2 緩存服務和響應緩存中間件 262
12.11.3 頁面數據緩存 264
12.12 流量控制 264
12.12.1 請求頻率控制 264
12.12.2 響應發送速率控制 264
12.13 端點路由 279
12.13.1 傳統路由回顧 279
12.13.2 端點路由簡介 279
12.13.3 基礎使用 280
12.13.4 鏈接生成 280
12.13.5 路由模板 281
12.13.6 路由約束 281
12.13.7 自定義約束 282
12.13.8 參數轉換器 283
12.13.9 自定義端點 284
12.14 發送HTTP請求 289
12.14.1 基礎使用 290
12.14.2 請求中間件 293
12.14.3 基於策略的處理程序和彈性故障處理 295
12.14.4 請求標頭傳播和分佈式鏈路追蹤 297
12.14.5 管理和使用Cookie 298
12.15 錯誤處理 299
12.16 托管和部署 301
12.17 小結 303
第13章 身份認證 304
13.1 基礎身份認證 304
13.1.1 Cookie認證 304
13.1.2 JWT認證 308
13.1.3 自定義身份認證 313
13.1.4 接入第三方身份認證服務 314
13.2 ASP.NET Core Identity 318
13.2.1 基礎使用 319
13.2.2 自定義用戶數據 321
13.2.3 賬戶確認和密碼重置 322
13.2.4 雙因素身份驗證和二維碼生成 323
13.2.5 隱私數據保護 323
13.3 OpenIddict 329
13.3.1 OpenId Connect(OIDC)和OAuth協議簡介 329
13.3.2 OpenIddict簡介 332
13.3.3 基礎使用 332
13.4 小結 340
第14章 授權 341
14.1 定義授權策略 341
14.2 配置授權策略 343
14.3 高級功能簡介 345
14.3.1 授權策略提供程序 345
14.3.2 自定義授權結果的處理方式 345
14.4 小結 345
第15章 MVC 346
15.1 簡介 346
15.1.1 MVC模式 346
15.1.2 ASP.NET Core MVC 347
15.2 模型 347
15.2.1 基礎使用 347
15.2.2 自定義數據源 350
15.2.3 特殊數據類型 350
15.2.4 從模型綁定中排除特定類型 350
15.2.5 模型綁定的全球化 350
15.2.6 手動調用模型綁定 351
15.2.7 輸入格式化器 351
15.2.8 為輸入格式化器自定義特定類型的轉換器 352
15.2.9 自定義模型綁定 352
15.2.10 模型驗證 355
15.3 控制器和動作 359
15.3.1 基礎使用 359
15.3.2 控制器和動作中的依賴註入 360
15.3.3 IActionResult 361
15.4 MVC過濾器 362
15.4.1 簡介 362
15.4.2 授權過濾器 364
15.4.3 自定義過濾器 364
15.4.4 依賴註入 366
15.4.5 配置過濾器 367
15.5 視圖 368
15.5.1 Razor引擎簡介 368
15.5.2 基礎Razor語法 368
15.5.3 特殊Razor文件 373
15.5.4 標簽助手 374
15.5.5 視圖組件 378
15.5.6 客戶端模型驗證 381
15.5.7 運行時視圖編譯 386
15.5.8 視圖編碼 386
15.5.9 視圖發現 387
15.6 區域 388
15.7 MVC路由 389
15.7.1 傳統路由 389
15.7.2 特性路由 390
15.7.3 路由參數轉換器 391
15.8 應用程序模型 391
15.9 應用程序部件 392
15.10 小結 393
第16章 Razor Pages 394
16.1 簡介 394
16.2 基礎使用 395
16.3 頁面處理器 396
16.3.1 默認約定 396
16.3.2 相關的Razor指令 397
16.3.3 後台代碼 398
16.4 模型綁定 398
16.5 Razor Pages過濾器 399
16.5.1 全局配置 399
16.5.2 重寫基類的方法 400
16.5.3 特性配置 400
16.6 Razor Pages路由 400
16.7 小結 401
第17章 Blazor 402
17.1 簡介 402
17.2 公共基礎 403
17.2.1 依賴註入 403
17.2.2 配置 404
17.2.3 啟動 405
17.2.4 環境 407
17.2.5 路由 408
17.2.6 錯誤處理 408
17.3 Razor組件 410
17.3.1 相關的Razor指令 410
17.3.2 後台代碼和分部類支持 411
17.3.3 輸出原始HTML 412
17.3.4 依賴註入 412
17.3.5 路由和導航 413
17.3.6 組件參數 414
17.3.7 屬性展開和任意參數 414
17.3.8 子內容 415
17.3.9 組件和元素引用 416
17.3.10 使用@key控制是否保留元素和組件 416
17.3.11 Razor模板 417
17.3.12 模板化組件 417
17.3.13 級聯值和參數 419
17.3.14 數據綁定 421
17.3.15 事件處理 423
17.3.16 生命周期 425
17.3.17 組件渲染 427
17.3.18 虛擬滾動組件 428
17.3.19 動態組件 429
17.3.20 表單和驗證 429
17.3.21 CSS隔離 429
17.3.22 常用內置組件簡介 430
17.4 服務端預渲染 431
17.4.1 基礎使用 431
17.4.2 保持組件狀態 434
17.5 佈局 437
17.6 發送HTTP請求 437
17.7 JavaScript互操作 437
17.7.1 從.NET調用JavaScript 438
17.7.2 從JavaScript調用.NET 439
17.8 狀態管理 442
17.9 程序集延遲加載 443
17.9.1 基礎使用 443
17.9.2 延遲加載的程序集中的可路由組件 444
17.10 漸進式Web應用 445
17.10.1 簡介 445
17.10.2 啟用PWA支持 445
17.11 調試 447
17.11.1 準備工作 447
17.11.2 啟用調試 448
17.11.3 在瀏覽器中調試 448
17.12 托管和部署 450
17.12.1 常用發布選項 450
17.12.2 關於應用基地址和在同一個服務端同時托管多個應用的註意事項 451
17.12.3 AOT編譯、IL裁剪和引用Native代碼功能簡介 462
17.13 小結 463
第18章 Razor類庫 464
18.1 簡介 464
18.2 靜態資源組織 464
18.3 小結 465
第19章 Web API 466
19.1 基礎使用 466
19.1.1 默認約定的API控制器 466
19.1.2 Web API路由 468
19.1.3 模型綁定 468
19.2 API版本、Open API和Swagger 469
19.2.1 多版本API 470
19.2.2 Swashbuckle 471
19.3 小結 473
第20章 遠程過程調用 474
20.1 WCF回顧 474
20.2 gRPC 475
20.2.1 PROTO文件 475
20.2.2 服務端 475
20.2.3 客戶端 478
20.2.4 在Blazor WebAssembly應用中使用gRPC-Web客戶端 480
20.3 小結 481
第21章 實時通信 482
21.1 早期解決方案回顧 482
21.2 WebSocket簡介 482
21.3 SignalR 483
21.3.1 集線器 483
21.3.2 流式連接 490
21.3.3 消息格式協議 492
21.3.4 應用承載力擴展 492
21.3.5 客戶端 493
21.4 小結 507
第22章 應用安全 508
22.1 數據保護 508
22.1.1 基礎使用 508
22.1.2 層次結構 510
22.1.3 時效性數據保護 510
22.2 管理機密 510
22.3 歐盟通用數據保護條例(GDPR) 511
22.4 防禦惡意攻擊 512
22.4.1 跨站點請求偽造(XSRF/CSRF) 513
22.4.2 開放重定向攻擊 514
22.4.3 跨站點腳本攻擊(XSS) 514
22.5 一般安全功能 515
22.5.1 強制執行HTTPS 515
22.5.2 HTTP嚴格傳輸安全協議(HSTS) 515
22.5.3 HTTPS和響應壓縮 516
22.5.4 跨域資源共享(CORS) 516
22.5.5 內容安全策略(CSP) 517
22.5.6 跨應用共享Cookie 517
22.6 小結 517
第23章 高級功能 518
23.1 全球化和本地化 518
23.1.1 服務註冊和請求管道配置 518
23.1.2 準備本地化文本 519
23.1.3 使用本地化服務 520
23.1.4 準備語言設置界面 522
23.2 GraphQL 523
23.2.1 服務端 523
23.2.2 客戶端 562
23.3 Elsa 565
23.3.1 基礎概念 565
23.3.2 搭建Web服務器 566
23.3.3 簡單自動工作流 568
23.3.4 人機交互工作流 569
23.4 MiniProfiler 572
23.5 小結 573
第24章 其他.NET功能 574
24.1 C/C++互操作 574
24.1.1 CppSharp簡介 574
24.1.2 基礎使用 575
24.2 程序集的動態載入和卸載 578
24.3 小結 580
第四篇 實戰演練
第25章 電子商城項目 583
25.1 項目定位 583
25.2 需求分析 584
25.2.1 統一的身份認證和授權中心 584
25.2.2 買家的獨立網頁渲染和業務邏輯服務 584
25.2.3 賣家的店鋪、商品和訂單管理 584
25.3 架構設計 585
25.4 創建解決方案和Git存儲庫 586
25.4.1 創建解決方案 586
25.4.2 創建Git存儲庫 587
25.5 定義應用域的通用抽象接口 588
25.5.1 實體相關接口 588
25.5.2 倉儲相關接口 591
25.5.3 命令和事件相關接口 596
25.6 開發通用基礎設施 601
25.6.1 EF Core倉儲 601
25.6.2 MediatR總線 605
25.7 開發身份認證和授權中心 608
25.7.1 EF Core擴展 608
25.7.2 Identity實體和上下文 609
25.7.3 集成Identity到ASP.NET Core托管網站 621
25.7.4 集成第三方賬號登錄 624
25.7.5 增加角色管理功能 625
25.7.6 添加OpenIddict服務端組件 627
25.8 開發買家商城 633
25.8.1 商城服務實體 633
25.8.2 商城服務 642
25.8.3 商城服務API站點 646
25.8.4 商城網站的初步開發 660
25.8.5 訂單服務 671
25.8.6 訂單服務API站點 674
25.8.7 商城網站的購物業務 676
25.9 開發賣家管理中心 681
25.9.1 賣家API 681
25.9.2 賣家管理應用 700
25.10 小結 723