作 者:(美)亞當·弗裡曼 著 郝冠軍 等 譯
定 價:169.9
出 版 社:人民郵電出版社
出版日期:2021年06月01日
頁 數:708
裝 幀:平裝
ISBN:9787115559616
1.暢銷書升級版,詳細介紹了ASP.NET Core MVC的架構、功能和應用,講述了開發可擴展的Web應用程序的工具和技術。2.結合具體實例和代碼,展示了ASP.NET Core MVC的方方面面,揭示了如何用ASP.NET Core MV構建Web應用程序。3.第7版新增了大量內容:·Visual Studio、C#、Entity Framework、.NET Core 2的功能;·配置應用包的方法;·Visual Studio Code的用法和在非Windows平臺上使用等
●第一部分ASP.NETCoreMVC
第1章ASP.NETCoreMVC背景2
1.1ASP.NETCoreMVC的歷史2
1.1.1ASP.NETWebForms2
1.1.2起初的MVC框架3
1.2ASP.NETCore3
1.2.1ASP.NETCoreMVC2的新特性4
1.2.2ASP.NETCoreMVC的主要優點4
1.3預備知識6
1.4本書的結構6
1.5如何獲取本書的示例代碼6
1.6聯繫作者6
1.7小結7
第2章少有MVC應用程序8
2.1安裝VisualStudio8
2.2安裝.NETCore2.0SDK9
2.3創建新的ASP.NETCoreMVC項目9
2.3.1添加控制器11
2.3.2理解路由13
2.4渲染頁面14
2.4.1創建並渲染視圖14
2.4.2添加動態輸出16
2.5創建一個簡單的數據錄入程序17
2.5.1設置場景17
2.5.2設計數據模型18
2.5.3創建第二個操作和強類型視圖18
2.5.4鏈接操作方法19
2.5.5建立表單20
2.5.6接收表單數據21
2.5.7顯示響應25
2.5.8添加驗證27
2.5.9設置內容樣式31
2.6小結35
第3章MVC模式、項目與約定36
3.1MVC簡史36
3.2MVC模式36
3.2.1模型36
3.2.2控制器37
3.2.3視圖37
3.2.4MVC的ASP.NET實現37
3.3MVC與其他模式的比較38
3.3.1“智能UI”模式38
3.3.2理解模型-視圖架構39
3.3.3經典的3層架構39
3.3.4MVC的多樣性40
3.4ASP.NETCoreMVC項目40
3.4.1創建項目41
3.4.2關於MVC的約定43
3.5小結44
第4章C#基本特性45
4.1準備示例項目45
4.1.1啟用ASP.NETCoreMVC46
4.1.2創建MVC應用程序組件47
4.2運用null條件運算符48
4.2.1null條件運算符的連接運算49
4.2.2聯合使用null條件運算符和null合並運算符50
4.3使用自動實現屬性51
4.3.1初始化自動實現屬性51
4.3.2創建隻讀的自動實現屬性52
4.4使用字符串插值53
4.5使用對像和集合初始化器54
4.6模式匹配56
4.7使用擴展方法58
4.7.1將擴展方法應用於接口59
4.7.2創建過濾擴展方法60
4.8使用Lambda表達式61
4.8.1定義函數63
4.8.2使用Lambda表達式實現方法和屬性65
4.9使用類型推斷和匿名類型66
4.10使用異步方法68
4.10.1直接使用任務69
4.10.2使用async和await關鍵字70
4.11獲取名稱71
4.12小結72
第5章使用Razor73
5.1準備示例項目73
5.1.1定義模型74
5.1.2創建控制器74
5.1.3創建視圖75
5.2使用模型對像75
5.3使用布局78
5.3.1創建布局78
5.3.2使用布局80
5.3.3應用視圖啟動文件80
5.4使用Razor表達式81
5.4.1插入數據82
5.4.2設置屬性值83
5.4.3使用條件語句84
5.4.4枚舉數組和集合85
5.5小結86
第6章使用VisualStudio87
6.1準備示例項目87
6.1.1創建模型87
6.1.2創建控制器和視圖88
6.2管理軟件包89
6.2.1NuGet89
6.2.2Bower91
6.3迭代開發93
6.3.1修改Razor視圖93
6.3.2對C#類進行更改94
6.3.3使用瀏覽器鏈接99
6.4部署JavaScript和CSS102
6.4.1啟用靜態內容傳遞102
6.4.2為項目添加靜態內容103
6.4.3更新視圖104
6.4.4MVC應用程序中的打包和縮小105
6.5小結108
第7章對MVC應用程序測試109
7.1準備示例項目109
7.1.1啟用內置的標簽助手109
7.1.2為控制器添加操作方法110
7.1.3創建數據輸入表單110
7.1.4更新Index視圖111
7.2測試MVC應用程序112
7.2.1測試項目112
7.2.2創建項目引用113
7.2.3編寫並測試115
7.2.4隔離組件以測試116
7.3測試123
7.3.1參測試123
7.3.2改進假的實現126
7.4小結129
第8章SportsStore應用程序130
8.1準備開始130
8.1.1創建MVC項目130
8.1.2測試項目133
8.1.3測試和啟動應用程序134
8.2開始領域模型開發134
8.2.1創建存儲庫135
8.2.2創建虛擬存儲庫135
8.2.3注冊存儲庫服務136
8.3顯示產品清單137
8.3.1添加一個控制器137
8.3.2添加並配置視圖138
8.3.3設置默認路由139
8.3.4運行應用程序140
8.4準備數據庫140
8.4.1安裝EntityFrameworkCore工具包141
8.4.2創建數據庫類141
8.4.3創建存儲庫類142
8.4.4定義連接字符串142
8.4.5配置應用程序143
8.4.6創建數據庫遷移145
8.4.7創建種子數據145
8.5添加分頁148
8.5.1顯示頁面鏈接149
8.5.2改進URL155
8.6更改內容樣式157
8.6.1安裝Bootstrap包157
8.6.2將Bootstrap樣式應用於布局157
8.6.3創建分部視圖159
8.7小結160
第9章SportsStore的導航161
9.1添加導航控件161
9.1.1過濾產品列表161
9.1.2優化URL結構164
9.1.3構建類別導航菜單167
9.1.4更正頁數172
9.2構建購物車174
9.2.1定義購物車模型174
9.2.2添加AddToCart按鈕177
9.2.3啟用會話179
9.2.4實現Cart控制器180
9.2.5顯示購物車的內容181
9.3小結183
第10章完成購物車184
10.1使用服務優化購物車模型184
10.1.1創建支持存儲感知的Cart類184
10.1.2注冊服務185
10.1.3簡化Cart控制器185
10.2完成購物車功能186
10.2.1從購物車中刪除商品186
10.2.2添加購物車摘要小部件188
10.3提交訂單190
10.3.1創建模型類190
10.3.2添加結賬流程191
10.3.3實現訂單處理193
10.3.4完成Order控制器195
10.3.5顯示驗證錯誤198
10.3.6顯示摘要頁面199
10.4小結199
第11章SportsStore的管理200
11.1管理訂單200
11.1.1增強模型200
11.1.2添加操作方法和視圖201
11.2添加目錄管理203
11.2.1創建CRUD控制器203
11.2.2實現列表視圖205
11.2.3編輯商品206
11.2.4創建新的商品216
11.2.5刪除商品217
11.3小結220
第12章SportsStore的安全和部署221
12.1保護管理功能221
12.1.1創建身份標識數據庫221
12.1.2應用基本授權策略224
12.1.3創建賬戶控制器和視圖226
12.1.4測試安全策略229
12.2部署應用程序229
12.2.1創建數據庫230
12.2.2準備應用程序231
12.2.3應用數據庫遷移234
12.2.4管理數據庫填充234
12.2.5部署應用程序237
12.3小結239
第13章使用VisualStudioCode240
13.1設置開發環境240
13.1.1安裝Node.js240
13.1.2檢查Node.js安裝狀態241
13.1.3安裝Git241
13.1.4檢查Git安裝狀態241
13.1.5安裝Bower241
13.1.6安裝.NETCore242
13.1.7檢查.NETCore安裝狀態242
13.1.8安裝VisualStudioCode242
13.1.9檢查VisualStudioCode安裝狀態243
13.1.10安裝VisualStudioCode的C#擴展243
13.2創建ASP.NETCode項目244
13.3使用VisualStudioCode準備項目244
13.3.1管理客戶端軟件包245
13.3.2配置應用程序246
13.3.3構建和運行項目246
13.4重新創建PartyInvites應用程序246
13.4.1創建模型和存儲庫247
13.4.2創建數據庫249
13.4.3創建控制器和視圖250
13.5VisualStudioCode測試254
13.5.1測試254
13.5.2運行測試255
13.6小結255
第二部分ASP.NETCoreMVC詳解
第14章配置應用程序257
14.1準備示例項目257
14.2配置項目259
14.2.1將包添加到項目中259
14.2.2將工具包添加到項目中261
14.3理解Program類261
14.4了解Startup類264
14.4.1了解ASP.NET服務266
14.4.2了解ASP.NET中間件268
14.4.3了解如何調用Configure方法275
14.4.4添加其他中間件278
14.5配置應用程序281
14.5.1創建JSON配置文件283
14.5.2使用配置數據284
14.5.3配置日志記錄285
14.5.4配置依賴注入288
14.6配置MVC服務289
14.7處理復雜配置290
14.7.1創建不同的外部配置文件290
14.7.2創建不同的配置方法292
14.7.3創建不同的配置類293
14.8小結294
第15章URL路由295
15.1準備示例項目295
15.1.1創建模型類296
15.1.2創建Example控制器296
15.1.3創建視圖298
15.2介紹URL模式299
15.3創建和注冊簡單路由299
15.4定義默認值300
15.5使用靜態URL片段303
15.6定義自定義片段變量306
15.6.1使用自定義片段變量作為操作方法的參數308
15.6.2定義可選的URL片段309
15.6.3定義可變長度路由311
15.7約束路由312
15.7.1使用正則表達式約束路由314
15.7.2使用類型和值約束316
15.7.3組合約束316
15.7.4定義自定義約束318
15.8使用特性路由320
15.8.1準備特性路由320
15.8.2應用特性路由321
15.8.3應用路由約束323
15.9小結323
第16章高級路由特性324
16.1準備示例項目324
16.2在視圖中生成傳出的URL325
16.2.1創建傳出的鏈接326
16.2.2創建非鏈接的URL333
16.3自定義路由繫統334
16.3.1更改路由繫統配置335
16.3.2創建自定義路由類336
16.4使用區域344
16.4.1創建區域344
16.4.2創建區域路由345
16.4.3填充區域346
16.4.4生成區域中指向操作的鏈接347
16.5URL模式很好實踐348
16.5.1保持URL的整潔性348
16.5.2GET方法和 T方法:選擇最合適的方法349
16.6小結349
第17章控制器和操作350
17.1準備示例項目350
17.2理解控制器353
17.3創建控制器353
17.3.1創建POCO控制器353
17.3.2使用控制器基類355
17.4接收上下文數據355
17.4.1從Context對像中接收數據356
17.4.2使用操作方法參數359
17.5生成響應360
17.5.1使用Context對像生成響應360
17.5.2理解操作結果361
17.5.3生成HTML響應362
17.5.4執行重定向369
17.5.5返回不同類型的內容374
17.5.6響應文件的內容376
17.5.7返回錯誤和HTTP狀態碼377
17.5.8理解其他操作結果類378
17.6小結378
第18章依賴注入379
18.1準備示例項目379
18.1.1創建模型和存儲庫380
18.1.2創建控制器和視圖381
18.1.3測試項目383
18.2創建松散耦合的組件383
18.3ASP.NET的依賴注入387
18.3.1準備依賴注入388
18.3.2配置服務提供者389
18.3.3對具有依賴項的控制器測試390
18.3.4使用依賴關繫鏈390
18.3.5對具體類型使用依賴注入393
18.4服務的生命周期394
18.4.1使用瞬態生命周期395
18.4.2使用作用域的生命周期398
18.4.3使用單例生命周期399
18.5使用操作注入400
18.6使用屬性注入特性401
18.7手動請求實現對像401
18.8小結402
第19章過濾器403
19.1準備示例項目403
19.1.1啟用SSL404
19.1.2創建控制器和視圖404
19.2使用過濾器405
19.3實現過濾器408
19.4使用授權過濾器409
19.5使用操作過濾器412
19.5.1創建操作過濾器412
19.5.2創建異步操作過濾器414
19.6使用結果過濾器414
19.6.1創建結果過濾器415
19.6.2創建異步結果過濾器416
19.6.3創建混合操作/結果過濾器417
19.7使用異常過濾器419
19.8為過濾器使用依賴注入421
19.8.1解決過濾器依賴項421
19.8.2管理過濾器的生命周期424
19.9創建全局過濾器426
19.10理解和更改過濾器的執行順序428
19.11小結430
第20章API控制器431
20.1準備示例項目431
20.1.1創建模型和存儲庫431
20.1.2創建控制器和視圖433
20.2REST控制器的作用435
20.2.1速度問題435
20.2.2效率問題436
20.2.3開放性問題436
20.3REST和API控制器436
20.3.1創建API控制器437
20.3.2測試API控制器440
20.3.3在瀏覽器中使用API控制器443
20.4內容格式445
20.4.1默認內容策略445
20.4.2內容協商446
20.4.3指定action數據格式448
20.4.4從路由或查詢字符串獲取數據格式449
20.4.5啟用完成內容協商450
20.4.6接收不同的數據格式451
20.5小結452
第21章視圖453
21.1準備示例項目453
21.2創建自定義視圖引擎454
21.2.1創建自定義IView456
21.2.2創建IViewEngine實現456
21.2.3注冊自定義視圖引擎457
21.2.4測試視圖引擎458
21.3使用Razor引擎459
21.3.1準備示例項目459
21.3.2Razor視圖461
21.4將動態內容添加到Razor視圖中463
21.4.1使用布局部分464
21.4.2使用分部視圖468
21.4.3將JSON內容添加到視圖中469
21.5配置Razor471
21.6小結475
第22章視圖組件476
22.1準備示例項目476
22.1.1創建模型和存儲庫476
22.1.2創建控制器和視圖478
22.1.3配置應用程序480
22.2視圖組件481
22.3創建視圖組件481
22.3.1創建POCO視圖組件482
22.3.2從ViewComponent基類派生483
22.3.3視圖組件結果484
22.3.4獲取上下文數據487
22.3.5創建異步視圖組件491
22.4創建混合的控制器/視圖組件類493
22.4.1創建混合視圖493
22.4.2應用混合類495
22.5小結495
第23章標簽助手496
23.1準備示例項目496
23.1.1創建模型和存儲庫496
23.1.2創建控制器、布局與視圖497
23.1.3配置應用程序499
23.2創建標簽助手500
23.2.1定義標簽助手類501
23.2.2注冊標簽助手503
23.2.3使用標簽助手503
23.2.4管理標簽助手的作用域505
23.3高級標簽助手特性508
23.3.1創素508
23.3.2前置和追加素510
23.3.3使用依賴注入獲取視圖上下文數據512
23.3.4使用視圖模型514
23.3.5協調標簽助手516
23.3.6抑素517
23.4小結518
第24章使用表單標簽助手519
24.1準備示例項目519
24.2使用f素521
24.2.1設置form目標521
24.2.2使用防偽特性522
24.3使用in素524
24.3.1配置in素524
24.3.2格式化數據526
24.4使用la素528
24.5使用select和opt素529
24.5.1使用數據源填充sel素530
24.5.2從枚舉中生成opt素531
24.6使用texta素535
24.7驗證表單標簽助手536
24.8小結536
第25章使用其他內置標簽助手537
25.1準備示例項目537
25.2使用宿主環境標簽助手538
25.3使用JavaScript和CSS標簽助手539
25.3.1管理JavaScript文件539
25.3.2管理CSS樣式表545
25.4使用素547
25.5使素548
25.6使用數據緩存549
25.6.1設置緩存過期時間551
25.6.2使用緩存變體552
25.7小結555
第26章模型綁定556
26.1準備示例項目556
26.1.1創建模型和存儲庫556
26.1.2創建控制器和視圖558
26.1.3配置應用559
26.2理解模型綁定560
26.2.1默認綁定值561
26.2.2綁定簡單值562
26.2.3綁定復雜類型562
26.2.4綁定數組和集合570
26.3指定模型綁定源575
26.3.1選擇標準綁定源576
26.3.2使用請求頭作為綁定源577
26.3.3使用請求體作為綁定源579
26.4小結581
第27章模型驗證582
27.1準備示例項目582
27.1.1創建模型583
27.1.2創建控制器583
27.1.3創建布局和視圖584
27.2理解模型驗證的需求586
27.3顯式地驗證模型586
27.3.1為用戶顯示驗證錯誤消息588
27.3.2顯示驗證消息589
27.3.3顯示屬性級驗證消息592
27.3.4顯示模型級驗證消息593
27.數據指定驗證規則595
27.5執行客戶端驗證599
27.6執行遠程驗證601
27.7小結603
第28章ASP.NETCoreIdentity入門604
28.1準備示例項目604
28.2設置ASP.NETCoreIdentity607
28.2.1創建用戶類607
28.2.2創建數據庫上下文類608
28.2.3配置數據庫連接串608
28.2.4創建ASP.NETCoreIdentity數據庫610
28.3使用ASP.NETCoreIdentity610
28.3.1列舉用戶賬戶610
28.3.2創建用戶612
28.3.3驗證密碼615
28.3.4驗證用戶詳情620
28.4完成管理功能624
28.4.1實現刪除功能625
28.4.2實現編輯功能626
28.5小結629
第29章應用ASP.NETCoreIdentity630
29.1準備示例項目630
29.2驗證用戶630
29.2.1準備實現驗證632
29.2.2添加用戶驗證634
29.2.3測試驗證636
29.3使用角色授權用戶636
29.3.1創建與刪除角色637
29.3.2管理角色成員641
29.3.3使用角色進行授權644
29.4播種數據庫647
29.5小結650
第30章ASP.NETCoreIdentity進階651
30.1準備示例項目651
30.2添加自定義用戶屬性652
30.2.1準備數據庫遷移654
30.2.2測試自定義屬性655
30.3使用聲明和策略655
30.3.1聲明656
30.3.2創建聲明659
30.3.3使用策略661
30.3.4使用策略對資源授權訪問666
30.4使用第三方驗證670
30.4.1注冊Google應用670
30.4.2啟用Google驗證671
30.5小結674
第31章模型約定與操作約束675
31.1準備示例項目675
31.2使用應用程序模型和模型約定677
31.2.1理解應用程序模型678
31.2.2理解模型約定角色680
31.2.3創建模型約定680
31.2.4理解模型約定的執行順序684
31.2.5創建全局模型約定685
31.3使用操作約束686
31.3.1準備示例項目687
31.3.2操作約束的作用688
31.3.3創建操作約束689
31.3.4在操作約束中處理依賴692
31.4小結694
本書詳細解釋ASP.NET Core MVC的架構、功能和應用,深入闡述構建現代可擴展的Web應用程序的工具、技術和方法,揭示如何為.NET Core平臺創建輕型的移動端應用程序。本書主要內容包括MVC模式、C#基本特性、Razor、Visual Studio、MVC應用程測試、實際應用程序的創建、URL路由、高級路由特性、控制器、依賴注入、過濾器、API控制器、視圖、視圖組件、標簽助手、模型綁定、模型驗證、ASP.NET Core Identity、模型約定和操作約束等。本書適合.NET開發人員和Web開發人員閱讀,也可供計算機相關專業的師生閱讀。