作 者:羅志超 著
定 價:69
出 版 社:人民郵電出版社
出版日期:2020年10月01日
頁 數:304
裝 幀:平裝
ISBN:9787115540485
基於ASP.NET Core 3,從使用的角度展開講解。如“真機拆解”般分析ASP.NET Core內部運行機制。融合作者多年技術經驗和獨到見解,通俗易懂不枯燥。輔以豐富的實際案例和代碼,加深理解,活學活用。
●第1章 ASP.NET Core介紹 1
1.1為什麼要使用ASP.NET Core1
1.2如何跨平臺1
第2章開發環境準備4
2.1概述4
2.2Windows環境下Visual Studio的安裝4
2.3macOS環境下Visual Studio的安裝5
第3章項目結構6
3.1新建項目6
3.2項目結構詳解7
3.2.1launchSettings.json7
3.2.2wwwroot9
3.2.3框架9
3.2.4_Layout.cshtml11
3.2.5_ValidationScriptsPartial.cshtml11
3.2.6_ViewImports.cshtml12
3.2.7_ViewStart.cshtml13
3.2.8appsettings.json和appsettings.Development.json14
3.2.9Program.cs14
3.2.10Startup.cs15
第4章_Layout與_ViewStart17
4.1_Layout的應用17
4.2_ViewStart的應用20
4.3頁面的加載順序20
第5章TagHelper22
5.1概述22
5.2自定義TagHelper24
5.3TagHelper的注冊25
5.4TagHelper的作用範圍25
5.5自定義標簽27
5.6TagHelper與頁面之間的數據傳遞28
5.7取消標簽輸出29
5.8TagBuilder29
第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安裝Nginx34
6.7SSL免費證書申請34
6.8多網站及證書配置36
6.9啟用ForwardedHeaders中間件38
6.10獨立部署(SCD)39
第7章架構概覽40
7.1ASP.NET Core的運行機制40
7.2ASP.NET Core Application的架構41
7.3對HTTP/2的支持41
7.3.1Kestrel41
7.3.2IIS(進程內)41
7.4ASP.NET Core的環境變量42
第8章應用啟動43
8.1概述43
8.2HostBuilder的創建與配置45
8.2.1Host的創建者HostBuilder45
8.2.2GenericWebHostBuilder50
8.2.3處理Startup文件53
8.3Host的構建57
8.4Host的啟動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.3ASP.NET Core的依賴注入74
10.3.1IServiceCollection75
10.3.2ServiceDescriptor76
10.3.3IServiceProvider76
10.3.4IServiceScope77
10.4實例獲取方法及需要注意的問題77
10.5服務的Dispose80
10.6更換容器81
第11章日志82
11.1內置日志的使用82
11.2使用NLog將日志輸出到文件83
11.3注意事項84
11.4NLog配置簡要說明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.1Options的使用108
13.1.1簡單的不為Option命名的方式108
13.1.2為Option命名的方式109
13.1.3Option的自動更新與生命周期110
13.1.4數據更新提醒111
13.1.5其他配置方式112
13.2內部處理機制解析113
13.2.1繫統啟動階段的依賴注入113
13.2.2Options值的獲取116
第14章請求處理管道121
14.1概述121
14.2請求在管道中的處理流程122
14.2.1簡單的中間件例子122
14.2.2請求是如何經過各個中間件的122
14.3管道的構建124
14.4中間件的其他定義方式127
14.5Use、Run和Map128
14.5.1Use和Run128
14.5.2Map129
14.5.3MapWhen130
14.5.4UseWhen130
14.6IStartupFilter131
第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.1Constraints參數方式144
16.5.2行內簡寫方式145
16.5.3使用正則表達式145
16.5.4自定義約束146
16.6路由的dataTokens147
16.7路由的初始化源碼解析148
16.7.1UseRouting方法148
16.7.2UseEndpoints方法149
16.8路由的請求處理源碼分析152
16.8.1EndpointRoutingMiddleware152
16.8.2Endpoint的生成與匹配示例159
16.8.3EndpointMiddleware161
16.9Endpoint模式的路由方案的優點161
第17章Action的執行163
17.1概述163
17.2invoker的生成163
17.3invoker的執行171
第18章Action參數的模型綁定177
18.1概述177
18.2準備階段178
18.2.1創建綁定方法178
18.2.2為每個參數匹配Binder179
18.3執行階段183
18.4相關知識186
18.4.1propertyBindingInfo187
18.4.2JsonPatch187
第19章Filter詳解188
19.1概述188
19.2Filter的簡單例子189
19.3Filter的用法詳解190
19.3.1單例驗證191
19.3.2通過Attribute方式定義與注冊191
19.3.3支持繼承方式注冊192
19.3.4多功能Filter193
19.3.5Filter的同步與異步194
19.3.6繼承內置FilterAttribute195
19.4Filter的獲取197
19.5Filter的執行200
19.6Filter的執行順序212
第20章控制返回類型215
20.1常見的返回類型215
20.1.1返回類型215
20.1.2異步方法217
20.2內部處理機制解析218
20.2.1總體流程218
20.2.2ActionMethodExecutor的選擇與執行219
20.2.3Result Filter的執行223
20.2.4IActionResult的執行225
20.2.5ObjectResult的執行與返回格式的協商227
20.3自定義IActionResult237
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.2API項目的基本功能248
21.2.1項目創建248
21.2.2操作MongoDB數據庫248
21.2.3Model定義252
21.2.4Service接口及實現254
21.2.5Repository接口及實現255
21.2.6Controller與Action257
21.2.7AutoMapper的使用258
21.3應用JWT進行用戶認證259
21.3.1JWT的組成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
對於讀者來說,學習ASP.NET Core就像學習使用一部新手機。手機內部組成結構可能有改變器件的性能可能有器件之間的兼容性可能更好。但在操作方式上,用戶除了要學習如何使用個別的新功能以及適應繫統更快的反應速度外,並沒有太多改變。
基於以上,本書內容主要分為三部分。第一部分是ASP.NET Core的使用說明,簡要介紹如何使用ASP.NET Core創建項目及其與ASP.NET 4.x的不同點;第二部分是真機拆解,講解ASP.NET Core框架的內部運行邏輯;第三部分是通過一個項目案例回顧全書知識點,並介紹如何在ASP.NET Core中對用戶進行認證和授權。
羅志超 著
羅志超,具有十餘年的軟件研發經驗,先後在多家公司擔任研發及項目經理。擅長.NET技術,對前端技術及iOS有一定的了解。2013年通過項目管理專業人員資質認證(PMP),現階段所研究的項目主要采用.NET Core的相關技術棧。個人喜歡學習新技術,熱衷於技術分享,希望能為.NET社區的發展盡一份綿薄之力。