ASP.NET Core 真機拆解

ASP.NET Core 真機拆解

作者: 羅志超
出版社: 人民郵電
出版在: 2020-10-01
ISBN-13: 9787115540485
ISBN-10: 7115540489
裝訂格式: 平裝
總頁數: 288 頁





內容描述


對於讀者來說,學習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社區的發展盡一份綿薄之力。




相關書籍

C#技術與應用開發

作者 塗承勝

2020-10-01

區塊鏈開發實戰:Hyperledger Fabric 關鍵技術與案例分析

作者 馮翔 劉濤 吳壽鶴 周廣益

2020-10-01

Visual Basic 2008 網路程式設計之道

作者 黃嘉輝

2020-10-01