ASP.NET Core 3框架揭秘(全2冊) 版權信息
- ISBN:9787121384622
- 條形碼:9787121384622 ; 978-7-121-38462-2
- 裝幀:平裝-膠訂
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
ASP.NET Core 3框架揭秘(全2冊) 本書特色
《ASP.NET Core 3 框架揭秘(上下冊)》主要闡述 ASP.NET Core *核心的部分——請求處理管道。通過閱讀本書,讀者可以深刻系統地了解 ASP.NET Core 應用在啟動過程中管道的構建方式,以及請求在管道中的處理流程。《ASP.NET Core 3 框架揭秘(上下冊)》還詳細講述了 .NET Core 跨平臺的本質,以及多個常用的基礎框架(如依賴注入、文件信息、配置選項和診斷日志等)。《ASP.NET Core 3 框架揭秘(上下冊)》還對大部分原生的中間件提供了系統性介紹,采用“編程體驗”、“總體設計”、“具體實現”和“靈活運用”的流程,使讀者可以循序漸進地學習 ASP.NET Core 的每個功能模塊。《ASP.NET Core 3 框架揭秘(上下冊)》可供所有 .NET 從業人員閱讀與參考。
ASP.NET Core 3框架揭秘(全2冊) 內容簡介
作為核心的Web開發平臺,ASP.NET Core可利用其極具擴展能力的請求處理管道,來支撐目前常用的開發模型,如MVC、GRPC、SingalR和Orlean等。不論從事哪種類型的Web開發,針對底層管道的了解都是必需的。如對底層框架具有足夠的了解,甚至可以在ASP.NET Core平臺上構建自己的Web編程模型。《ASP.NET Core 3框架揭秘》不拘泥于某種Web編程模型,而是直接從HTTP請求處理流程的視角對ASP.NET Core底層框架進行剖析,讓你真正了解*本質和核心的原理。
√ 體驗 .NET Core跨平臺應用開發,了解 .NET Core跨平臺的奧秘。
√ 剖析常用基礎框架(依賴注入、文件系統、配置選項和診斷日志等)。
√ 系統介紹以IHost/IHostBuilder為核心的服務承載系統。
√ 深刻理解ASP.NET Core管道的構建方式,以及管道針對請求的處理流程。
√ 深入講述每個常用中間件針對請求的處理邏輯。
ASP.NET Core 3框架揭秘(全2冊) 目錄
第1章 全新的開發體驗 1
1.1 Windows平臺 1
1.1.1 構建開發環境 1
1.1.2 利用命令行創建 .NET Core應用 2
1.1.3 ASP.NET Core應用 6
1.1.4 ASP.NET Core MVC應用 13
1.2 macOS用戶 17
1.2.1 構建開發環境 17
1.2.2 利用命令行創建 .NET Core應用 17
1.2.3 ASP.NET Core MVC應用 18
1.3 Linux 19
1.3.1 啟用Linux子系統 20
1.3.2 構建開發環境 22
1.3.3 利用命令行創建ASP.NET Core應用 22
1.4 Docker 24
第2章 跨平臺的奧秘 27
2.1 歷史的枷鎖 27
2.1.1 Windows下的 .NET 27
2.1.2 非Windows下的 .NET 31
2.2 復用之傷 34
2.2.1 源代碼復用 34
2.2.2 程序集復用 36
2.3 全新的布局 44
2.3.1 跨平臺的 .NET Core 44
2.3.2 統一的BCL 51
2.3.3 展望未來 56
第3章 依賴注入(上篇) 58
3.1 控制反轉 58
3.1.1 流程控制的反轉 58
3.1.2 好萊塢法則 61
3.1.3 流程定制 62
3.2 IoC模式 62
3.2.1 模板方法 63
3.2.2 工廠方法 64
3.2.3 抽象工廠 66
3.3 依賴注入 68
3.3.1 由容器提供對象 68
3.3.2 3種依賴注入方式 69
3.3.3 Service Locator模式 72
3.4 一個簡易版的依賴注入容器 74
3.4.1 編程體驗 74
3.4.2 設計與實現 79
3.4.3 擴展方法 85
第4章 依賴注入(下篇) 89
4.1 利用容器提供服務 89
4.1.1 服務的注冊與消費 89
4.1.2 生命周期 93
4.1.3 針對服務注冊的驗證 96
4.2 服務注冊 99
4.2.1 ServiceDescriptor 99
4.2.2 IServiceCollection 101
4.3 服務的消費 105
4.3.1 IServiceProvider 105
4.3.2 服務實例的創建 106
4.3.3 生命周期 109
4.4 實現概覽 113
4.4.1 ServiceProviderEngine和ServiceProviderEngineScope 113
4.4.2 ServiceProvider 115
4.4.3 注入IServiceProvider對象 117
4.5 擴展 119
4.5.1 適配 120
4.5.2 IServiceProviderFactory 120
4.5.3 整合第三方依賴注入框架 121
第5章 文件系統 126
5.1 抽象的文件系統 126
5.1.1 樹形層次結構 126
5.1.2 讀取文件內容 128
5.1.3 監控文件的變化 130
5.2 設計詳解 131
5.2.1 IChangeToken 132
5.2.2 IFileProvider 133
5.2.3 PhysicalFileProvider 135
5.2.4 EmbeddedFileProvider 139
5.2.5 兩個特殊的IFileProvider實現 144
5.3 遠程文件系統 147
5.3.1 HttpFileInfo與HttpDirectoryContents 147
5.3.2 HttpFileProvider 150
5.3.3 FileProviderMiddleware 151
5.3.4 遠程文件系統的應用 153
第6章 配置選項(上篇) 155
6.1 讀取配置信息 155
6.1.1 配置編程模型三要素 155
6.1.2 以鍵值對的形式讀取配置 156
6.1.3 讀取結構化的配置 157
6.1.4 將結構化配置直接綁定為對象 160
6.1.5 將配置定義在文件中 161
6.2 配置模型 165
6.2.1 數據結構及其轉換 166
6.2.2 IConfiguration 167
6.2.3 IConfigurationProvider 169
6.2.4 IConfigurationSource 171
6.2.5 IConfigurationBuilder 171
6.3 配置綁定 172
6.3.1 綁定配置項的值 173
6.3.2 綁定復合數據類型 175
6.3.3 綁定集合對象 177
6.3.4 綁定字典 180
6.4 配置的同步 181
6.4.1 配置數據流 181
6.4.2 ConfigurationReloadToken 182
6.4.3 ConfigurationRoot 183
6.4.4 ConfigurationSection 185
6.5 多樣性的配置源 186
6.5.1 MemoryConfigurationSource 187
6.5.2 EnvironmentVariablesConfigurationSource 188
6.5.3 CommandLineConfigurationSource 191
6.5.4 FileConfigurationSource 194
6.5.5 StreamConfigurationSource 207
6.5.6 ChainedConfigurationSource 208
6.5.7 自定義ConfigurationSource(S616) 210
第7章 配置選項(下篇) 215
7.1 Options模式 215
7.1.1 將配置綁定為Options對象 215
7.1.2 提供具名的Options 217
7.1.3 配置源的同步 219
7.1.4 直接初始化Options對象 221
7.1.5 根據依賴服務的Options設置 223
7.1.6 驗證Options的有效性 225
7.2 Options模型 226
7.2.1 OptionsManager 226
7.2.2 IOptionsFactory 228
7.2.3 IOptionsMonitorCache 237
7.2.4 IOptionsMonitor 238
7.3 依賴注入 240
7.3.1 服務注冊 240
7.3.2 IOptions與IOptionsSnapshot 246
7.3.3 擴展與定制 248
7.3.4 集成配置系統 256
第8章 診斷日志(上篇) 258
8.1 各種診斷日志形式 258
8.1.1 調試日志 258
8.1.2 跟蹤日志 259
8.1.3 事件日志 262
8.1.4 診斷日志 265
8.2 Debugger調試日志 268
8.2.1 Debugger 268
8.2.2 Debug 270
8.3 TraceSource跟蹤日志 271
8.3.1 跟蹤日志模型三要素 271
8.3.2 預定義TraceListener 280
8.3.3 Trace 284
8.4 EventSource事件日志 287
8.4.1 EventSource 287
8.4.2 EventListener 294
8.4.3 荷載對象序列化 298
8.4.4 活動跟蹤 302
8.4.5 性能計數 306
8.5 DiagnosticSource診斷日志 308
8.5.1 標準的觀察者模式 308
8.5.2 AnonymousObserver 310
8.5.3 強類型的事件訂閱 313
8.5.4 針對活動的跟蹤 315
第9章 診斷日志(下篇) 317
9.1 統一日志編程模式 317
9.1.1 將日志輸出到不同的渠道 317
9.1.2 日志過濾 323
9.1.3 日志范圍 329
9.1.4 LoggerMessage 331
9.2 日志模型詳解 334
9.2.1 日志模型三要素 334
9.2.2 ILogger 335
9.2.3 日志范圍 339
9.2.4 ILoggerProvider 342
9.2.5 ILoggerFactory 342
9.2.6 LoggerMessage 347
9.3 依賴注入 348
9.3.1 服務注冊 349
9.3.2 設置日志過濾規則 351
9.4 日志輸出渠道 353
9.4.1 控制臺 353
9.4.2 調試器 357
9.4.3 TraceSource日志 359
9.4.4 EventSource日志 362
第10章 承載系統 377
10.1 服務承載 377
10.1.1 承載長時間運行服務 377
10.1.2 依賴注入 379
10.1.3 配置選項 382
10.1.4 承載環境 385
10.1.5 日志 388
10.2 承載模型 391
10.2.1 IHostedService 392
10.2.2 IHost 392
10.2.3 IHostBuilder 397
10.3 實現原理 402
10.3.1 服務宿主 403
10.3.2 針對配置系統的設置 406
10.3.3 針對依賴注入框架的設置 407
10.3.4 創建宿主 412
10.3.5 靜態類型Host 418
第11章 管道(上篇) 421
11.1 管道式的請求處理 421
11.1.1 兩個承載體系 421
11.1.2 請求處理管道 423
11.1.3 中間件 424
11.1.4 定義強類型中間件 427
11.1.5 按照約定定義中間件 428
11.2 依賴注入 430
11.2.1 服務注冊 430
11.2.2 服務的消費 433
11.2.3 生命周期 437
11.2.4 集成第三方依賴注入框架 443
11.3 配置 444
11.3.1 初始化配置 444
11.3.2 以鍵值對形式讀取和修改配置 446
11.3.3 合并配置 448
11.3.4 注冊IConfigurationSource 449
11.4 承載環境 450
11.4.1 IWebHostEnvironment 450
11.4.2 通過配置定制承載環境 452
11.4.3 針對環境的編程 454
11.5 初始化 459
11.5.1 Startup 459
11.5.2 IHostingStartup 461
11.5.3 IStartupFilter 464
第12章 管道(中篇) 467
12.1 中間件委托鏈 467
12.1.1 HttpContext 467
12.1.2 中間件 468
12.1.3 中間件管道的構建 469
12.2 服務器 470
12.2.1 IServer 471
12.2.2 針對服務器的適配 471
12.2.3 HttpListenerServer 473
12.3 承載服務 476
12.3.1 WebHostedService 476
12.3.2 WebHostBuilder 476
12.3.3 應用構建 478
第13章 管道(下篇) 480
13.1 請求上下文 480
13.1.1 HttpContext 480
13.1.2 服務器適配 483
13.1.3 獲取上下文 487
13.1.4 上下文的創建與釋放 488
13.1.5 RequestServices 489
13.2 IServer IHttpApplication 491
13.2.1 IServer 491
13.2.2 HostingApplication 492
13.2.3 診斷日志 495
13.3 中間件委托鏈 501
13.3.1 IApplicationBuilder 501
13.3.2 弱類型中間件 504
13.3.3 強類型中間件 507
13.3.4 注冊中間件 509
13.4 應用的承載 510
13.4.1 GenericWebHostServiceOptions 510
13.4.2 GenericWebHostService 512
13.4.3 GenericWebHostBuilder 515
13.4.4 ConfigureWebHostDefaults 530
附錄A 實例演示1 533
第14章 靜態文件 537
14.1 搭建文件服務器 537
14.1.1 發布物理文件 537
14.1.2 呈現目錄結構 540
14.1.3 顯示默認頁面 541
14.1.4 映射媒體類型 544
14.2 處理文件請求 545
14.2.1 條件請求 545
14.2.2 區間請求 549
14.2.3 StaticFileMiddleware 552
14.3 處理目錄請求 563
14.3.1 DirectoryBrowserMiddleware 563
14.3.2 DefaultFilesMiddleware 567
第15章 路由 571
15.1 路由映射 571
15.1.1 路由注冊 571
15.1.2 設置內聯約束 574
15.1.3 默認路由參數 576
15.1.4 特殊的路由參數 578
15.2 終結點的解析與執行 580
15.2.1 路由模式 580
15.2.2 終結點 586
15.2.3 中間件 593
15.3 路由約束 599
15.3.1 預定義的IRouteConstraint 600
15.3.2 InlineConstraintResolver 602
15.3.3 自定義約束 603
第16章 異常處理 607
16.1 呈現錯誤信息 607
16.1.1 顯示開發者異常頁面 607
16.1.2 顯示定制異常頁面 610
16.1.3 針對響應狀態碼定制錯誤頁面 612
16.2 開發者異常頁面 615
16.2.1 IDeveloperPageExceptionFilter 616
16.2.2 顯示編譯異常信息 617
16.2.3 DeveloperExceptionPageMiddleware 622
16.3 異常處理器 624
16.3.1 ExceptionHandlerMiddleware 624
16.3.2 異常的傳遞與請求路徑的恢復 626
16.3.3 清除緩存 629
16.4 響應狀態碼頁面 631
16.4.1 StatusCodePagesMiddleware 632
16.4.2 阻止處理異常 632
16.4.3 注冊StatusCodePagesMiddleware中間件 635
第17章 緩存 642
17.1 將數據緩存起來 642
17.1.1 將數據緩存在內存中 642
17.1.2 對數據進行分布式緩存 644
17.1.3 緩存整個HTTP響應 648
17.2 本地內存緩存 651
17.2.1 ICacheEntry 651
17.2.2 MemoryCacheEntryOptions 654
17.2.3 IMemoryCache 655
17.3 分布式緩存 663
17.3.1 IDistributedCache 664
17.3.2 基于Redis的分布式緩存 665
17.3.3 基于SQL Server的分布式緩存 668
17.4 響應緩存 670
17.4.1 HTTP/1.1 Caching 670
17.4.2 ResponseCachingMiddleware中間件 673
17.4.3 注冊中間件 680
第18章 會話 681
18.1 利用會話保留“語境” 681
18.1.1 設置和提取會話狀態 681
18.1.2 查看存儲的會話狀態 683
18.1.3 查看Cookie 685
18.2 會話狀態的讀寫 686
18.2.1 ISession 686
18.2.2 DistributedSession 687
18.2.3 ISessionStore 688
18.3 SessionMiddleware中間件 689
18.3.1 SessionOptions 689
18.3.2 ISessionFeature 690
18.3.3 SessionMiddleware 691
第19章 認證 694
19.1 認證、登錄與注銷 694
19.1.1 認證票據 694
19.1.2 基于Cookie的認證 695
19.1.3 應用主頁 696
19.1.4 登錄與注銷 698
19.2 身份與用戶 700
19.2.1 IIdentity 700
19.2.2 IPrincipal 707
19.3 認證模型 710
19.3.1 認證票據 710
19.3.2 認證處理器 713
19.3.3 認證服務 720
19.3.4 服務注冊 724
19.3.5 AuthenticationMiddleware 727
19.4 Cookie認證方案 729
19.4.1 AuthenticationHandler 729
19.4.2 CookieAuthenticationHandler 735
19.4.3 注冊CookieAuthenticationHandler 744
第20章 授權 747
20.1 基于角色的權限控制 747
20.1.1 用戶與角色的映射 747
20.1.2 根據角色授權 750
20.1.3 預定義授權策略 754
20.2 基于“要求”的授權 756
20.2.1 IAuthorizationRequirement 756
20.2.2 預定義的IAuthorizationRequirement實現類型 758
20.2.3 授權檢驗 762
20.3 基于“策略”的授權 767
20.3.1 授權策略的構建 768
20.3.2 授權策略的注冊 769
20.3.3 授權檢驗 770
第21章 跨域資源共享 773
21.1 處理跨域資源 773
21.1.1 跨域調用API 773
21.1.2 資源提供者顯式授權 777
21.1.3 基于策略的資源授權 779
21.2 CORS規范 780
21.2.1 同源策略 781
21.2.2 針對資源的授權 781
21.2.3 獲取授權的方式 782
21.2.4 用戶憑證 785
21.3 CORS模型 785
21.3.1 CORS策略 786
21.3.2 解析并應用授權結果 788
21.3.3 CorsMiddleware中間件 790
第22章 本地化 793
22.1 提供本地化消息文本 793
22.1.1 提供對應語種的文本 793
22.1.2 自動設置語言文化 795
22.1.3 將本地化文本分而治之 798
22.1.4 直接注入IStringLocalizer 800
22.2 文本本地化 801
22.2.1 字符串本地化模型 801
22.2.2 基于JSON文件的本地化 804
22.2.3 基于資源文件的本地化 810
22.3 當前語言文化的設置 814
22.3.1 Culture與UICulture 814
22.3.2 IRequestCultureProvider 815
22.3.3 RequestLocalizationOptions 820
22.3.4 RequestLocalizationMiddleware 821
第23章 健康檢查 822
23.1 檢查應用的健康狀況 822
23.1.1 確定當前應用是否可用 822
23.1.2 定制健康檢查邏輯 823
23.1.3 改變響應狀態碼 825
23.1.4 細粒度的健康檢查 826
23.1.5 定制響應內容 828
23.1.6 過濾IHealthCheck對象 830
23.2 設計與實現 832
23.2.1 IHealthCheck 832
23.2.2 HealthCheckService 838
23.2.3 HealthCheckMiddleware 842
23.2.4 針對Entity Framework Core的健康檢查 846
23.3 發布健康報告 850
23.3.1 定期發布健康報告 850
23.3.2 IHealthCheckPublisher 851
23.3.3 HealthCheckPublisherHostedService 852
第24章 補遺 856
24.1 過濾主機名 856
24.1.1 實例演示 856
24.1.2 配置選項 857
24.1.3 HostFilteringMiddleware中間件 858
24.2 HTTP重寫 859
24.2.1 實例演示 859
24.2.2 HttpMethodOverrideMiddleware中間件 863
24.2.3 ForwardedHeadersMiddleware中間件 864
24.3 基礎路徑 872
24.3.1 實例演示 873
24.3.2 UsePathBaseMiddleware 874
24.4 路由 876
24.4.1 實例演示 876
24.4.2 MapMiddleware 878
24.4.3 MapWhenMiddleware 880
附錄B 實例演示2 882
展開全部
ASP.NET Core 3框架揭秘(全2冊) 作者簡介
蔣金楠,同程藝龍技術專家。知名IT博主(多年來一直排名博客園第一位),擁有個人微信公眾號“大內老A”;2007—2018年連續12次被評為微軟MVP(最有價值專家),也是少數跨多領域(Solutions Architect、Connected System、Microsoft Integration和ASP.NET/IIS等)的MVP之一;暢銷IT圖書作者,先后出版了《WCF全面解析》、《ASP.NET MVC 4框架揭秘》、《ASP.NET MVC 5框架揭秘》和《ASP.NET Web API 2框架揭秘》等著作。