MVC作為一種流行的應用程序開發框架已經存在多年。現在,Microsoft公司也加入了這個社區,ASP.NET
MVC框架為應用程序開發人員提供利用成熟開發模式,開發易于理解、易于測試和易于維護的應用程序的新利器。本書通過一個已經投產的代碼營網站實例,介紹了這個框架的方方面面,貫穿本書始終的是MVC框架的特性及其重要的設計理念(關注點分離、依賴注入等),一個完整的開發過程(包括建立模型、編碼和測試)為開發人員提供了熟悉這一新框架的極好示範,同時揭示了與成熟的MVC框架(如Ruby on
rails等)的比較以及互相借鑒之處。
本書適合于對MVC框架感興趣的ASP.NET開發人員,其中的許多設計原則和最佳實踐則可以適合于各種開發人員。
目錄
第1章 ASP.NET MVC入門
1.1 默認應用程序詳解
1.1.1 創建項目
1.1.2 第一個路由
1.1.3 運行啟動項目
1.2 第一個從頭開始創建的ASP.NET MVC控制器
1.3 我們的第一個視圖
1.4 確保應用程序可維護
1.5 測試控制器類
1.6 小結
第2章 深入模型
2.1 理解領域驅動設計基礎知識
2.2 本書所用的領域模型
2.2.1 關鍵實體和值對象
2.2.2 聚合體
2.2.3 領域模型的持久化
2.3 表現模型
2.3.1 表現模型的職責
2.3.2 從領域模型中投影
2.4 使用模型進行工作
2.4.1 制作路由
2.4.2 制作控制器動作
2.4.3 測試驅動特性
2.4.4 完成視圖
2.5 小結
第3章 深入控制器
3.1 控制器動作
3.2 簡單的控制器不需要視圖
3.3 測試控制器
3.3.1 測試RedirectController
3.3.2 明確依賴
3.3.3 使用測試替身
3.3.4 好的控制器單元測試的要素
3.4 簡單的動作和視圖
3.5 使用表單值
3.6 處理查詢字符串參數
3.7 在動作參數中綁定更復雜的對象
3.8 傳遞ViewData的選項
3.9 過濾器
3.10 小結
第4章 深入視圖
4.1 ASP.NET MVC與Web Forms的不同
4.2 文件夾結構和視圖基礎
4.3 視圖基礎概述
4.3.1 研究IViewEngine抽象
4.3.2 理解ASP.NET MVC中的母版頁
4.3.3 使用ViewData發送對象到視圖
4.3.4 局部視圖有助于分解復雜的界面
4.4 利用視圖創建動態界面
4.4.1 使用視圖助手和數據綁定呈現表單
4.4.2 將HTML表單回傳給服務器
4.4.3 驗證和錯誤報告
4.4.4 擴展HtmlHelper
4.5 小結
第5章 路由
5.1 什麼是路由
5.1.1 什麼是curl命令
5.1.2 用路由奪回URL控制權
5.2 設計一個URL架構
5.2.1 建立簡單、清晰的URL
5.2.2 建立可編程URL
5.2.3 允許URL參數沖突
5.2.4 保持URL簡短
5.2.5 盡量避免暴露數據庫ID
5.2.6 考慮添加不必要的信息
5.3 在ASP.NET MVC中實現路由
5.3.1 一個在線商店的URL架構
5.3.2 添加一個自定義的靜態路由
5.3.3 添加一個自定義的動態路由
5.3.4 catch-all路由
5.4 使用路由系統生成URL
5.5 為Code Camp Server創建路由
5.6 測試路由表現
5.7 將路由用于現有的ASP.NET項目
5.8 小結
第6章 自定義和擴展ASP.NET MVC框架
6.1 擴展URL路由
6.2 創建你自己的ControllerFactory
6.2.1 (ControllerFactory)實現
6.2.2 為控制器利用IoC
6.3 擴展控制器
6.3.1 創建一個可格式化控制器
6.3.2 使用動作過濾器
6.4 創建一個自定義視圖引擎
6.5 為ASP.NET MVC定制Visual Studio
6.5.1 創建自定義T4模板
6.5.2 添加一個自定義測試項目模板到新建項目向導
6.6 小結
第7章 復雜網站架構擴展
7.1 簡化大的控制器動作
7.2 嚴格控制視圖
7.2.1 使用和創建視圖助手
7.2.2 創建部分視圖
7.2.3 創建組件
7.3 使用動作過濾器裝入公用數據
7.4 將控制器組織到區域
7.4.1 捕捉用于一個請求的區域
7.4.2 創建具有區域支持的視圖引擎
7.4.3 全部連接起來
7.5 小結
第8章 利用現有ASP.NET特性
8.1 ASP.NET服務器控件
8.1.1 TextBox
8.1.2 其他常用控件
8.1.3 GridView
8.1.4 在哪里能得到這個好東西
8.2 狀態管理
8.2.1 緩存
8.2.2 會話狀態
8.2.3 Cookie
8.2.4 請求存儲
8.3 跟蹤和調試
8.3.1 TraceContext
8.3.2 健康監控
8.4 實現個性化和本地化
8.4.1 利用ASP.NET個性化
8.4.2 利用ASP.NET本地化
8.5 實現ASP.NET網站地圖
8.6 小結
第9章 ASP.NET MVC中的AJAX
9.1 用一個示例進入AJAX
9.2 使用ASP.NET Web Forms的AJAX
9.3 ASP.NET MVC中的AJAX
9.3.1 劫持Code Camp Server
9.3.2 AJAX與JASON
9.3.3 為控制器添加備用視圖格式
9.3.4 從視圖中消費JSON動作
9.3.5 AJAX助手
9.4 小結
第10章 宿主環境和部署
10.1 部署方案
10.2 XCOPY部署
10.3 部署到IIS 7
10.4 部署到IIS 6及更早版本
10.4.1 使用.aspx擴展配置路由
10.4.2 使用自定義擴展名配置路由
10.4.3 使用具有選擇禁用的通配符映射
10.4.4 使用URL重寫
10.5 自動化部署
10.5.1 采用持續集成
10.5.2 啟用按鈕操作的XCOPY部署
10.5.3 管理環境配置
10.6 小結
第11章 探索MonoRail和Ruby on Rails
11.1 MonoRail
11.1.1 特性概述
11.1.2 ActiveRecord和Windsor
11.1.3 可用于ASP.NET MVC中的MonoRail和Castle特性
11.2 Ruby on Rails
11.2.1 慣例優先于配置以及“Rails方式”
11.2.2 ActiveRecord
11.2.3 ActionPack
11.3 小結
第12章 最佳實踐
12.1 控制器
12.1.1 層次超類型(Layer Supertype)
12.1.2 過濾器
12.1.3 智能綁定器
12.1.4 硬編碼的字符串
12.1.5 獨立的視圖模型
12.1.6 驗證(Validation)
12.2 視圖
12.2.1 強類型視圖
12.2.2 與重復戰斗
12.2.3 括號表達式
12.3 路由
12.3.1 測試路由
12.3.2 動作命名
12.4 測試
12.4.1 控制器單元測試
12.4.2 模型綁定器單元測試
12.4.3 動作過濾器單元測試
12.4.4 用UI測試進行最終測試
12.5 小結
第13章 訣竅
13.1 jQuery自動完成文本框
13.2 自動客戶端驗證
13.3 使用NHibernate進行數據訪問
13.3.1 參考實現的功能概述
13.3.2 應用程序架構概述
13.3.3 領域模型-應用程序核心
13.3.4 NHibernate配置-應用程序的基礎架構
13.3.5 UI利用領域模型
13.3.6 協同工作
13.3.7 使用NHibernate封裝數據訪問
13.4 使用Spark視圖引擎設計視圖
13.4.1 安裝並配置Spark
13.4.2 簡單的Spark視圖示例
13.5 小結
1.1 默認應用程序詳解
1.1.1 創建項目
1.1.2 第一個路由
1.1.3 運行啟動項目
1.2 第一個從頭開始創建的ASP.NET MVC控制器
1.3 我們的第一個視圖
1.4 確保應用程序可維護
1.5 測試控制器類
1.6 小結
第2章 深入模型
2.1 理解領域驅動設計基礎知識
2.2 本書所用的領域模型
2.2.1 關鍵實體和值對象
2.2.2 聚合體
2.2.3 領域模型的持久化
2.3 表現模型
2.3.1 表現模型的職責
2.3.2 從領域模型中投影
2.4 使用模型進行工作
2.4.1 制作路由
2.4.2 制作控制器動作
2.4.3 測試驅動特性
2.4.4 完成視圖
2.5 小結
第3章 深入控制器
3.1 控制器動作
3.2 簡單的控制器不需要視圖
3.3 測試控制器
3.3.1 測試RedirectController
3.3.2 明確依賴
3.3.3 使用測試替身
3.3.4 好的控制器單元測試的要素
3.4 簡單的動作和視圖
3.5 使用表單值
3.6 處理查詢字符串參數
3.7 在動作參數中綁定更復雜的對象
3.8 傳遞ViewData的選項
3.9 過濾器
3.10 小結
第4章 深入視圖
4.1 ASP.NET MVC與Web Forms的不同
4.2 文件夾結構和視圖基礎
4.3 視圖基礎概述
4.3.1 研究IViewEngine抽象
4.3.2 理解ASP.NET MVC中的母版頁
4.3.3 使用ViewData發送對象到視圖
4.3.4 局部視圖有助于分解復雜的界面
4.4 利用視圖創建動態界面
4.4.1 使用視圖助手和數據綁定呈現表單
4.4.2 將HTML表單回傳給服務器
4.4.3 驗證和錯誤報告
4.4.4 擴展HtmlHelper
4.5 小結
第5章 路由
5.1 什麼是路由
5.1.1 什麼是curl命令
5.1.2 用路由奪回URL控制權
5.2 設計一個URL架構
5.2.1 建立簡單、清晰的URL
5.2.2 建立可編程URL
5.2.3 允許URL參數沖突
5.2.4 保持URL簡短
5.2.5 盡量避免暴露數據庫ID
5.2.6 考慮添加不必要的信息
5.3 在ASP.NET MVC中實現路由
5.3.1 一個在線商店的URL架構
5.3.2 添加一個自定義的靜態路由
5.3.3 添加一個自定義的動態路由
5.3.4 catch-all路由
5.4 使用路由系統生成URL
5.5 為Code Camp Server創建路由
5.6 測試路由表現
5.7 將路由用于現有的ASP.NET項目
5.8 小結
第6章 自定義和擴展ASP.NET MVC框架
6.1 擴展URL路由
6.2 創建你自己的ControllerFactory
6.2.1 (ControllerFactory)實現
6.2.2 為控制器利用IoC
6.3 擴展控制器
6.3.1 創建一個可格式化控制器
6.3.2 使用動作過濾器
6.4 創建一個自定義視圖引擎
6.5 為ASP.NET MVC定制Visual Studio
6.5.1 創建自定義T4模板
6.5.2 添加一個自定義測試項目模板到新建項目向導
6.6 小結
第7章 復雜網站架構擴展
7.1 簡化大的控制器動作
7.2 嚴格控制視圖
7.2.1 使用和創建視圖助手
7.2.2 創建部分視圖
7.2.3 創建組件
7.3 使用動作過濾器裝入公用數據
7.4 將控制器組織到區域
7.4.1 捕捉用于一個請求的區域
7.4.2 創建具有區域支持的視圖引擎
7.4.3 全部連接起來
7.5 小結
第8章 利用現有ASP.NET特性
8.1 ASP.NET服務器控件
8.1.1 TextBox
8.1.2 其他常用控件
8.1.3 GridView
8.1.4 在哪里能得到這個好東西
8.2 狀態管理
8.2.1 緩存
8.2.2 會話狀態
8.2.3 Cookie
8.2.4 請求存儲
8.3 跟蹤和調試
8.3.1 TraceContext
8.3.2 健康監控
8.4 實現個性化和本地化
8.4.1 利用ASP.NET個性化
8.4.2 利用ASP.NET本地化
8.5 實現ASP.NET網站地圖
8.6 小結
第9章 ASP.NET MVC中的AJAX
9.1 用一個示例進入AJAX
9.2 使用ASP.NET Web Forms的AJAX
9.3 ASP.NET MVC中的AJAX
9.3.1 劫持Code Camp Server
9.3.2 AJAX與JASON
9.3.3 為控制器添加備用視圖格式
9.3.4 從視圖中消費JSON動作
9.3.5 AJAX助手
9.4 小結
第10章 宿主環境和部署
10.1 部署方案
10.2 XCOPY部署
10.3 部署到IIS 7
10.4 部署到IIS 6及更早版本
10.4.1 使用.aspx擴展配置路由
10.4.2 使用自定義擴展名配置路由
10.4.3 使用具有選擇禁用的通配符映射
10.4.4 使用URL重寫
10.5 自動化部署
10.5.1 采用持續集成
10.5.2 啟用按鈕操作的XCOPY部署
10.5.3 管理環境配置
10.6 小結
第11章 探索MonoRail和Ruby on Rails
11.1 MonoRail
11.1.1 特性概述
11.1.2 ActiveRecord和Windsor
11.1.3 可用于ASP.NET MVC中的MonoRail和Castle特性
11.2 Ruby on Rails
11.2.1 慣例優先于配置以及“Rails方式”
11.2.2 ActiveRecord
11.2.3 ActionPack
11.3 小結
第12章 最佳實踐
12.1 控制器
12.1.1 層次超類型(Layer Supertype)
12.1.2 過濾器
12.1.3 智能綁定器
12.1.4 硬編碼的字符串
12.1.5 獨立的視圖模型
12.1.6 驗證(Validation)
12.2 視圖
12.2.1 強類型視圖
12.2.2 與重復戰斗
12.2.3 括號表達式
12.3 路由
12.3.1 測試路由
12.3.2 動作命名
12.4 測試
12.4.1 控制器單元測試
12.4.2 模型綁定器單元測試
12.4.3 動作過濾器單元測試
12.4.4 用UI測試進行最終測試
12.5 小結
第13章 訣竅
13.1 jQuery自動完成文本框
13.2 自動客戶端驗證
13.3 使用NHibernate進行數據訪問
13.3.1 參考實現的功能概述
13.3.2 應用程序架構概述
13.3.3 領域模型-應用程序核心
13.3.4 NHibernate配置-應用程序的基礎架構
13.3.5 UI利用領域模型
13.3.6 協同工作
13.3.7 使用NHibernate封裝數據訪問
13.4 使用Spark視圖引擎設計視圖
13.4.1 安裝並配置Spark
13.4.2 簡單的Spark視圖示例
13.5 小結
序
ASP.NET MVC l.0的最終版本在2009年3月份的Mix09會議期間發布了,沒有人驚訝于它的內容——這是件好事。在這個最終版本登場之前,產品團隊已經發布了帶有完整源代碼的多個公開預演版本,以努力提升Microsoft產品的開放性和社區參與度。
我們為什麼這麼做?
透明和社區參與是高尚的目標,但足它們並不是一個項目的最終日標。我們真正追求的是一件偉人的產品。我願意將ASP.NET MVC看作一個展示透明和社區參與是達到這一目標的主要方法的試驗。
在ASPNET MVC的Preview 2版本發布之後,我們從升發人員那里得到反饋——使用ASPNETMVC編寫單元測試很困難。本書的首席作者Jeffrey Palermo在這一時期是提供反饋的主要人物之一。我們采納了這一意見,並且通過引入動作結果的概念實施了一個主要的API更改,這比我們之前的設計要好得多。社區參與幫助我們創建一個更好的產品。
ASP.NET MVC聚焦于固定的原則,如用于提供非常可擴展和可測試的框架的關注度分離。雖然在你覺得合適時可以修改源代碼,但是該框架用于開放給不需要修改源代碼的擴展。該框架的任何部分都可以交換為你選擇的其他東西。不喜歡視圖引擎?嘗試Spark視圖引擎。不喜歡我們實例化控制器的方式?使川你自己的依賴注入容器。
ASP.NET MVC還包含了很棒的工具,如Add View(添加視圖)對話框,它使用代碼生成快速地創建基于模型對象的視圖。最好的部分是ASP.NET MVC巾的代碼生成特性依賴T4模板從而可以完全定制。
在這本書中,Jeffrey將分享所有這些特性,並且展示將它們組合到一起創建一個了不起的應用程序的方法。我希望你享受這本書並且分享他創建Web應用程序的激情。記住,本書不僅是邀請你學習ASP.NET MVC,還邀請你加入社區並月.影響ASP.NET MVC的未來。快樂地編程吧!
我們為什麼這麼做?
透明和社區參與是高尚的目標,但足它們並不是一個項目的最終日標。我們真正追求的是一件偉人的產品。我願意將ASP.NET MVC看作一個展示透明和社區參與是達到這一目標的主要方法的試驗。
在ASPNET MVC的Preview 2版本發布之後,我們從升發人員那里得到反饋——使用ASPNETMVC編寫單元測試很困難。本書的首席作者Jeffrey Palermo在這一時期是提供反饋的主要人物之一。我們采納了這一意見,並且通過引入動作結果的概念實施了一個主要的API更改,這比我們之前的設計要好得多。社區參與幫助我們創建一個更好的產品。
ASP.NET MVC聚焦于固定的原則,如用于提供非常可擴展和可測試的框架的關注度分離。雖然在你覺得合適時可以修改源代碼,但是該框架用于開放給不需要修改源代碼的擴展。該框架的任何部分都可以交換為你選擇的其他東西。不喜歡視圖引擎?嘗試Spark視圖引擎。不喜歡我們實例化控制器的方式?使川你自己的依賴注入容器。
ASP.NET MVC還包含了很棒的工具,如Add View(添加視圖)對話框,它使用代碼生成快速地創建基于模型對象的視圖。最好的部分是ASP.NET MVC巾的代碼生成特性依賴T4模板從而可以完全定制。
在這本書中,Jeffrey將分享所有這些特性,並且展示將它們組合到一起創建一個了不起的應用程序的方法。我希望你享受這本書並且分享他創建Web應用程序的激情。記住,本書不僅是邀請你學習ASP.NET MVC,還邀請你加入社區並月.影響ASP.NET MVC的未來。快樂地編程吧!
網路書店
類別
折扣
價格
-
新書87折$256