深入淺出 ASP.NET Core( 簡體 字) | |
作者:梁桐銘 | 類別:1. -> 程式設計 -> .NET -> ASP.NET |
出版社:人民郵電出版社 | 3dWoo書號: 53477 詢問書籍請說出此書號! 有庫存 NT售價: 695 元 |
出版日:9/1/2020 | |
頁數:696 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787115541093 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第 一部分
第 1章 編程語言和 .NET的關系 2 1.1 編程語言 2 1.2 編程語言中的C#、 F#和VB.NET 2 1.3 C#與.NET 3 1.4 小結 3 第 2章 .NET平臺 4 2.1 回顧.NET發展歷史 4 2.1.1 .NET Framework 4 2.1.2 .NET Framework與Java 5 2.1.3 .NET的跨平臺之路 5 2.2 Mono神奇的跨平臺解決方案 6 2.3 .NET Standard 6 2.4 .NET Core 7 2.4.1 .NET Core的特點 7 2.4.2 .NET Core 3.1 8 2.5 .NET Core與其他平臺 8 2.5.1 .NET Core與.NET Framework 8 2.5.2 .NET Core與Mono 8 2.5.3 .NET Core與ASP .NET Core 8 2.6 ASP .NET的發展歷程 9 2.7 ASP.NET Core的未來發展 9 2.8 小結 10 第3章 .NET 5的統一整合方案 11 3.1 進化中的.NET 11 3.2 .NET 5 (.NET Core vNext) 12 3.3 .NET Core實現真正的統一開發平臺 13 3.4 小結 14 第4章 創建ASP.NET Core項目 15 4.1 ASP.NET Core 15 4.2 ASP.NET Core的特性 15 4.3 配置計算機的開發環境 17 4.3.1 下載并安裝Visual Studio 2019 17 4.3.2 下載并安裝.NET Core SDK 18 4.4 創建ASP.NET Core Web程序 18 4.5 內置的ASP.NET Core模板說明 20 4.6 小結 21 第5章 ASP.NET Core項目啟動流程 23 5.1 ASP.NET Core項目文件 23 5.2 ASP.NET Core項目的入口 25 5.3 ASP.NET Core中的進程內與進程外托管模型 26 5.3.1 進程內托管 27 5.3.2 Kestrel 28 5.3.3 CLI 28 5.4 ASP.NET Core進程外托管 29 5.5 探討幾個問題 30 5.6 小結 31 第6章 ASP.NET Core中的配置文件 33 6.1 啟動配置信息 33 6.2 通過GUI來設置launchSettings文件 35 6.3 ASP.NET Core appsettings.json文件 36 6.3.1 訪問配置信息 37 6.3.2 appsettings.json 39 6.3.3 用戶機密 39 6.3.4 環境變量 41 6.3.5 命令行參數 41 6.4 ASP.NET Core IConfiguration服務與依賴注入 42 6.5 小結 44 第7章 ASP.NET Core中的中間件及其工作原理 45 7.1 中間件 45 7.2 中間件在ASP.NET Core中的工作原理 47 7.3 配置ASP.NET Core請求處理管道 48 7.4 Configure()代碼解析 49 7.4.1 中間件掌握測試 49 7.4.2 中間件傳遞 50 7.4.3 實踐中間件的工作流程 50 7.5 小結 52 第8章 ASP.NET Core中的靜態文件中間件 54 8.1 添加靜態文件中間件 54 8.2 支持默認文件 55 8.3 自定義默認文件 56 8.4 UseFileServer中間件 56 8.5 小結 57 第9章 ASP.NET Core開發人員異常頁面 58 9.1 UseDeveloperExceptionPage中間件 58 9.2 自定義UseDeveloperExceptionPage中間件 60 9.3 UseDeveloperExceptionPage中間件如何工作 60 9.4 ASP.NET Core中的環境變量配置 61 9.5 配置ASPNETCORE_ENVIRONMENT變量 62 9.6 IWebHostEnvironment服務中的常用方法 64 9.7 小結 65 第二部分 第 10章 詳解ASP.NET Core MVC的設計模式 68 10.1 什么是MVC 68 10.1.1 MVC如何工作 69 10.1.2 Model 70 10.1.3 View 71 10.1.4 Controller 71 10.2 在ASP.NET Core中安裝MVC 73 10.2.1 在ASP.NET Core中配置MVC 73 10.2.2 添加HomeController 74 10.3 AddMvc()和AddMvcCore()的源代碼解析 75 10.4 小結 77 第 11章 依賴注入與Student模型 78 11.1 依賴注入 78 11.2 詳細了解ASP.NET Core中的依賴注入 80 11.3 使用依賴注入注冊服務 81 11.4 小結 83 第 12章 從Controller傳遞內容協商數據到View 84 12.1 Controller請求及相應流程說明 84 12.1.1 從Controller中返回JSON數據 85 12.1.2 安裝Fiddler 86 12.2 在Controller中實現內容協商 86 12.3 從Controller返回View 89 12.3.1 MVC中的View 89 12.3.2 視圖文件夾結構 90 12.3.3 視圖發現 90 12.3.4 View()重載方法 93 12.4 自定義視圖發現 93 12.4.1 指定視圖文件路徑 93 12.4.2 相對視圖文件路徑 94 12.4.3 其他View()重載方法 94 12.5 從Controller傳遞數據到View 95 12.5.1 數據從Controller傳遞到View的方法 95 12.5.2 使用ViewData將數據從Controller傳遞到View 95 12.5.3 使用ViewBag將數據從Controller傳遞到View 97 12.5.4 ViewData和ViewBag的對比 98 12.5.5 在ASP.NET Core MVC中創建一個強類型視圖 98 12.6 小結 100 第 13章 完善MVC框架內容 102 13.1 為什么需要在ASP.NET Core MVC中使用ViewModel 102 13.1.1 ViewModel示例 103 13.1.2 在Controller中使用ViewModel 103 13.1.3 在視圖中使用ViewModel 104 13.2 在ASP.NET Core MVC中實現List視圖 104 13.2.1 修改IStudentRepository中的代碼 105 13.2.2 修改MockStudentRepository中的代碼 105 13.2.3 修改HomeController中的代碼 106 13.2.4 視圖Index.cshtml中代碼的變化 106 13.3 為什么需要布局視圖 107 13.3.1 ASP.NET Core MVC中的布局視圖 108 13.3.2 創建布局視圖 109 13.3.3 使用布局視圖 109 13.4 布局頁面中的節點 110 13.4.1 布局頁面示例 110 13.4.2 渲染節點 111 13.4.3 使布局部分可選 111 13.4.4 節點的使用 112 13.5 什么是_ViewStart.cshtml文件 113 13.5.1 ASP.NET Core MVC中的_ViewStart.cshtml文件 113 13.5.2 _ViewStart.cshtml文件支持分層 113 13.5.3 邏輯判斷調用布局視圖 114 13.5.4 修改視圖 114 13.6 ASP.NET Core MVC中的_ViewImports.cshtml文件 116 13.7 小結 117 第 14章 ASP.NET Core MVC中的路由 118 14.1 ASP.NET Core MVC中的默認路由 119 14.2 UseMvcWithDefaultRoute()方法中的代碼 120 14.3 ASP.NET Core MVC中的屬性路由 122 14.3.1 屬性路由示例 123 14.3.2 屬性路由參數 123 14.3.3 屬性路由可選參數 124 14.3.4 控制器和操作方法名稱 125 14.3.5 屬性路由支持多層 125 14.3.6 在屬性路由中自定義路由 128 14.3.7 常規路由與屬性路由對比 129 14.4 ASP.NET Core中新增的路由中間件 129 14.4.1 路由中間件UseRouting 130 14.4.2 路由中間件UseEndpoints 131 14.5 LibMan輕量級包管理器 133 14.5.1 使用LibMan安裝Bootstrap 133 14.5.2 libman.json文件 134 14.5.3 清理和還原客戶端庫 134 14.5.4 卸載或更新客戶端庫 134 14.5.5 libman.json文件說明 135 14.5.6 在網站中自定義CSS樣式表 136 14.6 在ASP.NET Core應用程序中使用Bootstrap 136 14.6.1 Details.cshtml視圖優化 137 14.6.2 Index.cshtml視圖優化 137 14.7 小結 139 第 15章 ASP.NET Core中的TagHelper 140 15.1 導入內置TagHelper 140 15.1.1 使用TagHelper生成Link鏈接 140 15.1.2 TagHelper中的Link標簽 141 15.2 為什么要使用TagHelper 141 15.3 Image TagHelper 144 15.3.1 瀏覽器緩存 145 15.3.2 禁用瀏覽器緩存 145 15.3.3 HTTP狀態碼中的200與302 146 15.3.4 ASP.NET Core中的Image TagHelper 146 15.3.5 驗證Image TagHelper 147 15.4 ASP.NET Core中的Environment TagHelper 148 15.4.1 設置應用程序環境的名稱 148 15.4.2 如果CDN “掛了”怎么辦 149 15.5 使用Bootstrap給項目添加導航菜單 150 15.6 Form TagHelpers提交學生信息 153 15.6.1 場景描述 153 15.6.2 Form TagHelper 154 15.6.3 Input TagHelper 154 15.6.4 Label TagHelper 155 15.6.5 Select TagHelper 155 15.6.6 Create.cshtml中基本的HTML代碼 156 15.6.7 Bootstrap優化后的Create.cshtml的代碼 158 15.7 小結 159 第 16章 ASP.NET Core中的模型綁定與模型驗證 160 16.1 ASP.NET Core中模型綁定的簡單例子 160 16.2 在IStudentRepository接口中添加Add() 方法 162 16.2.1 在MockStudentRepository類中實現Add() 方法 163 16.2.2 HttpGet與HttpPost 163 16.2.3 運行結果 165 16.3 ASP.NET Core中的模型驗證 166 16.3.1 模型驗證示例 166 16.3.2 ModelState.IsValid屬性驗證 168 16.3.3 在視圖中顯示模型驗證錯誤 168 16.3.4 自定義模型驗證錯誤消息 169 16.3.5 ASP.NET Core內置模型驗證屬性 169 16.3.6 顯示屬性 169 16.3.7 使用多個模型驗證屬性 170 16.3.8 自定義模型驗證錯誤的顏色 170 16.4 ASP.NET Core中的Select選擇器驗證 171 16.4.1 HTML頁面中的選擇列表 171 16.4.2 使選擇列表成為必填 172 16.4.3 讓選擇列表成為真正的必需驗證 173 16.5 深入了解依賴注入3種服務的不同 174 16.5.1 IStudentRepository接口 174 16.5.2 Student類 175 16.5.3 MockStudentRepository倉儲服務 175 16.5.4 HomeController 176 16.5.5 創建學生信息 177 16.5.6 完善_ViewImports.cshtml 178 16.6 驗證依賴注入服務 179 16.6.1 AddSingleton()方法 179 16.6.2 AddScoped()方法 180 16.6.3 AddTransient()方法 181 16.6.4 Scoped服務、 Transient服務與Singleton服務 181 16.7 小結 182 第 17章 EntityFramework Core數據訪問與倉儲模式 183 17.1 為什么要使用ORM 183 17.1.1 EF Core Code First模式 184 17.1.2 EF Core Database First模式 185 17.1.3 EF Core所支持的數據庫 185 17.2 單層Web應用和多層Web應用的區別 186 17.2.1 單層Web應用 186 17.2.2 多層Web應用程序——三層架構 187 17.2.3 多層Web應用程序——領域驅動設計架構 188 17.3 Microsoft.AspNetCore.App包 190 17.4 安裝Entity Framework Core 192 17.4.1 在類庫項目中安裝NuGet包 193 17.4.2 Entity Framework Core中的DbContext 194 17.4.3 在應用程序中使用DbContext 194 17.4.4 Entity Framework Core中的DbSet 195 17.5 在Entity Framework Core中使用SQL Server 195 17.5.1 AddDbContext()和AddDbContextPool()方法之間的區別 196 17.5.2 UseSqlServer()擴展方法 196 17.5.3 ASP.NET Core中的數據庫連接字符串 196 17.6 ASP.NET Core中的倉儲模式 197 17.6.1 倉儲模式簡介 197 17.6.2 倉儲模式中的接口 198 17.6.3 修改IStudentRepository接口 198 17.6.4 倉儲模式中的內存實現 199 17.6.5 Repository模式——SQL Server數據庫實現 201 17.6.6 選擇合適的倉儲實現模式 202 17.6.7 倉儲模式的優點 203 17.7 Entity Framework Core遷移功能 203 17.7.1 EF Core中的遷移 204 17.7.2 常用的Entity Framework Core遷移命令 205 17.7.3 在Entity Framework Core中創建遷移 205 17.7.4 在Entity Framework Core中更新數據庫 206 17.7.5 Entity Framework Core中的種子數據 207 17.7.6 如何啟用種子數據 207 17.7.7 更改現有的數據庫種子數據 209 17.7.8 DbContext類保持“干凈” 210 17.8 在ASP.NET Core中同步領域模型與數據庫架構 211 17.8.1 給學生增加頭像字段 211 17.8.2 Migrations文件夾中的文件說明 212 17.8.3 _EFMigrationsHistory表的使用 212 17.8.4 如何刪除已應用的遷移記錄 212 17.8.5 刪除已應用于數據庫的遷移 213 17.9 小結 213 第 18章 學生頭像上傳與信息修改 214 18.1 修改Student模型類 215 18.1.1 視圖模型——StudentCreateViewModel 215 18.1.2 更新Create視圖中的代碼 216 18.1.3 更新Create()操作方法的代碼 219 18.1.4 學生詳情視圖頁面代碼 220 18.1.5 學生列表視圖頁面代碼 221 18.2 在ASP.NET Core MVC中完成上傳多個文件 222 18.2.1 StudentCreateViewModel文件 223 18.2.2 更新Create視圖的代碼 223 18.2.3 修改Create()操作方法 226 18.3 ASP.NET Core中的學生編輯視圖 228 18.3.1 導航到編輯視圖 228 18.3.2 編輯視圖模型 229 18.3.3 Edit() 操作方法 230 18.3.4 編輯視圖頁面 230 18.3.5 完成HttpPost的Edit()操作方法 232 18.4 枚舉的擴展方法實現 235 18.5 小結 237 第 19章 404錯誤頁與異常攔截 238 19.1 HTTP狀態碼中的4××和5×× 238 19.1.1 ASP.NET Core中的404錯誤 239 19.1.2 404錯誤信息的視圖代碼 239 19.2 統一處理ASP.NET Core中的404錯誤 240 19.2.1 404錯誤的類型 241 19.2.2 ASP.NET Core中的404錯誤示例 241 19.3 處理失敗的HTTP狀態碼 242 19.3.1 UseStatusCodePages中間件 242 19.3.2 UseStatusCodePagesWithRedirects中間件 243 19.3.3 添加ErrorController 244 19.3.4 添加NotFound視圖 245 19.4 UseStatusCodePagesWithRedirects與UseStatusCodePagesWithReExecute 245 19.4.1 UseStatusCodePagesWithRedirects中間件說明 246 19.4.2 UseStatusCodePagesWithRedirects請求處理流程 246 19.4.3 使用UseStatusCodePagesWithReExecute請求處理流程 247 19.5 ASP.NET Core中的全局異常處理 249 19.5.1 ASP.NET Core中的UseDeveloperExceptionPage中間件 249 19.5.2 ASP.NET Core中的非開發環境異常信息 250 19.5.3 ASP.NET Core中的異常處理 251 19.5.4 調整Edit()方法中的錯誤視圖 253 19.6 小結 255 第 20章 ASP.NET Core中的日志記錄 256 20.1 ASP.NET Core中的默認日志 256 20.2 ASP.NET Core中的日志記錄提供程序 257 20.2.1 ASP.NET Core內置日志記錄提供程序 257 20.2.2 ASP.NET Core的第三方日志記錄提供程序 258 20.2.3 ASP.NET Core中默認的日志記錄提供程序 258 20.2.4 appsettings.json文件中的LogLevel 259 20.3 在ASP.NET Core中實現記錄異常信息 261 20.3.1 Error和NotFound視圖修改 262 20.3.2 在ASP.NET Core中記錄異常信息 263 20.3.3 在ASP.NET Core中使用NLog記錄信息到文件中 267 20.3.4 在ASP.NET Core中使用NLog 267 20.4 在ASP.NET Core中LogLevel配置及過濾日志信息 270 20.4.1 日志等級LogLevel枚舉 270 20.4.2 ILogger方法 271 20.4.3 在ASP.NET Core中使用日志過濾 272 20.4.4 按日志類別(Log Category)和日志記錄提供程序進行日志篩選 275 20.4.5 特定環境變量中appsettings.json文件的LogLevel配置 277 20.5 小結 277 第三部分 第 21章 從零開始學ASP.NET Core Identity框架 280 21.1 ASP.NET Core Identity介紹 280 21.2 使用ASP.NET Core Identity注冊新用戶 283 21.2.1 RegisterViewModel視圖模型 284 21.2.2 賬戶控制器 284 21.2.3 注冊視圖中的代碼 285 21.2.4 添加注冊按鈕 286 21.3 UserManager和SignInManager服務 286 21.3.1 ASP.NET Core Identity中對密碼復雜度的處理 288 21.3.2 ASP.NET Core Identity密碼默認設置 289 21.3.3 覆蓋ASP.NET Core身份中的密碼默認設置 290 21.3.4 修改中文提示的錯誤信息 291 21.4 登錄狀態及注銷功能的實現 294 21.5 ASP.NET Core Identity中的登錄功能實現 295 21.5.1 LoginViewModel登錄視圖模型 295 21.5.2 登錄視圖的代碼 296 21.5.3 AccountController中的Login()操作方法 297 21.5.4 會話Cookie與持久性Cookie 298 21.6 小結 299 第 22章 授權與驗證的關系 300 22.1 ASP.NET Core中的Authorize屬性 300 22.1.1 Authorize屬性示例 300 22.1.2 ASP.NET Core中的AllowAnonymous屬性 301 22.1.3 全局應用Authorize屬性 302 22.2 登錄后重定向到指定URL 303 22.2.1 ASP.NET Core中的ReturnUrl 303 22.2.2 ReturnUrl查詢字符串示例 303 22.2.3 登錄后重定向到ReturnUrl 304 22.3 開放式重定向攻擊 305 22.3.1 什么是開放式重定向漏洞 305 22.3.2 開放式重定向漏洞示例 305 22.4 ASP.NET Core中的客戶端驗證 307 22.4.1 服務器端驗證示例 307 22.4.2 客戶端驗證 308 22.4.3 什么是客戶端隱式驗證 310 22.4.4 客戶端驗證如何在ASP.NET Core中工作 311 22.4.5 隱式驗證在ASP.NET Core中失效 312 22.5 在ASP.NET Core中進行遠程驗證 312 22.5.1 遠程驗證示例 313 22.5.2 ASP.NET Core遠程屬性 314 22.5.3 ASP.NET Core Ajax失效 315 22.6 ASP.NET Core中的自定義驗證屬性 315 22.6.1 自定義驗證屬性示例 315 22.6.2 在ASP.NET Core中使用自定義驗證屬性 316 22.7 小結 317 第 23章 角色管理與用戶擴展 318 23.1 擴展IdentityUser類 319 23.1.1 修改AppDbContext中的參數 321 23.1.2 生成新遷移記錄向AspNetUsers表中添加字段 321 23.1.3 在AspNetUsers表中保存自定義數據 322 23.1.4 AccountController類中Register()操作方法的修改 323 23.1.5 AllowAnonymous匿名屬性的使用 324 23.2 ASP.NET Core中的角色管理 324 23.2.1 ASP.NET Core中的RoleManager 324 23.2.2 在AdminController中添加創建新角色的代碼 325 23.2.3 創建角色視圖模型 326 23.2.4 創建角色視圖 326 23.3 在ASP.NET Core中顯示所有角色列表 328 23.4 編輯ASP.NET Core中的角色 331 23.4.1 編輯角色視圖模型 332 23.4.2 編輯角色操作方法 333 23.4.3 編輯角色視圖 335 23.5 角色管理中的用戶關聯關系 338 23.5.1 Identity中的AspNetUserRoles數據庫表關聯關系 339 23.5.2 EditUsersInRole的HttpGet操作方法 339 23.5.3 EditUsersInRole的HttpPost操作方法 340 23.5.4 EditUsersInRole視圖 341 23.6 小結 343 第 24章 角色授權與用戶管理 344 24.1 基于角色的授權 344 24.1.1 授權屬性的多個實例 345 24.1.2 基于角色授權的控制器操作方法 345 24.2 添加授權中間件UseAuthorization 346 24.3 在菜單欄上顯示或隱藏管理 347 24.4 ASP.NET Core Identity中的拒絕訪問功能 348 24.4.1 AccessDenied()操作方法 348 24.4.2 AccessDenied視圖代碼 349 24.5 獲取Identity中的用戶列表 349 24.5.1 UserManager服務的用戶訪問 350 24.5.2 ASP.NET Core列表用戶視圖 351 24.5.3 管理導航菜單 353 24.5.4 修改Register()方法 354 24.5.5 下拉菜單功能失效 355 24.6 編輯Identity中的用戶 355 24.6.1 編輯用戶視圖 355 24.6.2 EditUser()的操作方法 356 24.6.3 EditUser視圖文件 358 24.7 NotFound視圖異常 360 24.8 Identity中刪除的用戶功能 362 24.8.1 使用GET請求刪除數據 362 24.8.2 使用POST請求刪除數據 362 24.8.3 DeleteUser()方法 363 24.9 ASP.NET Core中的確認刪除功能 364 24.9.1 瀏覽器確認對話框 364 24.9.2 是和否刪除按鈕 364 24.9.3 將confirmDelete()方法添加到視圖中 366 24.10 刪除ASP.NET CoreIdentity中的角色 367 24.11 小結 369 第 25章 EF Core中的數據完整性約束 370 25.1 EF Core中的數據完整性約束 370 25.2 優化生產環境中的自定義錯誤視圖 374 25.2.1 ErrorController類 376 25.2.2 優化Error.cshtml 376 25.3 小結 378 第 26章 ASP.NET Core中的聲明授權 379 26.1 Identity中的用戶角色 379 26.1.1 視圖模型 380 26.1.2 ManageUserRoles()方法 380 26.1.3 ManageUserRoles視圖文件 382 26.2 啟用MARS與模型綁定失效 383 26.2.1 為什么不使用foreach 384 26.2.2 for循環與foreach循環的異同點 387 26.3 聲明授權 388 26.3.1 ClaimsStore與UserClaimsViewModel類 388 26.3.2 ManageUserClaims()操作方法 389 26.3.3 ManageUserClaims視圖文件 391 26.4 小結 393 第 27章 RBAC與CABC 394 27.1 RBAC 394 27.2 CBAC 395 27.3 角色與策略的結合 396 27.4 在MVC視圖中進行角色與聲明授權 397 27.5 AccessDenied視圖的路由配置修改 399 27.6 策略授權中的ClaimType和ClaimValue 402 27.7 使用委托創建自定義策略授權 404 27.7.1 自定義復雜授權需求 406 27.7.2 自定義授權需求和處理程序 407 27.7.3 自定義需求的授權處理程序示例 408 27.7.4 多個自定義授權處理程序 411 27.8 小結 413 第 28章 Identity的賬戶中心的設計 414 28.1 第三方登錄身份提供商 414 28.1.1 第三方登錄身份提供商如何在ASP.NET Core中工作 415 28.1.2 創建Azure OAuth憑據--——客戶端ID和客戶端密鑰 416 28.1.3 在ASP.NET Core中啟用Microsoft身份驗證 418 28.1.4 集成GitHub身份驗證登錄 425 28.2 用戶機密 429 28.3 驗證賬戶信息安全 430 28.3.1 驗證電子郵箱的好處 431 28.3.2 阻止登錄未驗證的用戶登錄 431 28.3.3 電子郵箱確認令牌 435 28.3.4 第三方登錄的電子郵箱確認令牌 439 28.3.5 激活用戶郵箱 442 28.4 忘記密碼功能 444 28.5 重置密碼功能 446 28.6 小結 449 第 29章 解析部分ASP.NET Core Identity源代碼 450 29.1 解析ASP.NET Core Identity中Token的生成與驗證 450 29.2 自定義令牌類型及令牌有效期 454 29.3 ASP.NET Core中Data Protection的加密和解密示例 456 29.4 在ASP.NET Core中添加更改密碼功能 461 29.5 為第三方賬戶添加密碼 464 29.6 ASP.NET Core中的賬戶鎖定 468 29.7 小結 472 第四部分 第30章 架構 474 30.1 架構簡介 474 30.2 學校管理系統架構設計 475 30.3 EntityFramework Core中的實體關系 476 30.4 當前架構 480 30.5 小結 481 第31章 倉儲模式的最佳實踐 482 31.1 泛型倉儲的實現 482 31.2 異步編碼與同步編碼 483 31.3 IRepository接口的設計實現 484 31.4 RepositoryBase倉儲代碼的實現 489 31.5 小結 495 第32章 重構學生管理功能 496 32.1 修改HomeController中的代碼 496 32.2 學生列表排序功能 505 32.3 模糊查詢 507 32.4 一個簡單分頁的實現 509 32.5 小結 514 第33章 課程列表與分組統計功能 515 33.1 泛型分頁 515 33.2 遷移數據信息 521 33.3 課程列表 526 33.4 分部視圖 530 33.5 學生統計信息 532 33.6 Razor條件運行時編譯 534 33.7 小結 535 第34章 復雜數據類型及自動依賴注入 536 34.1 創建相關實體信息 537 34.1.1 修改Course實體信息 538 34.1.2 創建學院與調整學生課程信息 539 34.2 更新數據庫上下文及初始化內容 542 34.3 服務之間的自動注冊 552 34.4 小結 555 第35章 課程與教師的CRUD 556 35.1 EF Core中預加載的使用 556 35.2 較為復雜的預加載的使用 558 35.3 編輯課程功能 569 35.3.1 編輯課程信息 572 35.3.2 課程信息的詳情頁 575 35.3.3 刪除課程信息 577 35.4 編輯教師功能 578 35.4.1 添加教師信息 583 35.4.2 刪除教師信息 586 35.5 優化目錄結構 587 35.6 小結 588 第36章 處理并發沖突 589 36.1 并發沖突 589 36.1.1 悲觀并發(悲觀鎖) 590 36.1.2 樂觀并發(樂觀鎖) 591 36.2 添加Department的相關類 591 36.2.1 添加DepartmentsService 592 36.2.2 學院列表功能 593 36.2.3 添加詳情視圖 597 36.2.4 編輯學院信息功能 602 36.3 EF Core中的并發控制 605 36.4 小結 609 第37章 EF Core中的繼承與原生SQL語句使用 610 37.1 繼承 610 37.1.1 實現TPH繼承 611 37.1.2 執行數據庫遷移 613 37.2 執行原生SQL語句 614 37.2.1 DbSet.FromSqlRaw的使用 614 37.2.2 Database.ExecuteSqlComma的使用 615 37.2.3 執行原生SQL語句實現更新 616 37.3 小結 619 第38章 EF Core 中的數據加載與關系映射 620 38.1 EF Core中的數據加載 620 38.1.1 顯式加載 620 38.1.2 延遲加載 621 38.1.3 3種加載形式的性能區別 623 38.2 Fluent API與數據注釋 624 38.3 Entity Framework Core中的Code First關系映射約定 625 38.3.1 一對一關聯關系 626 38.3.2 一對多關聯關系 627 38.3.3 多對多關聯關系 631 38.4 小結 632 第五部分 第39章 ASP.NET Core中的Web API 634 39.1 IoT與RESTful服務 634 39.2 添加Web API服務 635 39.3 安裝Postman并調試Web API服務 639 39.3.1 測試POST請求 639 39.3.2 測試GET請求 640 39.3.3 測試PutTodoItem()方法 642 39.3.4 測試DeleteTodoItem()方法 644 39.3.5 404和400異常 644 39.4 圖形可視化的Web API幫助頁 646 39.4.1 Swagger/OpenAPI 646 39.4.2 Swashbuckle.AspNetCore入門 646 39.4.3 添加并配置Swagger中間件 647 39.4.4 獲取swagger.json失敗 648 39.4.5 調試Swagger UI 650 39.4.6 調用SwaggerGen API 654 39.5 小結 657 第40章 實踐多層架構體系 658 40.1 領域驅動設計的分層結構 658 40.2 重構MockSchoolManagement項目 659 40.2.1 添加所需類庫 661 40.2.2 添加依賴引用關系 662 40.3 遷移各類庫 663 40.3.1 各個項目文件中的引用 664 40.3.2 類庫效果圖 665 40.3.3 多程序集的依賴注入 667 40.3.4 重新生成遷移記錄及生成SQL腳本 668 40.4 小結 669 第41章 部署與發布 670 41.1 部署至IIS 670 41.1.1 IIS的安裝和配置 670 41.1.2 安裝ASP.NET Core托管模塊 672 41.1.3 啟用Web Deploy 672 41.1.4 創建IIS站點 675 41.1.5 使用Visual Studio將ASP.NET Core發布到IIS站點 676 41.2 部署至Ubuntu 678 41.2.1 Ubuntu中安裝.NET Core 679 41.2.2 安裝Nginx 679 41.2.3 編譯與發布 680 41.3 在Docker中調試運行ASP.NET Core 682 41.3.1 安裝Docker 682 41.3.2 添加Dockerfile文件 683 41.4 云原生Azure Web App 685 41.5 小結 689 第42章 ASP.NET Core 2.2到ASP. NET Core 3.1的遷移指南 690 42.1 升級至ASP.NET Core 3.1 690 42.1.1 修改項目啟動 692 42.1.2 修改Startup 693 42.2 遷移升級后的看法 693 42.3 Visual Studio 2019插件推薦 694 42.4 小結 696 本書是一本系統地介紹ASP.NET Core、Entity Framework Core以及ASP.NET Core Identity框架技術的入門圖書,旨在幫助讀者循序漸進地了解和掌握ASP.NET Core。本書使用ASP.NET Core從零開始搭建一個實際的項目。從基本的控制臺應用程序開始,介紹ASP.NET Core基本的啟動流程,涵蓋ASP.NET Core框架中各個技術的實際應用。同時,本書也會介紹一些ASP.NET Core的高級概念。在本書中,我們會開發一個學校管理系統,其中包含清晰的操作步驟和大量的實際代碼,以幫助讀者學以致用,將ASP.NET Core的知識運用到實際的項目開發當中,最后我們會將開發的項目部署到生產環境中。通過閱讀本書,讀者將掌握使用ASP.NET Core開發Web應用程序的方法,并能夠在對新項目進行技術選型時做出戰略決策。
本書適合有一定C# 編程經驗和HTML、JavaScript基礎,并對ASP.NET Core感興趣的讀者閱讀,也可以作為高等院校相關專業的教學用書和培訓學校的教材。 |