Web技術開發教程(基于.NET開源MVC框架)
-
【作 者】王合闖 韓紅玲 王青正 陳海蕊
【I S B N 】978-7-5226-1805-0
【責任編輯】鞠向超
【適用讀者群】本專通用
【出版時間】2023-11-01
【開 本】16開
【裝幀信息】平裝(光膜)
【版 次】第1版第1次印刷
【頁 數】396
【千字數】634
【印 張】24.75
【定 價】¥79
【叢 書】普通高等教育新工科系列教材
【備注信息】
簡介
本書特色
前言
章節列表
精彩閱讀
下載資源
相關圖書
本書以一個程序員的視角,講解了使用ASP.NET Core開發一個全新應用程序,并將其發布到互聯網上的所有必經步驟。本書詳細講解HTML、CSS和JavaScript等Web技術基礎,以及貫穿整個網站開發過程中的基本技術和設計思想,最終以測試和發布結束,以期幫助讀者掌握Web編程技術,探索應用程序的架構,并使用新興的框架來構建現代應用程序和適用于云端的應用程序。
本書通過介紹跨平臺Web應用程序的開發、部署與管理的完整流程,指導讀者學習動態網站的開發與設計,使其掌握開源ASP.NET Core技術,并知道如何將MVC、Docker、Visual Studio、C#和Entity Framework融會貫通,以及完成開發、測試、部署和維護等各個環節的工作。
內容全面,講解細致
由淺入深地詳細講解前端頁面編程、MVC 架構、工程實例和開發流程。
理實一體,突出應用
案例引導,任務驅動,突出實踐,體現“成果為導向,學生為中心”的教育理念。
資源豐富,方便教學
配套微課、電子課件、源代碼、習題答案等資源,方便師生教與學。
本書創新性地從開發者的視角出發,講解了一個完整應用程序開發過程的各個迭代環節。
本書分3篇16章進行介紹。
第1篇 HTML、CSS和JavaScript靜態網站基礎
本篇介紹的是動態網站開發前端人員需要掌握的基本技能,涵蓋HTML、CSS和JavaScript。
第1章介紹HTML文檔的基本結構、語法和DOM模型,以及HTTP方法與狀態消息、API技術等,使沒有Web項目開發經驗的讀者掌握HTML的語法基礎。
第2章介紹CSS樣式表的基礎知識,涵蓋CSS樣式表中的基本概念、常用屬性、選擇器和框模型,以及應用CSS樣式表的典型案例。
第3章介紹前端框架中的重量級應用JavaScript的基本語法和用途較為廣泛的jQuery技術,以期引導讀者進行基本前端頁面編程。
第2篇 MVC Web動態網站開發技術基礎
本篇介紹的是動態網站開發后端人員需要掌握的MVC模型開發技術。
第4章介紹MVC模型與ASP.NET Core MVC、正確的開發理念,以及進行團隊協助開發時的版本控制。
第5章介紹MVC模型的Model與數據訪問,主要包括數據庫開發模式、創建數據模型和EF Core框架,并采用T4模板創建了一個具有CRUD功能的基本網站,使未使用過框架和沒有MVC模型開發經驗的讀者對采用框架技術開發MVC網站的基本技能有一個初步的了解。
第6章介紹MVC模型的View數據呈現技術,通過布局頁、局部視圖和視圖組件來介紹可復用模塊下的Views視圖開發技術及視圖中常用的HTML助手和Tag助手技術。
第7章介紹視圖中使用的編程語言Razor及基于Razor語法的另類網頁開發技術Web Assembly的Blazor技術。
第8章介紹MVC模型中的Controllers和路由技術,通過具體分析Controllers、Actions 和Action Results等技術和行為為后端開發人員完成復雜網站系統的開發奠定基礎,并介紹了框架中的路由、過濾器以及依賴注入和控制器的相關技術。
第9章介紹后臺開發過程中常用的內置對象和狀態管理技術,包括HttpContext對象、頁面狀態對象等。
第3篇 網站設計開發中的高級論題
本篇從宏觀角度來論述網站開發中的設計和開發思想、網站中用到的實用技術、網站的安全和部署方法。
第10章介紹網站針對第三方開發的遠程調用接口技術Web API,以及WebSocket、SignalR和gRPC等高級論題。
第11章介紹網站項目規劃與設計基本技能,如如何規劃公共類庫、網站的功能區域(Areas)劃分技術、保證整體網站風格的一致性、大規模并發訪問下的網站優化前后臺技術。
第12章介紹網站中的安全技術,包括認證與授權、網站中的對稱和非對稱加密技術,涵蓋DES、AES、數字簽名和非對稱信息傳輸技術。
第13章介紹網站中的常見開發技術,如控制反轉與依賴注入、中間件、處理靜態文件等。
第14章介紹驗證碼、圖片水印、二維碼和文件上傳等技術及其原理。
第15章介紹網站開發和交付時用到的測試技術,如單元測試、集成測試和負載壓力測試。這里只是以簡單的示例方式介紹了網站交付前應當進行的測試。
第16章介紹網站的部署,提供了Kestrel、IIS和Docker三種部署ASP.NET Core網站技術,讀者可以根據場景需要選擇適合自己的部署方法以運行Web動態網站。在大規模網站訪問系統下,運行動態網站的節點往往不止一個,具有相同運行內容的網站節點需要負載均衡,16.4節就詳細介紹了如何進行鏡像節點的Nginx負載均衡。
本書特色
(1)強化工程教育理念。
創新性地從開發者的視角出發,采用實際工程案例,逐步講解Web開發中用到的技術、理論和方法。
(2)多資源的新生態教材,翻轉課堂培養模式。
本課程擬建設集課件、微視頻、GitHUB、微信公眾號、QQ群、在線平臺、專業助教等多資源的新生態課程體系,打造一本經典教材,有效引導讀者自主學習,培養深度學習和創新能力,利于翻轉課堂教學模式的開展。
(3)項目驅動式+技術浸入式。
引入工程項目中的真實案例,設計培養自主創新能力的實驗項目,以項目為驅動,帶動相關技術的深入學習,設身處地為讀者尤其是初學者,優化并定制學習內容,杜絕官方文檔的搬運,讓讀者能輕松自學,在完成項目的同時深入理解技術的原理和應用,進而達到活學活用。
本書的創新點
(1)引入現代Web開發前沿技術。
本書融入Web編程領域最新發展Web API、SSO、負載均衡、虛擬化等科技前沿技術,以培養解決復雜工程問題的能力,滿足新工科課程培養目標的需求。
(2)現代Web編程與開發的新模式。
本書采用MVC模型,引入關注點分離和以習慣替換配置等現代開發理念,讓學生掌握代碼優先的Web編程開發新模式。
(3)開啟Web編程教學的新理念。
課程采用理論教學和實踐教學相結合的策略,以項目驅動的方式培養動手實踐的能力。本書提供完整的代碼和視頻教學,以獨立示例的形式體現現代Web開發技術中的關鍵點,讓學生通過反復觀摩、活學活用來構建具有創新性的獨立Web應用,培養獨立解決問題的能力。
本書由華北水利水電大學的王合闖、韓紅玲、王青正和中原工學院的陳海蕊編寫,其中王合闖編寫第4章至第10章并審讀全書,韓紅玲編寫第1章至第3章,王青正編寫第11章至第13章,陳海蕊編寫第14章至第16章。周莊、王羽、王澤雨負責本書配套代碼、視頻及在線資源的整理工作。在本書編寫過程中編者參考了一些文獻資料,在此向其作者表示衷心感謝。
由于編者水平有限,書中不妥甚至錯誤之處在所難免,敬請讀者批評指正(E-mail:hanhongling@ncwu.edu.cn)。
編 者
2023年6月
第1篇 HTML、CSS和JavaScript靜態網站基礎
第1章 頁面描述語言 2
1.1 HTML文檔 2
1.1.1 HTML文檔的創建與查看 2
1.1.2 HTML文檔結構 3
1.2 HTML語法基礎 6
1.2.1 文本 6
1.2.2 表格與布局 13
1.2.3 圖像 17
1.2.4 媒體 21
1.2.5 表單和輸入 26
1.2.6 框架 30
1.3 字符、URL和顏色 32
1.3.1 字符實體 32
1.3.2 URL 33
1.3.3 顏色 34
1.4 HTTP的方法與狀態消息 36
1.4.1 HTTP的GET和POST方法 36
1.4.2 HTTP的狀態消息 37
1.5 HTML5 37
1.5.1 HTML5簡介 37
1.5.2 HTML5中的新元素 39
1.5.3 從HTML 4遷移至HTML5 41
1.5.4 樣式指南和代碼約定 41
1.6 API 41
1.6.1 地理定位 41
1.6.2 本地存儲 42
1.6.3 拖放 45
1.6.4 應用程序緩存 47
1.6.5 Web Worker 48
1.6.6 服務器發送事件 50
1.6.7 WebSocket 52
本章小結 53
習題 53
第2章 頁面樣式 54
2.1 CSS樣式表 54
2.1.1 什么是CSS 54
2.1.2 CSS與HTML的聯系 54
2.1.3 在HTML中引用CSS的方式 55
2.2 CSS中的常用屬性 56
2.2.1 字體 56
2.2.2 顏色 57
2.2.3 長度 57
2.2.4 布局 57
2.3 CSS選擇器 58
2.3.1 基本選擇器 58
2.3.2 高級選擇器 61
2.4 CSS框模型 64
2.5 典型案例 65
2.5.1 通過filter濾鏡控制圖片樣式 65
2.5.2 通過CSS控制字體樣式 67
2.5.3 通過CSS控制鏈接樣式 68
本章小結 69
習題 69
第3章 頁面交互 70
3.1 JavaScript 70
3.1.1 JavaScript的應用方式 70
3.1.2 JavaScript語言基礎 71
3.1.3 程序結構 78
3.1.4 DOM操作 80
3.2 jQuery 83
3.2.1 jQuery概述 83
3.2.2 jQuery對象 85
3.2.3 jQuery選擇器 85
3.2.4 jQuery中的DOM操作 90
3.2.5 jQuery中的事件 97
3.2.6 jQuery中的常用方法 103
3.2.7 jQuery中的“$”及其作用 107
本章小結 108
習題 108
第2篇 MVC Web動態網站開發技術基礎
第4章 Web開發技術概述 110
4.1 MVC模型簡介 110
4.2 ASP.NET Core MVC概述 110
4.2.1 .NET Core架構體系 110
4.2.2 .NET Core安裝與使用概述 111
4.3 ASP.NET MVC的開發理念 115
4.3.1 關注點分離 115
4.3.2 以習慣替換配置 115
4.4 版本控制 116
4.4.1 Git與GitLab服務器 116
4.4.2 Visual Studio簽入簽出項目 118
本章小結 122
習題 122
第5章 Model與數據訪問 123
5.1 Model 123
5.2 數據庫開發模式 124
5.3 創建數據模型 125
5.4 EF Core框架 126
5.4.1 模型 126
5.4.2 使用SQL Server數據庫 130
5.4.3 更改為使用SQLite數據庫 134
本章小結 135
習題 135
第6章 View數據呈現 136
6.1 Views視圖概述 136
6.1.1 視圖簡介 136
6.1.2 創建視圖 137
6.2 布局 141
6.2.1 布局頁Layout 141
6.2.2 指定布局文件 142
6.2.3 View Import和View Start 142
6.3 HTML助手 143
6.3.1 HTML Helper簡介 143
6.3.2 鏈接 144
6.3.3 Input控件 144
6.3.4 列表框 146
6.3.5 Form表單 147
6.3.6 使用TagBuilder創建自定義標簽 148
6.3.7 強類型HTML Helper 149
6.3.8 LabelFor數據標簽 150
6.3.9 DisplayFor和EditorFor 151
6.4 Tag助手 152
6.4.1 Form Tag Helper 152
6.4.2 Input Tag Helper 153
6.4.3 Textarea Tag Helper 157
6.4.4 Label Tag Helper 158
6.4.5 驗證Tag Helper 159
6.4.6 Select Tag Helper 160
6.5 分部視圖 168
6.5.1 分部視圖概述 168
6.5.2 分部視圖示例 168
6.6 視圖組件 171
6.6.1 視圖組件概述 171
6.6.2 視圖組件示例 172
本章小結 173
習題 173
第7章 Razor和Blazor 174
7.1 Razor 174
7.1.1 Razor語法 174
7.1.2 Razor表達式 174
7.1.3 Razor代碼塊 176
7.1.4 控制結構 177
7.1.5 指令 180
7.1.6 模板化Razor委托 185
7.1.7 Razor的其他內容 187
7.2 Blazor 188
7.2.1 WebAssembly 188
7.2.2 Blazor 191
本章小結 192
習題 192
第8章 路由與控制器 193
8.1 控制器、操作和操作結果 193
8.1.1 控制器 193
8.1.2 操作 195
8.1.3 操作結果 200
8.2 路由 205
8.2.1 路由中間件 205
8.2.2 屬性路由 206
8.2.3 URL生成 209
8.2.4 實現IActionConstraint的路由
約束 212
8.3 過濾器 213
8.3.1 過濾器的工作過程 213
8.3.2 配置過濾器 217
8.3.3 .NET Core MVC中的常用
過濾器 220
8.3.4 過濾器對比中間件 224
8.4 依賴注入和控制器 225
8.4.1 依賴注入和構造器注入 225
8.4.2 Action注入和FromServices 227
8.4.3 從控制器訪問設置 227
本章小結 228
習題 229
第9章 內置對象與狀態管理 230
9.1 HttpContext對象 230
9.1.1 HttpContext.Request對象 231
9.1.2 HttpContext.Response對象 234
9.1.3 HttpContext.Items 235
9.1.4 HttpContext.Session 235
9.1.5 HttpContext.User 237
9.2 頁面狀態對象 238
9.2.1 ViewData狀態對象 238
9.2.2 ViewBag狀態對象 240
9.2.3 TempData狀態對象 241
本章小結 242
習題 242
第3篇 網站設計開發中的高級論題
第10章 遠程調用 244
10.1 Web API 244
10.1.1 Web API概述 244
10.1.2 使用ASP.NET Core創建
Web API 245
10.1.3 Winform調用Web API示例 250
10.2 WebSocket 250
10.2.1 WebSocket概述 250
10.2.2 Web網頁聊天示例 251
10.3 SignalR 251
10.3.1 SingalR概述 251
10.3.2 SingalR示例 252
10.4 gRPC 255
10.4.1 gRPC概述 255
10.4.2 gRPC示例 256
本章小結 259
習題 259
第11章 網站項目規劃與設計 260
11.1 公共類庫 260
11.1.1 .NET Standard類庫 261
11.1.2 類庫設計與規劃 263
11.2 區域(Areas) 268
11.2.1 添加區域 268
11.2.2 區域中的路由 270
11.3 網站風格 272
11.3.1 配色方案 272
11.3.2 UI統籌與皮膚 281
11.3.3 網站模板 289
11.4 網站優化 299
11.4.1 前端頁面優化 299
11.4.2 服務器端優化規則 306
11.4.3 動靜分離 315
11.4.4 消息隊列 317
本章小結 326
習題 326
第12章 網站安全 327
12.1 認證和授權 327
12.1.1 基本認證 328
12.1.2 角色認證 329
12.1.3 SSO單點登錄 330
12.2 加密 330
12.2.1 散列技術 330
12.2.2 對稱加密技術 333
12.2.3 非對稱加密技術 334
本章小結 335
習題 335
第13章 網絡編程高級技術 336
13.1 控制反轉與依賴注入 336
13.1.1 控制反轉 336
13.1.2 依賴注入 339
13.2 中間件 340
13.2.1 中間件簡介 340
13.2.2 在管道中加入中間件示例 340
13.3 處理靜態文件 342
13.3.1 靜態文件服務 342
13.3.2 Web root外部文件映射 343
13.3.3 下載文件類型限定 343
13.3.4 允許直接瀏覽目錄 344
本章小結 345
習題 345
第14章 網站開發常見技術 346
14.1 驗證碼 346
14.1.1 驗證碼簡介 346
14.1.2 驗證碼的實現 347
14.2 圖片水印 347
14.3 二維碼 347
14.3.1 二維碼簡介 347
14.3.2 二維碼的實現 348
14.4 文件上傳 349
本章小結 349
習題 349
第15章 Web測試 350
15.1 單元測試 350
15.1.1 單元測試概述 350
15.1.2 .NET Core中的單元測試 350
15.2 集成測試 354
15.2.1 集成測試概述 354
15.2.2 ASP.NET Core中的集成測試 354
15.3 負載壓力測試 366
15.3.1 負載壓力測試介紹 366
15.3.2 ASP.NET Core 負載壓力測試 367
本章小結 370
習題 370
第16章 網站部署 371
16.1 Kestrel部署 371
16.1.1 默認配置 371
16.1.2 發布文件 372
16.2 IIS部署 376
16.3 Docker部署 379
16.3.1 上傳網站到服務器 379
16.3.2 開始Docker的安裝 381
16.3.3 下載.NET Core鏡像 381
16.3.4 創建容器并運行網站 381
16.4 部署Nginx負載均衡 383
本章小結 385
習題 385
參考文獻 386
- 輸水管線工程風險管理 [張勇 黨亥生 著]
- 民用航空飛機標準線路施工 [主編 王志敏 陳明]
- 不息的水脈—大運河講談錄 [趙珩 著]
- 實用運籌學 [主編 邢育紅 于晉臣]
- 三峽梯級電站水資源決策支持系統研究與開發 [姚華明 潘紅忠 湯正]
- 海南黎族民俗文化鑒賞 [龐國華 著]
- 石墨烯在太赫茲及中紅外頻段電磁器件設計中的應用 [李艷秀 莊華偉 著]
- 電子技術(第二版) [主編 覃愛娜 李飛]
- 辦公自動化高級應用 [陳萍 朱曉玉]
- 信息處理技術員考試32小時通關 [薛大龍]
- 電子產品設計案例教程(微課版)—基于嘉立創EDA(專業版) [王靜 莫志宏 陳學昌 丁紅]
- C程序設計實踐教程 [劉衛國]
- C程序設計(慕課版) [劉衛國]
- 商務英語翻譯教程(筆譯)(第四版) [主編 王軍平]
- 智慧零售技術與應用 [洪旭 著]
- 建設工程法規實務 [主編 余瀅]
- 商務秘書理論與實務(第三版) [主編 張同欽]
- 程序設計基礎實踐教程(C/C++語言版) [張桂芬 葛麗娜]
- C++案例項目精講 [主編 楊國興]
- 勞動爭議處理實務 [主編 王秀卿 羅靜]
- 工程數學 [主編 郭立娟 王海]
- 語音識別理論與實踐 [主編 莫宏偉]
- 信息系統項目管理師章節習題與考點特訓(第二版) [主編 薛大龍]
- 武術基礎教程 [主編 李代勇 謝志民]
- 計算機網絡實訓教程 [主編 張浩軍 趙玉娟]
- 畫法幾何與機械制圖習題集(多學時) [主編 趙軍]
- HCIA-Datacom認證題庫分類精講 [主 編 韓立剛]
- SwiftUI完全開發 [李智威 著]
- 網絡規劃設計師備考一本通 [夏杰 編著]
- 電工電子技術基礎 [主編 劉 軍 楊國龍 劉天成]