ASP.NET Core 6框架揭秘(上下冊)

ASP.NET Core 6框架揭秘(上下冊)

《ASP.NET Core 6框架揭秘(上下冊)》是2022年電子工業出版社出版的圖書,作者是蔣金楠。

基本介紹

  • 中文名: ASP.NET Core 6框架揭秘(上下冊)
  • 作者:蔣金楠
  • 出版時間:2022年
  • 出版社: 電子工業出版社
  • 頁數:1036 頁
  • ISBN: 9787121435669  
  • 定價:300 元
  • 開本:16 開
內容簡介,圖書目錄,

內容簡介

本書主要介紹ASP.NET Core框架最核心的部分,即由一個伺服器和若干中間件構建的管道。本書共分為5篇:"第1篇 初識編程(第1章)”列舉一系列極簡的實例為讀者提供基本的編程體驗,"第2 篇 基礎框架(第2~13章)”主要介紹了一系列支撐ASP.NET Core的基礎框架,"第3篇 承載系統(第14~17章)”主要介紹了ASP.NET Core套用的承載流程,"第4篇 伺服器概述(第18章)”列舉一系列常見的伺服器類型並對它們進行了比較,“第5 篇 中間件(第19~30章)”系統地介紹了一系列預定義的中間件。

圖書目錄

第 1 篇 初識編程
第 1 章 編程體驗 ........................................................................................................................... 2
1.1 控制台程式 ........................................................................................................................ 2
1.1.1 構建開發環境 ........................................................................................................ 2
1.1.2 命令行構建 .NET 套用 ......................................................................................... 3
1.2 ASP.NET 套用 .................................................................................................................... 8
1.2.1 launchSettings.json ................................................................................................. 8
1.2.2 Minimal API ......................................................................................................... 11
1.2.3 中間件 ................................................................................................................. 13
1.2.4 配置選項 .............................................................................................................. 17
1.2.5 診斷日誌 .............................................................................................................. 19
1.2.6 路由 ..................................................................................................................... 20
1.3 MVC ................................................................................................................................ 21
1.3.1 定義 Controller ..................................................................................................... 21
1.3.2 引入視圖 .............................................................................................................. 22
1.4 gRPC ................................................................................................................................ 24
1.4.1 定義服務 .............................................................................................................. 24
1.4.2 實現和承載 .......................................................................................................... 26
1.4.3 調用服務 .............................................................................................................. 28
1.5 Dapr.................................................................................................................................. 29
1.5.1 構建開發環境 ...................................................................................................... 29
1.5.2 服務調用 .............................................................................................................. 30
1.5.3 狀態管理 .............................................................................................................. 34
1.5.4 發布訂閱 .............................................................................................................. 38
1.5.5 Actor 模型 ............................................................................................................ 40
第 2 篇 基礎框架
第 2 章 依賴注入(上) ............................................................................................................. 44
2.1 控制反轉 .......................................................................................................................... 44
2.1.1 流程控制的反轉 .................................................................................................. 44
2.1.2 好萊塢法則 .......................................................................................................... 47
2.1.3 流程定製 .............................................................................................................. 47
2.2 IoC 模式 ........................................................................................................................... 48
2.2.1 模板方法 .............................................................................................................. 48
2.2.2 工廠方法 .............................................................................................................. 49
2.2.3 抽象工廠 .............................................................................................................. 51
2.3 依賴注入 .......................................................................................................................... 53
2.3.1 由容器提供對象 .................................................................................................. 53
2.3.2 3 種注入方式 ....................................................................................................... 55
2.3.3 Service Locator 模式 ............................................................................................ 57
2.4 一個簡易版的依賴注入容器 ............................................................................................ 59
2.4.1 編程體驗 .............................................................................................................. 59
2.4.2 設計與實現 .......................................................................................................... 63
2.4.3 擴展方法 .............................................................................................................. 69
第 3 章 依賴注入(下) ............................................................................................................. 73
3.1 利用容器提供服務 ........................................................................................................... 73
3.1.1 服務的註冊與消費 ............................................................................................... 73
3.1.2 生命周期 .............................................................................................................. 76
3.1.3 服務註冊的驗證 .................................................................................................. 79
3.2 服務註冊 .......................................................................................................................... 82
3.2.1 ServiceDescriptor .................................................................................................. 82
3.2.2 IServiceCollection ................................................................................................. 83
3.3 服務的消費 ...................................................................................................................... 87
3.3.1 IServiceProvider ................................................................................................... 87
3.3.2 服務實例的創建 .................................................................................................. 89
3.3.3 生命周期 .............................................................................................................. 91
3.3.4 ActivatorUtilities .................................................................................................. 96
3.4 擴展................................................................................................................................ 101
3.4.1 適配 ................................................................................................................... 101
3.4.2 IServiceProviderFactory<TContainerBuilder> ..................................................... 102
3.4.3 整合第三方依賴注入框架 ................................................................................. 102
第 4 章 檔案系統 ....................................................................................................................... 107
4.1 抽象的檔案系統 ............................................................................................................. 107
4.1.1 樹形層次結構 .................................................................................................... 107
4.1.2 讀取檔案內容 .................................................................................................... 109
4.1.3 監控檔案的變化 ................................................................................................ 111
4.2 檔案與.................................................................................................................... 112
4.2.1 IChangeToken ..................................................................................................... 113
4.2.2 IFileProvider ....................................................................................................... 114
4.2.3 兩個特殊的檔案系統 ......................................................................................... 116
4.3 物理檔案系統 ................................................................................................................ 119
4.3.1 PhysicalFileInfo .................................................................................................. 119
4.3.2 PhysicalDirectoryInfo ......................................................................................... 120
4.3.3 PhysicalDirectoryContents .................................................................................. 120
4.3.4 NotFoundDirectoryContents ............................................................................... 121
4.3.5 PhysicalFilesWatcher .......................................................................................... 121
4.4 內嵌檔案系統 ................................................................................................................ 123
4.4.1 將項目檔案變成內嵌資源 ................................................................................. 123
4.4.2 讀取資源檔案 .................................................................................................... 124
4.4.3 EmbeddedFileProvider ........................................................................................ 125
第 5 章 配置選項(上) ........................................................................................................... 128
5.1 讀取配置信息 ................................................................................................................ 128
5.1.1 編程模型三要素 ................................................................................................ 128
5.1.2 以“鍵-值”對的形式讀取配置 ........................................................................ 129
5.1.3 讀取結構化的配置 ............................................................................................ 130
5.1.4 將結構化配置直接綁定為對象 .......................................................................... 133
5.1.5 將配置定義在檔案中 ......................................................................................... 133
5.1.6 根據環境動態載入配置檔案 ............................................................................. 134
5.1.7 配置內容的同步 ................................................................................................ 136
5.2 配置模型 ........................................................................................................................ 137
5.2.1 數據結構及其轉換 ............................................................................................. 137
5.2.2 IConfiguration .................................................................................................... 138
5.2.3 IConfigurationProvider ....................................................................................... 140
5.2.4 IConfigurationSource .......................................................................................... 142
5.2.5 IConfigurationBuilder ......................................................................................... 143
5.2.6 ConfigurationManager ........................................................................................ 143
5.3 配置綁定 ........................................................................................................................ 144
5.3.1 綁定配置項的值 ................................................................................................ 145
5.3.2 綁定複合對象 .................................................................................................... 147
5.3.3 綁定集合 ............................................................................................................ 149
5.3.4 綁定字典 ............................................................................................................ 151
5.4 配置的同步 .................................................................................................................... 152
5.4.1 配置數據流 ........................................................................................................ 152
5.4.2 ConfigurationReloadToken .................................................................................. 153
5.4.3 ConfigurationRoot .............................................................................................. 153
5.4.4 ConfigurationSection .......................................................................................... 156
5.5 多樣性的配置源 ............................................................................................................. 157
5.5.1 MemoryConfigurationSource .............................................................................. 157
5.5.2 EnvironmentVariablesConfigurationSource ......................................................... 158
5.5.3 CommandLineConfigurationSource .................................................................... 160
5.5.4 FileConfigurationSource ..................................................................................... 163
5.5.5 StreamConfigurationSource ................................................................................ 173
5.5.6 ChainedConfigurationSource ............................................................................... 175
第 6 章 配置選項(下) ........................................................................................................... 177
6.1 Options 模式 ................................................................................................................... 177
6.1.1 將配置綁定為 Options 對象 ............................................................................... 177
6.1.2 提供具名的 Options ........................................................................................... 179
6.1.3 配置源的同步 .................................................................................................... 180
6.1.4 直接初始化 Options 對象 ................................................................................... 182
6.1.5 根據依賴服務的 Options 設定 ........................................................................... 184
6.1.6 驗證 Options 的有效性 ...................................................................................... 186
6.2 Options 模型 ................................................................................................................... 187
6.2.1 OptionsManager<TOptions> ............................................................................... 187
6.2.2 IOptionsFactory<TOptions> ............................................................................... 189
6.2.3 IOptionsMonitorCache<TOptions> ..................................................................... 197
6.2.4 IOptionsMonitor<TOptions> ............................................................................... 198
6.3 依賴注入 ........................................................................................................................ 200
6.3.1 服務註冊 ............................................................................................................ 200
6.3.2 IOptions<TOptions>與 IOptionsSnapshot<TOptions> ......................................... 206
6.3.3 集成配置系統 .................................................................................................... 208
第 7 章 診斷日誌(上) ........................................................................................................... 210
7.1 各種診斷日誌形式 ......................................................................................................... 210
7.1.1 調試日誌 ............................................................................................................ 210
7.1.2 跟蹤日誌 ............................................................................................................ 211
7.1.3 事件日誌 ............................................................................................................ 213
7.1.4 診斷日誌 ............................................................................................................ 216
7.2 Debugger 調試日誌 ........................................................................................................ 219
7.2.1 Debugger ............................................................................................................ 220
7.2.2 Debug ................................................................................................................. 221
7.3 TraceSource 跟蹤日誌 .................................................................................................... 222
7.3.1 跟蹤日誌模型三要素 ......................................................................................... 222
7.3.2 預定義 TraceListener .......................................................................................... 231
7.3.3 Trace .................................................................................................................. 235
7.4 EventSource 事件日誌 .................................................................................................... 237
7.4.1 EventSource ....................................................................................................... 237
7.4.2 EventListener ...................................................................................................... 243
7.4.3 活動跟蹤 ............................................................................................................ 247
7.5 DiagnosticSource 診斷日誌 ............................................................................................ 251
7.5.1 標準的觀察者模式 ............................................................................................ 251
7.5.2 AnonymousObserver<T> .................................................................................... 253
7.5.3 強類型的日誌事件訂閱 ..................................................................................... 256
7.5.4 針對活動的跟蹤 ................................................................................................ 258
第 8 章 診斷日誌(中) ........................................................................................................... 260
8.1 統一日誌編程模式 ......................................................................................................... 260
8.1.1 日誌輸出 ............................................................................................................ 260
8.1.2 日誌過濾 ............................................................................................................ 265
8.1.3 日誌範圍 ............................................................................................................ 271
8.1.4 LoggerMessage ................................................................................................... 273
8.2 日誌模型詳解 ................................................................................................................ 274
8.2.1 日誌模型三要素 ................................................................................................ 274
8.2.2 ILogger ............................................................................................................... 275
8.2.3 ILoggerProvider .................................................................................................. 277
8.2.4 ILoggerFactory ................................................................................................... 277
8.2.5 LoggerMessage ................................................................................................... 281
8.3 日誌範圍 ........................................................................................................................ 283
8.3.1 調用鏈跟蹤 ........................................................................................................ 283
8.3.2 服務範圍堆疊 .................................................................................................... 294
8.3.3 Activity 的套用 .................................................................................................. 296
8.4 依賴注入 ........................................................................................................................ 297
8.4.1 核心服務 ............................................................................................................ 298
8.4.2 配置 ................................................................................................................... 300
8.4.3 日誌過濾規則 .................................................................................................... 303
第 9 章 診斷日誌(下) ........................................................................................................... 306
9.1 控制台 ............................................................................................................................ 306
9.1.1 ConsoleFormatter ................................................................................................ 306
9.1.2 ConsoleLogger .................................................................................................... 313
9.1.3 ConsoleLoggerProvider ....................................................................................... 315
9.1.4 服務註冊 ............................................................................................................ 316
9.2 調試器 ............................................................................................................................ 321
9.2.1 DebugLogger ...................................................................................................... 322
9.2.2 DebugLoggerProvider ......................................................................................... 323
9.3 TraceSource 日誌 ............................................................................................................ 323
9.3.1 TraceSourceLogger ............................................................................................. 323
9.3.2 TraceSourceLoggerProvider ................................................................................ 325
9.4 EventSource 日誌 ........................................................................................................... 327
9.4.1 LoggingEventSource ........................................................................................... 327
9.4.2 EventSourceLogger............................................................................................. 328
9.4.3 EventSourceLoggerProvider ............................................................................... 332
9.4.4 日誌範圍 ............................................................................................................ 334
第 10 章 對象池 ......................................................................................................................... 338
10.1 利用對象池復用對象 ................................................................................................... 338
10.1.1 對象的“借”與“還” ................................................................................... 338
10.1.2 依賴注入 .......................................................................................................... 340
10.1.3 池化對象策略 .................................................................................................. 340
10.1.4 對象池的大小 .................................................................................................. 341
10.1.5 對象的釋放 ...................................................................................................... 344
10.2 池化對象管理 .............................................................................................................. 345
10.2.1 IPooledObjectPolicy<T> ................................................................................... 345
10.2.2 ObjectPool<T> ................................................................................................. 346
10.2.3 ObjectPoolProvider ........................................................................................... 351
10.3 擴展套用 ...................................................................................................................... 352
10.3.1 池化集合 .......................................................................................................... 352
10.3.2 池化 StringBuilder ............................................................................................ 354
10.3.3 ArrayPool<T> ................................................................................................... 356
10.3.4 MemoryPool<T> .............................................................................................. 357
第 11 章 快取 ............................................................................................................................. 359
11.1 將數據快取起來 ........................................................................................................... 359
11.1.1 將數據快取在記憶體中 ....................................................................................... 359
11.1.2 將數據快取在 Redis 中 .................................................................................... 360
11.1.3 將數據快取在 SQL Server 中 ........................................................................... 363
11.2 本地記憶體快取 ............................................................................................................... 365
11.2.1 ICacheEntry ...................................................................................................... 365
11.2.2 MemoryCacheEntryOptions .............................................................................. 368
11.2.3 IMemoryCache ................................................................................................. 369
11.3 分散式快取 .................................................................................................................. 378
11.3.1 IDistributedCache ............................................................................................. 378
11.3.2 Redis 快取 ........................................................................................................ 379
11.3.3 SQL Server 快取 ............................................................................................... 382
第 12 章 HTTP 調用 ................................................................................................................. 385
12.1 HttpClient 的工廠 ......................................................................................................... 385
12.1.1 手動創建 HttpClient ......................................................................................... 385
12.1.2 使用 IHttpClientFactory 工廠 ........................................................................... 387
12.1.3 直接注入 HttpClient ......................................................................................... 387
12.1.4 定製 HttpClient................................................................................................. 388
12.1.5 強類型客戶端 .................................................................................................. 389
12.1.6 失敗重試 .......................................................................................................... 390
12.2 HttpMessageHandler 管道 ............................................................................................. 391
12.2.1 HttpMessageHandler ......................................................................................... 391
12.2.2 DelegatingHandler ............................................................................................ 392
12.2.3 診斷日誌 .......................................................................................................... 396
12.2.4 復用 HttpClientHandler .................................................................................... 398
12.3 HttpClient 的構建 ......................................................................................................... 400
12.3.1 HttpMessageHandlerBuilder ............................................................................. 400
12.3.2 HttpClientFactoryOptions ................................................................................. 401
12.3.3 IHttpMessageHandlerBuilderFilter .................................................................... 407
12.3.4 IHttpClientFactory ............................................................................................ 408
12.4 依賴注入 ...................................................................................................................... 418
12.4.1 基礎服務註冊 .................................................................................................. 418
12.4.2 定製 HttpClient................................................................................................. 420
12.4.3 強類型客戶端 .................................................................................................. 424
第 13 章 數據保護 ..................................................................................................................... 430
13.1 加密與哈希 .................................................................................................................. 430
13.1.1 數據加密與解密............................................................................................... 430
13.1.2 設定加密內容的有效期 ................................................................................... 433
13.1.3 撤銷密鑰 .......................................................................................................... 434
13.1.4 “瞬時”加解密............................................................................................... 435
13.1.5 密碼哈希 .......................................................................................................... 437
13.2 加密模型 ...................................................................................................................... 438
13.2.1 IAuthenticatedEncryptor ................................................................................... 438
13.2.2 IKey ................................................................................................................. 439
13.2.3 IKeyRing .......................................................................................................... 440
13.2.4 IKeyRingProvider ............................................................................................. 442
13.2.5 IDataProtector ................................................................................................... 443
13.3 密鑰管理 ...................................................................................................................... 452
13.3.1 KeyManagementOptions ................................................................................... 452
13.3.2 Key ................................................................................................................... 457
13.3.3 IKeyManager .................................................................................................... 459
13.3.4 KeyRingProvider .............................................................................................. 465
13.4 依賴注入 ...................................................................................................................... 472
13.4.1 註冊基礎服務 .................................................................................................. 472
13.4.2 密鑰管理配置 .................................................................................................. 477
13.4.3 擴展配置 .......................................................................................................... 478
附錄 A ........................................................................................................................................... 482
第 3 篇 承載系統
第 14 章 服務承載 ..................................................................................................................... 488
14.1 服務承載 ...................................................................................................................... 488
14.1.1 性能指標收集服務 ........................................................................................... 488
14.1.2 依賴注入 .......................................................................................................... 490
14.1.3 配置選項 .......................................................................................................... 493
14.1.4 承載環境 .......................................................................................................... 496
14.1.5 日誌 ................................................................................................................. 498

相關詞條

熱門詞條

聯絡我們