|
-- 會員 / 註冊 --
|
|
|
|
精通 ASP.NET MVC 5 ( 簡體 字) |
作者:【美】弗瑞曼 A. ( Adam Freeman ) | 類別:1. -> 程式設計 -> .NET -> ASP.NET |
譯者: |
出版社:人民郵電出版社 | 3dWoo書號: 43182 詢問書籍請說出此書號!【缺書】 NT售價: 495 元 |
出版日:1/1/2016 |
頁數:642 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787115410238 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介: ASP.NET MVC 5框架是微軟ASP.NET Web平臺的新進展。它提供了高生產率的編程模型,結合ASP.NET的全部優勢,促成更整潔的代碼架構、測試驅動開發和強大的可擴展性。 本書涵蓋ASP.NET MVC 5的所有開發優勢技術,包括用C#屬性定義路由技術及重寫過濾器技術等。且構建MVC應用程序的用戶體驗也有本質上的改進。其中書里也專一講解了用新Visual Studio 2013創建MVC應用程序時的技術和技巧。本書包括完整的開發工具介紹以及對代碼進行輔助編譯和調試的技術。 本書還涉及流行的Bootstrap JavaScript庫,該庫現已被納入到MVC 5之中,為開發人員提供更廣泛的多平臺CSS和HTML5選項,而不必像以前那樣去加載大量的第三方庫。 本書適合程序員、Web開發者學習,也適合作為大中專院校相關專業的師生用書和培訓學校的教材。 |
目錄:第1章 ASP.NET MVC背景 1 1.1 理解ASP.NET歷史 1 1.2 當今的Web開發 3 1.2.1 Web標準與REST 3 1.2.2 敏捷與測試驅動開發 3 1.2.3 Ruby on Rails 4 1.2.4 Node.js 4 1.3 ASP.NET MVC的關鍵優點 5 1.3.1 MVC的體系結構 5 1.3.2 可擴展性 5 1.3.3 HTML和HTTP上的嚴密控制 6 1.3.4 可測試性 6 1.3.5 強大的路由系統 7 1.3.6 建立在ASP.NET平臺的精華之上 7 1.3.7 現代API 7 1.3.8 ASP.NET MVC是開源的 8 1.4 本書的預備知識 8 1.5 本書的結構 8 1.5.1 第1部分:ASP.NET MVC 5導論 8 1.5.2 第2部分:ASP.NET MVC細節 8 1.6 本版的新特點 9 1.7 獲取示例代碼 9 1.8 本書所需的軟件 10 1.9 誠信 10 1.10 小結 10 第2章 第一個MVC應用程序 11 2.1 準備Visual Studio 11 2.2 創建新的ASP.NET MVC項目 11 2.2.1 添加第一個控制器 13 2.2.2 理解路由 16 2.3 渲染Web頁面 16 2.3.1 創建并渲染視圖 16 2.3.2 添加動態輸出 20 2.4 創建一個簡單的數據錄入應用程序 21 2.4.1 設置場景 21 2.4.2 設計一個數據模型 22 2.4.3 鏈接動作方法 23 2.4.4 建立表單 25 2.4.5 設置啟動URL 27 2.4.6 處理表單 28 2.4.7 添加驗證 31 2.4.8 設置內容樣式 35 2.4.9 完成示例 40 2.5 小結 41 第3章 MVC模式 42 3.1 MVC簡史 42 3.2 理解MVC模式 42 3.2.1 理解域模型 43 3.2.2 MVC的ASP.NET實現 44 3.2.3 MVC與其他模式比較 44 3.3 建立松耦合組件 47 3.3.1 使用依賴項注入 48 3.3.2 使用依賴項注入容器 49 3.4 自動測試初步 50 3.4.1 理解單元測試 51 3.4.2 理解集成測試 55 3.5 小結 56 第4章 基本語言特性 57 4.1 準備示例項目 57 4.2 使用自動實現的屬性 59 4.3 使用對象與集合的初始化器 62 4.4 使用擴展方法 64 4.4.1 對接口運用擴展方法 65 4.4.2 創建過濾擴展方法 67 4.5 使用lambda表達式 69 4.6 使用自動類型接口 72 4.7 使用匿名類型 72 4.8 執行語言集成查詢(LINQ) 74 4.9 使用Async方法 78 4.10 小結 81 第5章 使用Razor 82 5.1 準備示例項目 82 5.1.1 定義模型 82 5.1.2 定義控制器 83 5.1.3 創建視圖 83 5.2 使用模型對象 84 5.3 使用布局 86 5.3.1 創建布局 86 5.3.2 運用布局 88 5.3.3 使用視圖起始文件 88 5.3.4 演示共享布局 89 5.4 使用Razor表達式 92 5.4.1 插入數據值 93 5.4.2 設置標簽屬性的值 94 5.4.3 使用條件語句 96 5.4.4 枚舉數組和集合 98 5.4.5 處理命名空間 99 5.5 小結 100 第6章 MVC基本工具 101 6.1 準備示例項目 102 6.1.1 創建模型類 102 6.1.2 添加控制器 103 6.1.3 添加視圖 104 6.2 使用Ninject 104 6.2.1 理解問題 105 6.2.2 將Ninject添加到Visual Studio項目 106 6.2.3 Ninject初步 107 6.2.4 建立MVC的依賴項注入 108 6.2.5 創建依賴項鏈 111 6.2.6 指定屬性和構造器參數值 112 6.2.7 使用條件綁定 114 6.2.8 設置對象作用域 115 6.3 Visual Studio的單元測試 117 6.3.1 創建單元測試項目 117 6.3.2 添加單元測試 119 6.3.3 運行單元測試(并失敗) 122 6.3.4 實現特性 123 6.3.5 測試并修正代碼 123 6.4 使用Moq庫 124 6.4.1 理解問題 125 6.4.2 將Moq添加到Visual Studio項目 126 6.4.3 對單元測試添加模仿對象 126 6.4.4 創建更復雜的模仿對象 129 6.5 小結 131 第7章 SportsStore:一個真正的應用程序 132 7.1 開始 133 7.1.1 創建Visual Studio解決方案和項目 133 7.1.2 安裝工具包 134 7.1.3 添加項目之間的引用 135 7.1.4 設置DI容器 135 7.1.5 運行應用程序 136 7.2 從域模型開始 137 7.2.1 創建抽象存儲庫 137 7.2.2 創建模仿存儲庫 138 7.3 顯示產品列表 139 7.3.1 添加控制器 139 7.3.2 添加布局、視圖起始文件及視圖 140 7.3.3 設置默認路由 142 7.3.4 運行應用程序 143 7.4 準備數據庫 143 7.4.1 創建數據庫 144 7.4.2 定義數據庫方案 145 7.4.3 向數據庫添加數據 147 7.4.4 創建Entity Framework上下文 148 7.4.5 創建Product存儲庫 149 7.5 添加分頁 151 7.5.1 顯示頁面鏈接 152 7.5.2 改進URL 160 7.6 設置內容樣式 161 7.6.1 安裝Bootstrap包 161 7.6.2 在布局中運用Bootstrap樣式 162 7.6.3 創建分部視圖 163 7.7 小結 165 第8章 SportsStore:導航 166 8.1 添加導航控件 166 8.1.1 過濾產品列表 166 8.1.2 調整URL方案 170 8.1.3 建立分類導航菜單 172 8.1.4 修正頁面計數 178 8.2 創建購物車 180 8.2.1 定義購物車實體 180 8.2.2 添加“加入購物車”按鈕 184 8.2.3 實現購物車控制器 185 8.2.4 顯示購物車內容 186 8.3 小結 188 第9章 SportsStore:完成購物車 189 9.1 使用模型綁定 189 9.2 完成購物車功能 193 9.2.1 刪除購物車物品 194 9.2.2 添加購物車摘要 195 9.3 遞交訂單 197 9.3.1 擴充域模型 197 9.3.2 添加結算過程 198 9.3.3 實現訂單處理器 203 9.3.4 注冊接口實現 206 9.3.5 完成購物車控制器 207 9.3.6 顯示驗證錯誤 210 9.3.7 顯示致謝頁面 212 9.4 小結 212 第10章 SportsStore:移動版 213 10.1 移動Web開發的背景 213 10.2 使用響應式設計 214 10.2.1 創建響應式頁頭 215 10.2.2 創建響應式的產品列表 218 10.3 創建移動專用的內容 225 10.3.1 創建移動布局 225 10.3.2 創建移動視圖 226 10.4 小結 229 第11章 SportsStore:管理 230 11.1 添加分類管理 230 11.1.1 創建CRUD控制器 230 11.1.2 創建新的布局 232 11.1.3 實現List視圖 233 11.1.4 編輯產品 236 11.1.5 創建新產品 248 11.1.6 刪除產品 251 11.2 小結 253 第12章 SportsStore:安全性與收尾工作 254 12.1 實現管理控制器的安全 254 12.1.1 創建基本的安全策略 254 12.1.2 運用過濾器進行授權 256 12.1.3 創建認證提供器 257 12.1.4 創建Account控制器 259 12.1.5 創建視圖 260 12.2 圖像上傳 263 12.2.1 擴展數據庫 263 12.2.2 增強域模型 263 12.2.3 創建上傳用戶界面的元素 264 12.2.4 將圖像保存到數據庫 266 12.2.5 實現GetImage動作方法 268 12.2.6 顯示產品圖像 270 第13章 部署 272 13.1 Windows Azure的準備 273 13.1.1 創建Web網站和數據庫 273 13.1.2 準備遠程管理數據庫 275 13.1.3 創建數據庫模式 275 13.2 部署應用程序 278 13.3 小結 280 第14章 MVC項目綜述 281 14.1 使用Visual Studio的MVC項目 281 14.1.1 創建項目 281 14.1.2 理解MVC約定 284 14.2 調試MVC應用程序 286 14.2.1 準備示例項目 286 14.2.2 運行Visual Studio調試器 288 14.2.3 引發Visual Studio調試器中斷 290 14.2.4 使用編輯并繼續 293 14.3 使用瀏覽器鏈接 296 14.4 小結 297 第15章 URL路由 298 15.1 創建示例項目 299 15.1.1 創建示例控制器 299 15.1.2 創建視圖 300 15.1.3 設置起始URL并測試應用程序 301 15.2 URL模式 301 15.3 創建并注冊一條簡單路由 303 15.4 定義默認值 308 15.5 使用靜態URL片段 310 15.6 定義自定義片段變量 313 15.6.1 用自定義變量作為動作方法參數 315 15.6.2 定義可選URL片段 316 15.6.3 定義可變長路由 318 15.6.4 按命名空間區分控制器優先順序 319 15.7 約束路由 322 15.7.1 用正則表達式約束路由 322 15.7.2 將一條路由約束到一組指定的值 323 15.7.3 使用HTTP方法約束路由 324 15.7.4 定義自定義約束 327 15.8 使用屬性路由 329 15.8.1 啟用和運用屬性路由 329 15.8.2 使用片段變量創建路由 331 15.8.3 運用路由約束 332 15.8.4 使用Route Prefix 333 15.9 小結 334 第16章 高級路由特性 335 16.1 準備示例項目 335 16.1.1 簡化路由 336 16.1.2 添加優化包 336 16.1.3 更新單元測試項目 336 16.2 在視圖中生成輸出URL 337 16.2.1 用路由系統生成輸出URL 337 16.2.2 以其他控制器為目標 339 16.2.3 傳遞額外的值 341 16.2.4 指定HTML標簽屬性 343 16.2.5 生成鏈接中的全限定URL 343 16.2.6 生成URL(而不是鏈接) 344 16.2.7 在動作方法中生成輸出URL 345 16.2.8 根據指定路由生成URL 346 16.3 定制路由系統 347 16.3.1 創建自定義的RouteBase實現 347 16.3.2 創建自定義路由處理程序 352 16.4 使用區域 353 16.4.1 創建一個區域 353 16.4.2 填充區域 355 16.4.3 解析不明確的控制器問題 356 16.4.4 使用屬性創建區域 357 16.4.5 生成對區域動作的鏈接 358 16.5 對磁盤文件進行路由請求 359 16.5.1 配置應用程序服務器 360 16.5.2 為磁盤文件定義路由 361 16.6 繞過路由系統 362 16.7 URL方案最佳做法 363 16.7.1 使URL整潔和人性化 363 16.7.2 GET和POST:選用正確的一個 364 16.8 小結 364 第17章 控制器和動作 365 17.1 準備示例項目 365 17.2 控制器介紹 366 17.2.1 使用IController創建控制器 366 17.2.2 創建派生于Controller類的控制器 368 17.3 接收請求數據 370 17.3.1 通過上下文對象獲取數據 370 17.3.2 使用動作方法參數 371 17.4 產生輸出 373 17.4.1 理解動作結果 375 17.4.2 通過渲染視圖返回HTML 378 17.4.3 將數據從動作方法傳遞給視圖 381 17.4.4 執行重定向 385 17.4.5 返回錯誤及HTTP代碼 389 17.5 小結 391 第18章 過濾器 392 18.1 準備示例項目 392 18.2 使用過濾器 394 18.2.1 過濾器類型介紹 396 18.2.2 將過濾器運用于控制器和動作方法 396 18.3 使用授權過濾器 397 18.3.1 運用自定義授權過濾器 399 18.3.2 使用內建的授權過濾器 399 18.4 使用認證過濾器 400 18.4.1 理解IAuthenticationFilter接口 400 18.4.2 實現認證檢查 402 18.4.3 組合認證和授權過濾器 404 18.4.4 處理最終有疑問的請求 405 18.5 使用異常過濾器 406 18.5.1 創建異常過濾器 406 18.5.2 運用異常過濾器 407 18.5.3 使用視圖來響應異常 409 18.5.4 使用內建的異常過濾器 411 18.6 使用動作過濾器 414 18.6.1 實現OnActionExecuting方法 414 18.6.2 實現OnActionExecuted方法 416 18.7 使用結果過濾器 417 18.8 使用其他過濾器特性 420 18.8.1 無注解屬性的過濾 420 18.8.2 使用全局過濾器 422 18.8.3 對過濾器執行進行排序 424 18.8.4 重載過濾器 426 18.9 小結 428 第19章 控制器可擴展性 429 19.1 準備示例項目 430 19.2 創建自定義控制器工廠 431 19.2.1 處理備用控制器 433 19.2.2 實例化控制器類 434 19.2.3 實現其他接口方法 434 19.2.4 注冊自定義控制器工廠 435 19.3 使用內建的控制器工廠 435 19.3.1 命名空間優先排序 436 19.3.2 定制DefaultControllerFactory的控制器實例化 437 19.4 創建自定義動作調用器 439 19.5 使用內建的動作調用器 441 19.5.1 使用自定義動作名 441 19.5.2 使用動作方法選擇 443 19.6 用特殊控制器改善性能 447 19.6.1 使用無會話控制器 448 19.6.2 使用異步控制器 450 19.7 小結 454 第20章 視圖 455 20.1 創建自定義視圖引擎 455 20.1.1 準備示例項目 458 20.1.2 創建自定義的IView 458 20.1.3 創建IViewEngine實現 459 20.1.4 注冊自定義視圖引擎 460 20.1.5 測試視圖引擎 461 20.2 使用Razor引擎 462 20.2.1 準備示例項目 462 20.2.2 理解Razor視圖渲染 463 20.2.3 配置視圖搜索位置 464 20.3 對Razor視圖添加動態內容 467 20.3.1 使用分段 467 20.3.2 使用分部視圖 472 20.3.3 使用子動作 474 20.4 小結 476 第21章 輔助器方法 477 21.1 準備示例項目 477 21.1.1 設置啟動URL 478 21.1.2 測試示例應用程序 478 21.2 創建自定義輔助器方法 479 21.2.1 創建內聯的輔助器方法 479 21.2.2 創建外部輔助器方法 481 21.2.3 管理輔助器方法中的字符串編碼 484 21.3 使用內建的Form輔助器方法 487 21.3.1 創建Form元素 487 21.3.2 指定表單使用的路由 493 21.3.3 使用輸入輔助器 495 21.3.4 創建Select元素 499 21.4 小結 501 第22章 模板輔助器方法 502 22.1 準備示例項目 502 22.2 使用模板輔助器方法 504 22.2.1 生成標簽和顯示元素 508 22.2.2 使用整體模型模板輔助器 510 22.3 使用模型元數據 512 22.3.1 用元數據控制編輯及可見性 512 22.3.2 使用用于標簽的元數據 514 22.3.3 使用用于數據值的元數據 515 22.3.4 用元數據選擇顯示模板 517 22.3.5 將元數據運用于伙伴類 518 22.3.6 使用復合類型屬性 520 22.4 定制模板視圖輔助器系統 521 22.4.1 創建自定義編輯器模板 521 22.4.2 創建泛型模板 522 22.4.3 替換內建模板 524 22.5 小結 524 第23章 URL和Ajax輔助器方法 525 23.1 準備示例項目 525 23.1.1 定義附加的CSS樣式 526 23.1.2 安裝NuGet包 527 23.2 創建基本的鏈接和URL 527 23.3 使用MVC的漸進式Ajax 529 23.3.1 創建同步表單視圖 529 23.3.2 為漸進式Ajax準備項目 531 23.4 創建漸進式Ajax表單 532 23.4.1 準備控制器 532 23.4.2 創建Ajax表單 534 23.4.3 理解漸進式Ajax工作原理 535 23.5 設置Ajax選項 536 23.5.1 確保優雅降級 536 23.5.2 在Ajax請求期間給用戶提供反饋 538 23.5.3 請求之前對用戶進行提示 539 23.6 創建Ajax鏈接 539 23.7 使用Ajax回調 541 23.8 使用JSON 543 23.8.1 對控制器添加JSON支持 544 23.8.2 在瀏覽器中處理JSON 545 23.8.3 準備編碼數據 547 23.8.4 在動作方法中檢測Ajax請求 548 23.9 小結 550 第24章 模型綁定 551 24.1 準備示例項目 551 24.2 理解模型綁定 553 24.3 使用默認模型綁定器 555 24.3.1 綁定簡單類型 556 24.3.2 綁定復雜類型 558 24.3.3 綁定到數組和集合 564 24.4 手工調用模型綁定 569 24.5 定制模型綁定系統 571 24.5.1 創建自定義值提供器 571 24.5.2 創建自定義模型綁定器 574 24.5.3 注冊自定義模型綁定器 576 24.6 小結 577 第25章 模型驗證 578 25.1 準備示例項目 578 25.1.1 創建布局 579 25.1.2 創建視圖 580 25.2 明確地驗證模型 581 25.3 顯示驗證消息 584 25.4 使用其他驗證技術 588 25.4.1 在模型綁定器內實施驗證 588 25.4.2 用元數據指定驗證規則 589 25.4.3 定義自驗證模型 595 25.5 執行客戶端驗證 596 25.5.1 啟用客戶端驗證 597 25.5.2 使用客戶端驗證 598 25.5.3 理解客戶端驗證機制 599 25.6 執行遠程驗證 600 25.7 小結 603 第26章 捆綁包 604 26.1 準備示例應用程序 604 26.1.1 添加NuGet包 604 26.1.2 創建模型和控制器 604 26.1.3 創建布局和視圖 605 26.2 腳本及樣式表加載的資料分析 608 26.3 使用腳本和樣式捆綁包 610 26.3.1 添加NuGet包 610 26.3.2 定義捆綁包 610 26.3.3 運用捆綁包 612 26.3.4 優化JavaScript和CSS文件 614 26.4 小結 615 第27章 Web API與單頁應用程序 616 27.1 理解單頁應用程序 616 27.2 準備示例項目 617 27.2.1 創建模型 617 27.2.2 添加NuGet包 619 27.2.3 添加控制器 619 27.2.4 添加布局和視圖 620 27.2.5 設置啟動位置并測試示例應用程序 622 27.3 使用Web API 623 27.3.1 創建Web API控制器 624 27.3.2 測試API控制器 624 27.4 理解API控制器的工作機制 626 27.4.1 理解API控制器的動作選擇 627 27.4.2 將HTTP方法映射到動作方法 628 27.5 將Knockout用于單頁應用程序 629 27.5.1 在布局中添加JavaScript庫 629 27.5.2 實現Summary 630 27.5.3 改善Delete特性 635 27.5.4 實現Create特性 636 27.6 完成應用程序 639 27.6.1 簡化Home控制器 639 27.6.2 管理內容的可見性 640 27.7 小結 642 |
序: |
|