ASP.NET Core真機拆解

ASP.NET Core真機拆解

《ASP.NET Core真機拆解》是2020年人民郵電出版社出版的圖書,作者是羅志超。本書主要是基於ASP.NET Core 3,從使用的角度展開講解。如“真機拆解”般分析ASP.NET Core內部運行機制。融合作者多年技術經驗和獨到見解,通俗易懂不枯燥。

基本介紹

  • 書名:ASP.NET Core真機拆解
  • 作者:羅志超
  • 出版社:人民郵電出版社
  • ISBN:9787115540485
內容簡介,圖書目錄,作者簡介,

內容簡介

對於讀者來說,學習ASP.NET Core就像學習使用一部新手機。手機內部組成結構可能有改變,各個元器件的性能可能有提升,元器件之間的兼容性可能更好。但在操作方式上,用戶除了要學習如何使用個別的新功能以及適應系統更快的反應速度外,並沒有太多改變。基於以上,本書內容主要分為三部分。*部分是ASP.NET Core的使用說明,簡要介紹如何使用ASP.NET Core創建項目及其與ASP.NET 4.x的不同點;第二部分是真機拆解,講解ASP.NET Core框架的內部運行邏輯;第三部分是通過一個項目案例回顧全書知識點,並介紹如何在ASP.NET Core中對用戶進行認證和授權。

圖書目錄

第1章 ASP.NET Core介紹 1
1.1 為什麼要使用ASP.NET Core 1
1.2 如何跨平台 1
第2章 開發環境準備 4
2.1 概述 4
2.2 Windows環境下Visual Studio的安裝 4
2.3 macOS環境下Visual Studio的安裝 5
第3章 項目結構 6
3.1 新建項目 6
3.2 項目結構詳解 7
3.2.1 launchSettings.json 7
3.2.2 wwwroot 9
3.2.3 框架 9
3.2.4 _Layout.cshtml 11
3.2.5 _ValidationScriptsPartial.cshtml 11
3.2.6 _ViewImports.cshtml 12
3.2.7 _ViewStart.cshtml 13
3.2.8 appsettings.json和appsettings.Development.json 14
3.2.9 Program.cs 14
3.2.10 Startup.cs 15
第4章 _Layout與_ViewStart 17
4.1 _Layout的套用 17
4.2 _ViewStart的套用 20
4.3 頁面的載入順序 20
第5章 TagHelper 22
5.1 概述 22
5.2 自定義TagHelper 24
5.3 TagHelper的註冊 25
5.4 TagHelper的作用範圍 25
5.5 自定義標籤 27
5.6 TagHelper與頁面之間的數據傳遞 28
5.7 取消標籤輸出 29
5.8 TagBuilder 29
第6章 套用的跨平台部署 31
6.1 概述 31
6.2 在CentOS中安裝ASP.NET Core環境 31
6.3 在Windows上用Visual Studio發布項目 32
6.4 項目運行測試 32
6.5 創建service管理套用 33
6.6 安裝Nginx 34
6.7 SSL免費證書申請 34
6.8 多網站及證書配置 36
6.9 啟用ForwardedHeaders中間件 38
6.10 獨立部署(SCD) 39
第7章 架構概覽 40
7.1 ASP.NET Core的運行機制 40
7.2 ASP.NET Core Application的架構 41
7.3 對HTTP/2的支持 41
7.3.1 Kestrel 41
7.3.2 IIS(進程內) 41
7.4 ASP.NET Core的環境變數 42
第8章 套用啟動 43
8.1 概述 43
8.2 HostBuilder的創建與配置 45
8.2.1 Host的創建者HostBuilder 45
8.2.2 GenericWebHostBuilder 50
8.2.3 處理Startup檔案 53
8.3 Host的構建 57
8.4 Host的啟動 63
第9章 後台服務 66
9.1 套用場景 66
9.2 實現方式 66
9.2.1 實現IHostedService接口 67
9.2.2 在依賴注入中註冊這個服務 68
9.3 採用BackgroundService派生類的方式 68
9.4 注意事項 70
第10章 依賴注入 71
10.1 為什麼要用依賴注入 71
10.2 容器的構建和規則 73
10.3 ASP.NET Core的依賴注入 74
10.3.1 IServiceCollection 75
10.3.2 ServiceDescriptor 76
10.3.3 IServiceProvider 76
10.3.4 IServiceScope 77
10.4 實例獲取方法及需要注意的問題 77
10.5 服務的Dispose 80
10.6 更換容器 81
第11章 日誌 82
11.1 內置日誌的使用 82
11.2 使用NLog將日誌輸出到檔案 83
11.3 注意事項 84
11.4 NLog配置簡要說明 85
第12章 套用的配置 86
12.1 常見的配置方式 86
12.1.1 檔案方式 86
12.1.2 目錄和檔案 89
12.1.3 命令行 89
12.1.4 環境變數 90
12.1.5 記憶體對象 91
12.2 內部處理機制解析 92
12.2.1 數據源的註冊 92
12.2.2 數據源的載入 99
12.2.3 配置的讀取 101
12.2.4 配置的更新 106
12.2.5 配置的綁定 106
第13章 配置的Options模式 108
13.1 Options的使用 108
13.1.1 簡單的不為Option命名的方式 108
13.1.2 為Option命名的方式 109
13.1.3 Option的自動更新與生命周期 110
13.1.4 數據更新提醒 111
13.1.5 其他配置方式 112
13.2 內部處理機制解析 113
13.2.1 系統啟動階段的依賴注入 113
13.2.2 Options值的獲取 116
第14章 請求處理管道 121
14.1 概述 121
14.2 請求在管道中的處理流程 122
14.2.1 簡單的中間件例子 122
14.2.2 請求是如何經過各箇中間件的 122
14.3 管道的構建 124
14.4 中間件的其他定義方式 127
14.5 Use、Run和Map 128
14.5.1 Use和Run 128
14.5.2 Map 129
14.5.3 MapWhen 130
14.5.4 UseWhen 130
14.6 IStartupFilter 131
第15章 靜態檔案訪問與授權 133
15.1 靜態資料夾 133
15.2 中間件的實現機制 134
15.3 新增靜態檔案目錄 135
15.4 靜態檔案的授權管理 135
第16章 路由 137
16.1 概述 137
16.2 傳統路由配置 138
16.3 屬性路由設定 139
16.4 路由的匹配順序 142
16.5 路由的約束 144
16.5.1 Constraints參數方式 144
16.5.2 行內簡寫方式 145
16.5.3 使用正則表達式 145
16.5.4 自定義約束 146
16.6 路由的dataTokens 147
16.7 路由的初始化源碼解析 148
16.7.1 UseRouting方法 148
16.7.2 UseEndpoints方法 149
16.8 路由的請求處理源碼分析 152
16.8.1 EndpointRoutingMiddleware 152
16.8.2 Endpoint的生成與匹配示例 159
16.8.3 EndpointMiddleware 161
16.9 Endpoint模式的路由方案的優點 161
第17章 Action的執行 163
17.1 概述 163
17.2 invoker的生成 163
17.3 invoker的執行 171
第18章 Action參數的模型綁定 177
18.1 概述 177
18.2 準備階段 178
18.2.1 創建綁定方法 178
18.2.2 為每個參數匹配Binder 179
18.3 執行階段 183
18.4 相關知識 186
18.4.1 propertyBindingInfo 187
18.4.2 JsonPatch 187
第19章 Filter詳解 188
19.1 概述 188
19.2 Filter的簡單例子 189
19.3 Filter的用法詳解 190
19.3.1 單例驗證 191
19.3.2 通過Attribute方式定義與註冊 191
19.3.3 支持繼承方式註冊 192
19.3.4 多功能Filter 193
19.3.5 Filter的同步與異步 194
19.3.6 繼承內置FilterAttribute 195
19.4 Filter的獲取 197
19.5 Filter的執行 200
19.6 Filter的執行順序 212
第20章 控制返回類型 215
20.1 常見的返回類型 215
20.1.1 返回類型 215
20.1.2 異步方法 217
20.2 內部處理機制解析 218
20.2.1 總體流程 218
20.2.2 ActionMethodExecutor的選擇與執行 219
20.2.3 Result Filter的執行 223
20.2.4 IActionResult的執行 225
20.2.5 ObjectResult的執行與返回格式的協商 227
20.3 自定義IActionResult 237
20.4 自定義格式化類 240
20.5 添加XML類型支持 242
第21章 一個API與小程式的項目 244
21.1 前期準備 244
21.1.1 伺服器環境搭建 245
21.1.2 安裝MongoDB資料庫 245
21.1.3 微信小程式註冊 246
21.2 API項目的基本功能 248
21.2.1 項目創建 248
21.2.2 操作MongoDB資料庫 248
21.2.3 Model定義 252
21.2.4 Service接口及實現 254
21.2.5 Repository接口及實現 255
21.2.6 Controller與Action 257
21.2.7 AutoMapper的使用 258
21.3 套用JWT進行用戶認證 259
21.3.1 JWT的組成 260
21.3.2 認證流程 261
21.3.3 用戶登錄與Token的發放 262
21.4 自定義用戶授權 272
21.4.1 樣例數據 272
21.4.2 自定義授權處理 274
21.5 使用Swagger生成Web API的幫助頁 276
21.6 微信小程式 277
21.6.1 歡迎頁 278
21.6.2 列表頁 282
21.6.3 圖表頁 285

作者簡介

羅志超,具有十餘年的軟體研發經驗,先後在多家公司擔任研發及項目經理。擅長.NET技術,對前端技術及iOS有一定的了解。2013年通過項目管理專業人員資質認證(PMP),現階段所研究的項目主要採用.NET Core的相關技術棧。個人喜歡學習新技術,熱衷於技術分享,希望能為.NET社區的發展盡一份綿薄之力。

熱門詞條

聯絡我們