《ASP.NET Core+Vue.js全棧開發訓練營》是2024年清華大學出版社出版的圖書,作者是南榮相如。
基本介紹
- 中文名:ASP.NET Core+Vue.js全棧開發訓練營
- 作者:南榮相如
- 出版時間:2024年1月1日
- 出版社:清華大學出版社
- ISBN:9787302651031
- 定價:99 元
內容簡介,圖書目錄,
內容簡介
《ASP.NET Core+Vue.js全棧開發訓練營》旨在為讀者提供一個全面、實用的學習資源,以掌握使用ASP.NET Core 7和Vue.js 3構建功能豐富、高效的Web應用程式的技能。本書分為3部分。第1部分(第1~9章)主要介紹ASP.NET Core的相關內容,包括基礎知識、數據訪問、遠程過程調用、實時通信、安全、性能、測試和部署,這些是構建強大Web應用程式的必要知識。第2部分(第10~17章)主要介紹Vue.js 3的相關內容,包括基礎知識、組件開發、路由、狀態管理、與伺服器通信、測試和調試以及部署;Vue.js 3是一種流行的前端框架,能夠構建互動性強大的用戶界面。第3部分(第18~20章)是結合ASP.NET Core和Vue.js 3,創建實際的Web應用程式案例,包括部落格網站、通用許可權系統和ERP系統。
圖書目錄
目 錄
第1章 概覽 1
1.1 ASP.NET Core簡介 1
1.1.1 為什麼選擇ASP.NET Core 1
1.1.2 ASP.NET Core的核心特性 1
1.1.3 ASP.NET Core的架構 2
1.1.4 ASP.NET Core的套用場景 2
1.2 ASP.NET Core的演變歷程 3
1.2.1 早期的ASP.NET框架 3
1.2.2 ASP.NET Core的誕生 3
1.2.3 遷移到ASP.NET Core 4
1.3 安裝和配置開發環境 4
1.3.1 安裝.NET Core SDK 4
1.3.2 選擇開發工具 6
1.3.3 創建ASP.NET Core項目 6
1.3.4 運行和調試應用程式 7
1.4 小結 7
第2章 基礎知識 8
2.1 Razor Pages介紹 8
2.1.1 什麼是Razor Pages 8
2.1.2 Razor Pages和MVC 8
2.1.3 創建一個Razor Page 9
2.2 MVC介紹 10
2.2.1 什麼是MVC模式 10
2.2.2 MVC模式的工作流程 11
2.2.3 在ASP.NET Core中使用MVC 11
2.3 Web API介紹 12
2.3.1 什麼是Web API 13
2.3.2 RESTful API 13
2.3.3 創建一個Web API 13
2.3.4 使用其他HTTP方法 14
2.4 套用啟動 15
2.4.1 配置應用程式的啟動類 15
2.4.2 啟動應用程式 16
2.5 依賴關係注入 17
2.5.1 什麼是依賴關係注入 17
2.5.2 在ASP.NET Core中使用依賴關係注入 18
2.5.3 生命周期管理 19
2.6 中間件 20
2.6.1 什麼是中間件 20
2.6.2 中間件的工作原理 20
2.6.3 創建自定義中間件 20
2.6.4 內置中間件 21
2.7 Web主機 22
2.7.1 什麼是Web主機 22
2.7.2 配置Web主機選項 23
2.7.3 運行Web主機 23
2.8 HTTP伺服器 23
2.8.1 什麼是HTTP伺服器 23
2.8.2 Kestrel HTTP伺服器 24
2.8.3 其他HTTP伺服器 24
2.9 配置 24
2.9.1 什麼是配置 24
2.9.2 配置源 25
2.9.3 讀取配置數據 25
2.9.4 配置檔案 25
2.10 選項模式 26
2.10.1 為什麼需要選項模式 26
2.10.2 如何使用選項模式 27
2.10.3 選項驗證和默認值 28
2.11 執行環境 29
2.11.1 什麼是執行環境 29
2.11.2 執行環境的類型 29
2.11.3 訪問執行環境信息 29
2.11.4 配置執行環境 30
2.12 日誌記錄 30
2.12.1 為什麼需要日誌記錄 31
2.12.2 ASP.NET Core的日誌記錄 31
2.12.3 配置日誌記錄 32
2.12.4 日誌記錄最佳實踐 32
2.13 路由 32
2.13.1 什麼是路由 33
2.13.2 路由模板 33
2.13.3 路由參數 33
2.13.4 路由約束 34
2.13.5 路由屬性 34
2.14 錯誤處理 35
2.14.1 為什麼需要錯誤處理 35
2.14.2 全局錯誤處理 35
2.14.3 異常篩選器 35
2.14.4 狀態碼和錯誤頁面 36
2.15 靜態檔案 37
2.15.1 配置靜態檔案中間件 37
2.15.2 創建靜態檔案 37
2.15.3 訪問靜態檔案 38
2.16 小結 38
第3章 數據訪問 39
3.1 EF Core 7.0簡介 39
3.1.1 為什麼選擇EF Core 39
3.1.2 EF Core的基本概念 40
3.1.3 使用EF Core進行數據訪問 40
3.2 DbContext 41
3.2.1 什麼是DbContext 41
3.2.2 創建自定義的DbContext 42
3.2.3 使用DbContext進行數據訪問 42
3.2.4 ASP.NET Core依賴關係注入中的DbContext 43
3.3 模型 43
3.3.1 什麼是模型 43
3.3.2 創建模型 43
3.3.3 配置實體屬性 44
3.4 管理資料庫架構 45
3.4.1 創建資料庫 45
3.4.2 處理資料庫遷移 46
3.5 查詢數據 46
3.5.1 LINQ查詢 47
3.5.2 進階查詢 47
3.6 保存數據 48
3.6.1 插入數據 49
3.6.2 更新數據 49
3.6.3 刪除數據 49
3.6.4 事務管理 50
3.7 更改跟蹤 51
3.7.1 什麼是更改跟蹤 51
3.7.2 更改狀態 51
3.7.3 更改檢測 51
3.7.4 顯式更改狀態 52
3.7.5 取消更改 52
3.8 小結 53
第4章 遠程過程調用 54
4.1 gRPC簡介 54
4.1.1 什麼是gRPC 54
4.1.2 gRPC的優勢 54
4.1.3 與HTTP API的功能進行比較 55
4.2 使用gRPC 55
4.2.1 定義服務接口和訊息類型 55
4.2.2 創建gRPC服務端 56
4.2.3 構建gRPC客戶端 57
4.2.4 gRPC通信的傳輸安全性協定 57
4.2.5 gRPC的其他功能 57
4.3 小結 57
第5章 實時通信 59
5.1 SignalR 59
5.1.1 什麼是SignalR 59
5.1.2 SignalR的優勢 59
5.1.3 使用SignalR 60
5.1.4 SignalR的其他功能 61
5.2 WebSockets 61
5.2.1 什麼是WebSockets 61
5.2.2 WebSockets的優勢 62
5.2.3 使用WebSockets 62
5.2.4 其他WebSockets庫和框架 64
5.3 Server-Sent Events 64
5.3.1 什麼是Server-Sent Events 64
5.3.2 Server-Sent Events的優勢 64
5.3.3 使用Server-Sent Events 65
5.3.4 Server-Sent Events的其他功能 66
5.4 長輪詢 66
5.4.1 什麼是長輪詢 66
5.4.2 長輪詢的工作原理 66
5.4.3 使用長輪詢 67
5.4.4 長輪詢的注意事項 69
5.5 小結 69
第6章 程式安全 70
6.1 身份驗證 70
6.1.1 為什麼身份驗證很重要 70
6.1.2 常見的身份驗證方法 70
6.1.3 在應用程式中實現身份驗證 71
6.2 授權 72
6.2.1 什麼是授權 73
6.2.2 常見的授權策略 73
6.2.3 在應用程式中實現授權 73
6.2.4 授權與身份驗證的區別 74
6.3 數據保護 74
6.3.1 數據加密 74
6.3.2 敏感數據的保護措施 74
6.3.3 使用ASP.NET Core進行數據加密 75
6.4 HTTPS 76
6.4.1 什麼是HTTPS 76
6.4.2 HTTPS的工作原理 76
6.4.3 在ASP.NET Core中使用HTTPS 76
6.4.4 使用HTTPS的好處 77
6.5 機密管理 77
6.5.1 為什麼需要機密管理 77
6.5.2 機密管理的最佳實踐 77
6.5.3 使用ASP.NET Core中的機密管理工具 78
6.6 XSRF/CSRF防護 78
6.6.1 什麼是XSRF/CSRF攻擊 79
6.6.2 如何防範XSRF/CSRF攻擊 79
6.6.3 使用Anti-Forgery Token防範XSRF/CSRF攻擊 79
6.7 跨域資源共享 80
6.7.1 什麼是跨域資源共享 80
6.7.2 如何配置CORS 80
6.7.3 使用CORS允許跨域請求 81
6.8 跨站點腳本攻擊 81
6.8.1 什麼是跨站點腳本攻擊 82
6.8.2 如何防範跨站點腳本攻擊 82
6.8.3 使用輸入驗證和輸出編碼防範XSS攻擊 82
6.9 小結 83
第7章 性能最佳化 84
7.1 快取 84
7.1.1 為什麼使用快取 84
7.1.2 ASP.NET Core中的快取支持 84
7.1.3 使用快取的最佳實踐 87
7.2 異步編程和並行處理 87
7.2.1 異步編程 88
7.2.2 並行處理 88
7.2.3 異步編程和並行處理的結合套用 90
7.3 記憶體管理和垃圾回收 91
7.3.1 記憶體管理的基本原理 91
7.3.2 垃圾回收 92
7.3.3 在ASP.NET Core中的記憶體最佳化 93
7.4 回響壓縮 94
7.4.1 壓縮原理 94
7.4.2 在ASP.NET Core中啟用回響壓縮 94
7.4.3 回響壓縮的性能考慮 95
7.5 性能測試和調優工具 95
7.5.1 性能測試工具 95
7.5.2 調優工具 96
7.5.3 ASP.NET Core性能調優 96
7.6 小結 97
第8章 測試和質量保證 98
8.1 單元測試和集成測試 98
8.1.1 單元測試 98
8.1.2 集成測試 99
8.2 UI測試和自動化測試 100
8.2.1 UI測試的重要性 100
8.2.2 UI測試框架和工具 100
8.2.3 自動化測試 102
8.3 性能測試和壓力測試 102
8.3.1 性能測試的重要性 102
8.3.2 壓力測試的重要性 103
8.3.3 性能測試工具和技術 103
8.4 代碼覆蓋率和質量保證工具 103
8.4.1 代碼覆蓋率的重要性 104
8.4.2 質量保證工具 104
8.5 小結 105
第9章 託管和部署 107
9.1 部署選項和最佳實踐 107
9.1.1 部署選項 107
9.1.2 部署最佳實踐 108
9.2 容器化應用程式 109
9.2.1 容器化的概念 109
9.2.2 容器化的優勢 109
9.2.3 容器化工具 110
9.3 高可用性和負載均衡 111
9.3.1 高可用性的概念 111
9.3.2 負載均衡的概念 111
9.3.3 高可用性和負載均衡工具 112
9.4 雲託管和自動化部署 112
9.4.1 雲託管的概念 113
9.4.2 雲託管的優勢 113
9.4.3 自動化部署的最佳實踐 113
9.5 小結 114
第10章 Vue 3入門 116
10.1 基本概念和核心特性 116
10.1.1 什麼是Vue 3 116
10.1.2 Vue 3的核心特性 116
10.1.3 組件化開發 117
10.2 安裝和配置 119
10.2.1 安裝Vue 3 119
10.2.2 創建Vue 3實例 120
10.2.3 運行Vue 3套用 121
10.2.4 Vue CLI 121
10.3 組件化開發和單檔案組件的使用 122
10.3.1 什麼是組件化開發 122
10.3.2 單檔案組件的使用 122
10.4 小結 124
第11章 Vue 3基礎知識 126
11.1 聲明式渲染 126
11.1.1 什麼是聲明式渲染 126
11.1.2 使用Vue 3進行聲明式渲染 126
11.2 屬性綁定 127
11.2.1 什麼是屬性綁定 127
11.2.2 使用Vue 3進行屬性綁定 127
11.2.3 動態更新屬性 128
11.3 事件監聽 129
11.3.1 什麼是事件監聽 129
11.3.2 使用Vue 3進行事件監聽 130
11.3.3 傳遞參數 131
11.4 表單綁定 131
11.4.1 什麼是表單綁定 131
11.4.2 使用Vue 3進行表單綁定 132
11.4.3 預設表單元素的初始值 133
11.5 條件渲染 133
11.5.1 什麼是條件渲染 133
11.5.2 使用Vue 3進行條件渲染 134
11.5.3 使用v-else-if進行多條件渲染 135
11.6 列表渲染 135
11.6.1 什麼是列表渲染 135
11.6.2 使用Vue 3進行列表渲染 135
11.6.3 在列表渲染中使用索引 136
11.7 計算屬性 137
11.7.1 什麼是計算屬性 137
11.7.2 使用Vue 3創建計算屬性 137
11.7.3 對比計算屬性和方法 138
11.8 生命周期和模板引用 139
11.8.1 生命周期 139
11.8.2 使用生命周期鉤子函式 140
11.8.3 模板引用 141
11.9 偵聽器 141
11.9.1 什麼是偵聽器 142
11.9.2 使用Vue 3的偵聽器 142
11.9.3 深度偵聽 143
11.10 小結 143
第12章 組件開發 146
12.1 組件生命周期和鉤子函式 146
12.1.1 什麼是組件生命周期 146
12.1.2 組件鉤子函式 146
12.1.3 使用組件鉤子函式 147
12.1.4 在控制台查看輸出 147
12.2 Props 148
12.2.1 什麼是Props 148
12.2.2 如何使用Props 148
12.2.3 Props驗證 149
12.3 組件事件 150
12.3.1 什麼是組件事件 150
12.3.2 在子組件中定義事件 150
12.3.3 在父組件中監聽事件 151
12.3.4 向子組件傳遞參數 151
12.4 組件v-model 152
12.4.1 什麼是組件v-model 152
12.4.2 如何在組件中使用v-model 152
12.5 透傳Attributes 153
12.5.1 什麼是透傳Attributes 153
12.5.2 如何使用透傳Attributes 153
12.5.3 注意事項 155
12.6 插槽 155
12.6.1 什麼是插槽 155
12.6.2 如何使用插槽 155
12.6.3 作用域插槽 156
12.7 依賴注入 157
12.7.1 什麼是依賴注入 157
12.7.2 如何使用依賴注入 157
12.7.3 注意事項 158
12.8 異步組件 159
12.8.1 什麼是異步組件 159
12.8.2 如何使用異步組件 159
12.8.3 注意事項 160
12.9 小結 160
第13章 路由 162
13.1 路由組件Vue Router 162
13.1.1 什麼是路由 162
13.1.2 Vue Router簡介 162
13.1.3 安裝和配置Vue Router 162
13.1.4 創建一個基本路由 163
13.2 動態路由 164
13.2.1 什麼是動態路由 164
13.2.2 在路由中使用動態參數 164
13.2.3 動態路由和組件復用 165
13.3 嵌套路由 165
13.3.1 什麼是嵌套路由 165
13.3.2 在路由中使用嵌套路由 165
13.3.3 使用router-view嵌套子頁面 166
13.4 路由導航 166
13.4.1 使用router-link進行路由導航 167
13.4.2 使用編程式導航 167
13.4.3 路由導航傳參 168
13.5 命名路由 168
13.5.1 為什麼使用命名路由 168
13.5.2 如何使用命名路由 168
13.5.3 使用命名路由進行導航 169
13.6 命名視圖 170
13.6.1 什麼是命名視圖 170
13.6.2 如何使用命名視圖 170
13.6.3 在模板中使用命名視圖 170
13.7 重定向 171
13.7.1 什麼是重定向 171
13.7.2 如何實現重定向 171
13.7.3 使用條件重定向 172
13.8 路由傳參 172
13.8.1 為什麼需要路由傳參 173
13.8.2 路由傳參的兩種方式 173
13.8.3 在組件中獲取路由參數 174
13.9 小結 174
第14章 狀態管理——Pinia 176
14.1 狀態管理庫Pinia 176
14.1.1 什麼是狀態管理 176
14.1.2 為什麼使用Pinia 176
14.1.3 安裝Pinia 177
14.2 Store 177
14.2.1 創建Store 177
14.2.2 使用Store 178
14.2.3 在組件之外使用Store 179
14.3 小結 179
第15章 與伺服器通信——axios 181
15.1 axios的安裝 181
15.2 基本用法 181
15.2.1 傳送GET請求 182
15.2.2 傳送POST請求 182
15.2.3 其他請求方法 183
15.2.4 異步請求 183
15.2.5 請求配置 183
15.3 創建實例 184
15.3.1 為什麼要創建實例 184
15.3.2 創建axios實例 184
15.3.3 使用實例傳送請求 185
15.4 小結 185
第16章 Vue 3程式的測試和調試 187
16.1 編寫單元測試和集成測試 187
16.1.1 為什麼要進行測試 187
16.1.2 單元測試和集成測試的區別 187
16.1.3 編寫單元測試 188
16.1.4 編寫集成測試 189
16.2 使用Vue Test Utils進行組件測試 189
16.2.1 安裝Vue Test Utils 189
16.2.2 編寫組件測試 190
16.2.3 使用斷言進行驗證 191
16.2.4 模擬用戶互動 191
16.3 調試應用程式的技巧和工具 191
16.3.1 使用Vue開發者工具 191
16.3.2 使用Chrome開發者工具 191
16.3.3 添加調試語句 192
16.3.4 使用Vue CLI的調試功能 192
16.3.5 性能分析 192
16.4 性能測試和最佳化建議 193
16.4.1 性能測試工具 193
16.4.2 最佳化建議 193
16.5 小結 194
第17章 Vue 3程式的部署 195
17.1 生產部署 195
17.2 性能最佳化 196
17.3 小結 198
第18章 案例:部落格網站 199
18.1 需求功能說明 199
18.2 實現用戶註冊和登錄 200
18.2.1 註冊功能 201
18.2.2 登錄功能 201
18.2.3 視圖和表單 202
18.2.4 數據驗證 203
18.3 實現部落格列表展示 204
18.3.1 獲取部落格列表 204
18.3.2 創建部落格列表視圖 204
18.3.3 顯示分頁功能 205
18.4 實現部落格詳情查看 207
18.4.1 獲取部落格數據 207
18.4.2 創建部落格詳情視圖 208
18.4.3 錯誤處理 209
18.5 實現發表部落格 209
18.5.1 創建部落格發布頁面 209
18.5.2 處理部落格發布請求 210
18.5.3 數據驗證 211
18.5.4 增加富文本編輯器 211
18.6 實現評論功能 214
18.6.1 創建評論模型 214
18.6.2 創建評論視圖模型 214
18.6.3 創建評論功能 215
18.6.4 顯示評論列表 216
18.7 實現用戶身份管理 217
18.7.1 註冊和登錄 217
18.7.2 用戶角色管理 217
18.7.3 用戶許可權管理 218
18.8 實現部落格分類 219
18.8.1 創建分類模型 219
18.8.2 創建分類管理功能 219
18.8.3 與部落格關聯分類 221
18.9 實現標籤管理 221
18.9.1 創建標籤模型 221
18.9.2 創建標籤管理功能 222
18.9.3 與部落格關聯標籤 223
18.10 實現部落格搜尋 224
18.10.1 創建搜尋功能頁面 224
18.10.2 創建搜尋功能 225
18.10.3 實現部落格搜尋邏輯 226
18.11 實現部落格點讚和收藏 226
18.11.1 實現部落格點讚功能 226
18.11.2 實現部落格收藏功能 227
18.11.3 顯示點讚和收藏數量 227
18.12 小結 228
第19章 案例:通用許可權系統 229
19.1 需求功能說明 229
19.2 實現用戶管理 230
19.2.1 用戶註冊和認證 231
19.2.2 用戶角色分配 232
19.2.3 用戶信息管理 233
19.3 實現許可權定義和分配 234
19.3.1 許可權管理 234
19.3.2 角色管理 235
19.3.3 用戶許可權分配 236
19.4 實現組織架構管理 236
19.4.1 部門管理 236
19.4.2 部門許可權 237
19.4.3 員工管理 237
19.5 實現訪問控制 238
19.5.1 資源訪問控制 238
19.5.2 功能訪問控制 239
19.5.3 數據行級別的訪問控制 239
19.6 實現操作和審計日誌記錄 240
19.6.1 操作日誌 240
19.6.2 審計日誌 240
19.6.3 日誌存儲和可視化 241
19.7 小結 241
第20章 案例:ERP系統 242
20.1 需求功能說明 242
20.1.1 系統概述 242
20.1.2 功能模組詳解 242
20.1.3 定製與配置 245
20.2 實現採購管理 245
20.2.1 供應商管理 245
20.2.2 供應商分析 261
20.2.3 採購需求 261
20.2.4 採購契約 280
20.2.5 採購入庫 300
20.2.6 採購退貨 319
20.2.7 採購報表 338
20.3 小結 338