ASP.NET Core 3從入門到實(shí)戰(zhàn)
定 價(jià):79 元
- 作者:校寶在線 肖偉宇 翁琳鼎 王斌 厲紅兵
- 出版時(shí)間:2021/1/1
- ISBN:9787111669845
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:ASP.NET CORE
- 頁(yè)碼:284
- 紙張:
- 版次:
- 開(kāi)本:16開(kāi)
在Web應(yīng)用研發(fā)領(lǐng)域容器編排、微服務(wù)、服務(wù)網(wǎng)格等先進(jìn)架構(gòu)已大行其道的今天,本書作為ASP.NET Core的入門教程,可以讓廣大開(kāi)發(fā)人員在自己的技能列表里添加上這個(gè)關(guān)鍵項(xiàng)。本書從ASP.NET Core的核心組件入手,延伸到MVC、WebAPI、SignalR(實(shí)時(shí)通信應(yīng)用)、Blazor(wasm應(yīng)用)、機(jī)器學(xué)習(xí)等多種應(yīng)用開(kāi)發(fā),全方位地講解ASP.NET Core的應(yīng)用場(chǎng)景、開(kāi)發(fā)實(shí)踐和部署發(fā)布,帶領(lǐng)讀者學(xué)習(xí)從開(kāi)發(fā)到發(fā)布基于ASP.NET Core項(xiàng)目的全過(guò)程。
本書主要針對(duì)的是對(duì)C#語(yǔ)法和Web開(kāi)發(fā)有一定了解、期望使用C#語(yǔ)言開(kāi)發(fā)Web項(xiàng)目的初學(xué)者,也可以是具有ASP.NET MVC開(kāi)發(fā)經(jīng)驗(yàn)、希望通過(guò)ASP.NET Core提升跨平臺(tái)和容器化開(kāi)發(fā)能力的開(kāi)發(fā)者。
前言
第1章 為什么選擇ASP.NET Core1
1.1 什么是.NET1
1.2 ASP.NET Core的特點(diǎn)3
1.3 讀者能從本書學(xué)到什么4
第2章 ASP.NET Core開(kāi)發(fā)工具安裝6
2.1 .NET Core SDK安裝6
2.1.1 獲取.NET Core SDK6
2.1.2 安裝.NET Core SDK7
2.2 Visual Studio Code安裝7
2.2.1 獲取Visual Studio Code8
2.2.2 安裝Visual Studio Code8
2.2.3 更新Visual Studio Code10
2.3 Visual Studio 2019安裝10
2.3.1 確保計(jì)算機(jī)可以安裝Visual Studio10
2.3.2 獲取 Visual Studio11
2.3.3 安裝Visual Studio安裝程序11
2.3.4 啟動(dòng)安裝程序12
第3章 ASP.NET Core核心組件詳解13
3.1 框架總述13
3.2 依賴注入14
3.2.1 什么是依賴注入14
3.2.2 依賴注入組件15
3.2.3 服務(wù)描述類ServiceDescriptor16
3.2.4 IServiceCollection與服務(wù)注冊(cè)18
3.2.5 通過(guò)IServiceProvider獲取服務(wù)實(shí)例20
3.2.6 作用域與生命周期22
3.2.7 IDisposable與生命周期25
3.2.8 擴(kuò)展接口IServiceProviderFactory25
3.2.9 在Controller中獲取服務(wù)28
3.3 配置組件29
3.3.1 配置組件的構(gòu)造過(guò)程29
3.3.2 內(nèi)存配置提供程序32
3.3.3 命令行配置提供程序32
3.3.4 環(huán)境變量配置提供程序34
3.3.5 文件配置提供程序35
3.3.6 Key-per-file配置提供程序37
3.3.7 使用IConfiguration讀取配置38
3.3.8 使用強(qiáng)類型接收配置40
3.4 選項(xiàng)組件42
3.4.1 選項(xiàng)的注入與使用42
3.4.2 使用命名選項(xiàng)44
3.4.3 驗(yàn)證選項(xiàng)46
3.4.4 選項(xiàng)后期配置47
3.5 中間件48
3.5.1 注冊(cè)中間件49
3.5.2 常用的內(nèi)置中間件51
3.6 路由與終結(jié)點(diǎn)52
3.6.1 注冊(cè)終結(jié)點(diǎn)53
3.6.2 路由模板54
3.6.3 特性路由55
3.6.4 路由約束56
3.6.5 生成鏈接57
第4章 基于MVC設(shè)計(jì)模式的Web應(yīng)用59
4.1 創(chuàng)建第一個(gè)ASP.NET Core MVC項(xiàng)目59
4.2 什么是MVC模式63
4.3 視圖64
4.3.1 使用視圖的好處65
4.3.2 創(chuàng)建視圖66
4.3.3 利用控制器指定視圖66
4.3.4 視圖發(fā)現(xiàn)67
4.3.5 向視圖傳遞數(shù)據(jù)68
4.3.6 動(dòng)態(tài)視圖72
4.4 部分視圖73
4.4.1 何時(shí)使用部分視圖73
4.4.2 聲明部分視圖73
4.4.3 引用部分視圖74
4.4.4 呈現(xiàn)部分視圖75
4.4.5 通過(guò)部分視圖訪問(wèn)數(shù)據(jù)76
4.5 控制器78
4.5.1 什么是控制器78
4.5.2 Action79
4.5.3 橫切關(guān)注點(diǎn)80
4.6 路由80
4.6.1 自定義路由81
4.6.2 混合路由82
4.6.3 動(dòng)態(tài)路由82
4.7 區(qū)域85
4.8 篩選器89
4.8.1 篩選器的工作原理90
4.8.2 實(shí)現(xiàn)91
4.9 模型綁定器95
4.9.1 什么是模型綁定95
4.9.2 目標(biāo)96
4.9.3 源97
4.9.4 不存在模型屬性的源98
4.9.5 類型轉(zhuǎn)換錯(cuò)誤99
4.9.6 復(fù)雜類型99
4.9.7 集合101
4.9.8 字典102
4.9.9 模型綁定路由數(shù)據(jù)和URL字符串參數(shù)的全局行為102
4.9.10 特殊數(shù)據(jù)類型103
4.9.11 輸入格式化程序103
4.9.12 從模型綁定中排除指定類型105
4.9.13 手動(dòng)模型綁定106
第5章 基于ASP.NET Core的Web API107
5.1 創(chuàng)建ASP.NET Core的Web API項(xiàng)目107
5.2 帶有Swagger的Web API幫助頁(yè)111
5.2.1 Swashbuckle.AspNetCore111
5.2.2 Swagger規(guī)范112
5.2.3 Swagger UI113
5.3 ASP.NET Core Web API中控制器的返回類型114
5.3.1 特定類型114
5.3.2 IActionResult 類型115
5.3.3 ActionResult 類型117
5.4 Web API約定118
5.4.1 應(yīng)用Web API約定119
5.4.2 創(chuàng)建Web API約定120
第6章 ASP.NET Core中的數(shù)據(jù)庫(kù)訪問(wèn)122
6.1 Entity Framework Core122
6.2 安裝并運(yùn)行MySQL123
6.2.1 啟動(dòng)MySQL125
6.2.2 創(chuàng)建數(shù)據(jù)庫(kù)125
6.3 數(shù)據(jù)庫(kù)訪問(wèn)126
6.3.1 添加數(shù)據(jù)庫(kù)上下文126
6.3.2 創(chuàng)建控制器127
6.4 .NET Core Dapper128
第7章 安全與身份認(rèn)證129
7.1 身份認(rèn)證129
7.1.1 身份認(rèn)證處理程序130
7.1.2 身份認(rèn)證方案130
7.1.3 身份認(rèn)證服務(wù)130
7.1.4 身份認(rèn)證中間件131
7.1.5 添加基于策略的身份認(rèn)證方案132
7.1.6 用戶信息模型133
7.1.7 添加自定義身份認(rèn)證處理程序133
7.2 授權(quán)135
7.2.1 簡(jiǎn)單授權(quán)135
7.2.2 基于角色的授權(quán)136
7.2.3 基于策略的授權(quán)137
7.2.4 授權(quán)中間件137
7.2.5 授權(quán)處理程序138
7.2.6 自定義授權(quán)處理程序139
7.3 集成IdentityServer4139
7.4 數(shù)據(jù)保護(hù)141
7.4.1 數(shù)據(jù)保護(hù)入門142
7.4.2 用戶機(jī)密管理143
7.4.3 小結(jié)143
7.5 強(qiáng)制HTTPS143
7.5.1 RequireHttpsAttribute144
7.5.2 HTTPS重定向中間件144
7.5.3 HTTP嚴(yán)格傳輸安全協(xié)議145
7.6 防跨站請(qǐng)求偽造145
7.6.1 什么是跨站請(qǐng)求偽造146
7.6.2 同步令牌模式146
7.7 防開(kāi)放重定向攻擊147
7.8 防跨站腳本148
7.8.1 防范跨站腳本攻擊149
7.8.2 使用Razor的HTML編碼149
7.8.3 使用Razor的JavaScript編碼149
7.8.4 小結(jié)150
7.9 跨域請(qǐng)求150
7.9.1 跨域資源共享150
7.9.2 啟用CORS中間件150
7.9.3 配置需要CORS的資源路徑152
7.9.4 小結(jié)152
第8章 基于SignalR開(kāi)發(fā)實(shí)時(shí)通信應(yīng)用153
8.1 基于SignalR的實(shí)時(shí)通信153
8.1.1 數(shù)據(jù)交互傳輸153
8.1.2 Hub中心154
8.2 服務(wù)端實(shí)現(xiàn)155
8.2.1 創(chuàng)建和使用Hub155
8.2.2 啟用SignalR155
8.2.3 上下文對(duì)象Context156
8.2.4 Clients對(duì)象156
8.2.5 向客戶端發(fā)送消息157
8.2.6 處理連接事件158
8.2.7 用戶和組158
8.2.8 服務(wù)的可擴(kuò)展實(shí)現(xiàn)159
8.3 客戶端實(shí)現(xiàn)160
8.3.1 創(chuàng)建connection對(duì)象160
8.3.2 使用on添加客戶端方法160
8.3.3 使用start開(kāi)始連接服務(wù)端160
8.3.4 使用invoke調(diào)用服務(wù)端方法161
8.3.5 自動(dòng)連接161
8.3.6 手動(dòng)重連163
第9章 基于Blazor的Web客戶端技術(shù)164
9.1 Blazor的應(yīng)用模型165
9.2 創(chuàng)建項(xiàng)目166
9.3 頁(yè)面路由169
9.4 數(shù)據(jù)綁定171
9.5 組件172
9.5.1 模板化組件172
9.5.2 組件庫(kù)174
9.6 狀態(tài)管理176
第10章 日志與監(jiān)控181
10.1 日志組件181
10.1.1 日志類別183
10.1.2 日志級(jí)別184
10.1.3 日志對(duì)象與依賴注入185
10.1.4 事件ID186
10.1.5 使用日志模板187
10.1.6 日志作用域188
10.1.7 篩選日志輸出192
10.2 健康檢查組件193
10.2.1 注冊(cè)健康檢查194
10.2.2 配置健康檢查終結(jié)點(diǎn)196
10.2.3 自定義健康檢查項(xiàng)198
10.2.4 檢查結(jié)果發(fā)布器199
第11章 遠(yuǎn)程調(diào)用201
11.1 使用HttpClient調(diào)用遠(yuǎn)程API201
11.1.1 構(gòu)造HttpClient201
11.1.2 發(fā)出請(qǐng)求203
11.1.3 設(shè)置代理204
11.1.4 處理Cookie204
11.2 使用HttpClientFactory機(jī)制管理HttpClient205
11.2.1 注冊(cè)并使用HttpClientFactory205
11.2.2 使用命名客戶端207
11.2.3 使用類型化客戶端208
11.2.4 使用ConfigureHttpClient209
11.2.5 使用ConfigurePrimaryHttpMessageHandler210
11.2.6 理解生命周期211
11.2.7 HTTP請(qǐng)求管道212
11.2.8 使用ConfigureHttpMessageHandlerBuilder213
11.2.9 關(guān)于請(qǐng)求日志214
11.3 使用gRPC實(shí)現(xiàn)高性能遠(yuǎn)程調(diào)用215
11.3.1 定義接口描述216
11.3.2 配置服務(wù)端217
11.3.3 配置客戶端219
11.3.4 使用dotnet-grpc命令行工具管理 .proto 文件引用220
第12章 部署ASP.NET Core應(yīng)用222
12.1 部署到IIS中222
12.1.1 概述222
12.1.2 下載和安裝ASP.NET Core模塊223
12.1.3 部署到IIS 站點(diǎn)224
12.2 部署為Windows Service227
12.2.1 配置應(yīng)用227
12.2.2 安裝和運(yùn)行服務(wù)228
12.3 部署到Linux中228
12.3.1 安裝.NET運(yùn)行時(shí)228
12.3.2 部署應(yīng)用229
12.3.3 反向代理230
12.4 部署到Docker中231
12.4.1 Docker簡(jiǎn)介231
12.4.2 Docker術(shù)語(yǔ)231
12.4.3 生成和制作Dockerfile232
12.4.4 生成鏡像233
12.4.5 部署鏡像234
12.5 高可用架構(gòu)234
12.5.1 概述234
12.5.2 應(yīng)用本身的高可用保障235
第13章 ASP.NET Core高級(jí)內(nèi)容236
13.1 文件提供程序236
13.1.1 訪問(wèn)本地物理文件系統(tǒng)237
13.1.2 監(jiān)視文件的變化237
13.2 請(qǐng)求功能接口238
13.3 URL重寫239
13.3.1 重寫規(guī)則239
13.3.2 IRule接口241
13.3.3 小結(jié)242
13.4 緩存242
13.4.1 緩存標(biāo)記幫助程序242
13.4.2 內(nèi)存緩存和分布式緩存243
第14章 結(jié)合ML.NET實(shí)現(xiàn)機(jī)器學(xué)習(xí)應(yīng)用245
14.1 機(jī)器學(xué)習(xí)簡(jiǎn)介245
14.1.1 什么是機(jī)器學(xué)習(xí)245
14.1.2 機(jī)器學(xué)習(xí)的作用246
14.1.3 機(jī)器學(xué)習(xí)的分類247
14.1.4 機(jī)器學(xué)習(xí)的典型步驟247
14.2 ML.NET 簡(jiǎn)介248
14.3 ML.NET特色功能249
14.4 ML.NET開(kāi)發(fā)環(huán)境搭建252
14.4.1 安裝ML.NET庫(kù)252
14.4.2 安裝Microsoft.ML.TimeSeries與Microsoft.ML.AutoML253
14.4.3 安裝ML.NET模型生成器254
14.4.4 安裝ML.NET命令行接口工具254
14.5 ML.NET快速上手255
14.5.1 構(gòu)建模型階段256
14.5.2 使用模型階段256
14.6 ML.NET與ONNX實(shí)踐259
14.6.1 準(zhǔn)備事項(xiàng)260
14.6.2 創(chuàng)建控制臺(tái)應(yīng)用程序260
14.6.3 準(zhǔn)備數(shù)據(jù)和預(yù)訓(xùn)練的模型260
14.6.4 定義輸入和輸出數(shù)據(jù)結(jié)構(gòu)261
14.6.5 定義評(píng)分預(yù)測(cè)類261
14.6.6 使用模型進(jìn)行分析和輸出266
第15章 更多的學(xué)習(xí)途徑270
15.1 .NET Core的學(xué)習(xí)途徑270
15.2 其他需要關(guān)注的技術(shù)271