C# 與 .NET 6 開發從入門到實踐

敖瑞

  • 出版商: 清華大學
  • 出版日期: 2023-03-01
  • 定價: $1,014
  • 售價: 8.5$862
  • 語言: 簡體中文
  • 頁數: 723
  • ISBN: 7302621985
  • ISBN-13: 9787302621980
  • 相關分類: .NETC#
  • 下單後立即進貨 (約4週~6週)

  • C# 與 .NET 6 開發從入門到實踐-preview-1
  • C# 與 .NET 6 開發從入門到實踐-preview-2
  • C# 與 .NET 6 開發從入門到實踐-preview-3
C# 與 .NET 6 開發從入門到實踐-preview-1

買這商品的人也買了...

商品描述

本書以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