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