[書籍推薦][ASP.NET MVC]ASP.NET MVC 4 網站開發美學 上市囉
前言
有在 follow 筆者 blog 的朋友們,應該有發現前幾天 blog 的側欄已經放上一本新書:「ASP.NET MVC 4 網站開發美學」的連結了。
是的,千呼萬喚始出來,在小朱與多位作者努力的催生之下,感謝碁峰出版社的大力協助,這一本新書在這兩天已經正式上市了,有興趣的讀者朋友們已經可以在下列幾個網站上訂購:
- 天瓏書店線上購書:http://www.tenlong.com.tw/items/9862766565?item_id=532076
- 博客來線上購書:http://www.books.com.tw/exep/prod/booksfile.php?item=0010575816
這本書主要是由小朱召集六位 MVP 一起編纂的,來龍去脈其實挺有趣的,有興趣的朋友可以參考一下小朱這篇文章: [ASP.NET MVC][Book] ASP.NET MVC 4 網站開發美學 正式上市
這也算是我第一次參與寫書的行列,前一本其實是翻譯+審校。很感謝有這機會能獲得小朱跟其他 MVP 作者的邀請,讓我可以針對系統設計跟測試的部分,貢獻自己的一些經驗。在整個寫書的過程中,也經歷到相當多作者該體會的痛苦,學習到相當多作者應該具備的技能。
雖然我對 ASP.NET MVC 在實務上完全稱不上專家,不過其他幾位作者都是有相當多使用 ASP.NET MVC 開發大型網站的實務經驗,也有許多位作者是 tw.MVC 的經營團隊之一。
他們對 ASP.NET MVC 的應用、推廣、瞭解,算的上是台灣首屈一指的高手,加上 ASP.NET MVC 4.0 額外推出了許多相當重要的功能,站在技術最前線的他們,嘔心瀝血的編纂此書,目的就是希望讓讀者們可以感受到,ASP.NET MVC 4.0 新 feature 所帶來的美好。
而且他們過去累積許多的 ASP.NET MVC 推廣經驗,更讓他們相當瞭解,該怎麼說明,能讓不瞭解 ASP.NET MVC 的 developer 們,如何快速的進入 ASP.NET MVC 的世界,欣賞這樣的架構之美,迅速地應用在實務開發上,得心應手的解決過去難以解決的一些彈性問題。
ASP.NET MVC 在 ASP.NET 的領域,真的已逐漸成為顯學,也是符合現在網站技術的趨勢,我自己就是這本書的第一位死忠讀者,因為我迫不及待地想深入瞭解 ASP.NET MVC 的基礎、應用、架構等等面向,唯有深入瞭解後,才能在實務上推廣與導入。而這本書 792 頁的篇幅,並非濫竽充數,其實原本的內容可能還要多個一兩百頁,因為新的 feature 跟應用,實在有太多東西可以鑽研,可以與讀者分享。以對技術的深度來說,這本書既可帶不熟悉 ASP.NET MVC 的朋友當作入門的書,技術深度的討論,我想也覺得可以滿足讀者的期待。
目錄
很感謝許多好朋友,光看到作者群的名字,就相當信賴地支持我們,直接就在預購的時候下訂了,容我再說一次,我相信您們不會後悔的。
但我還是想說句實在話,絕對建議各位讀者朋友們,到現場或是跟已經購買的朋友,直接翻閱一下目錄與相關內容,我想這個動作結束之後,如果您對 ASP.NET MVC 有興趣,您就應該會上網去訂購了。實際翻一下書,相信您會有更實在的感覺!
本書目錄如下:
-
CHAPTER 1 ASP.NET MVC 概觀
-
1.1 MVC 架構概觀
- 1.1.1 MVC 是什麼?
- 1.1.2 MVC 的優點與特長
- 1.1.3 與傳統 ASP.NET Web Form 的差異
- 1.1.4 MVC 的應用案例
-
1.2 ASP.NET MVC 概觀
- 1.2.1 Model 的責任是什麼?
- 1.2.2 View 的範圍有哪些?
- 1.2.3 Controller 到底要做哪些事?
- 1.3 ASP.NET MVC 各版本新增功能
-
1.4 Visual Studio 開發環境
- 1.4.1 準備開發環境
- 1.4.2 Visual Studio 2012 新增功能介紹
- 1.4.3 Visual Studio Templates
- 1.4.4 NuGet 的使用
-
1.5 建立你的第一個 MVC 網際網路應用程式
- 1.5.1 建立 MVC 專案
- 1.5.2 MVC 的生命週期
-
1.6 ASP.NET Web Form to MVC
- 1.6.1 Web Form 改寫 MVC 後的開發觀念改變
- 1.6.2 資料來源的改變
- 1.6.3 結語
-
1.1 MVC 架構概觀
-
CHAPTER 2 Model – 資料元件與來源的設計方法
- 2.1 了解 MVC 中 Model
-
2.2 可重用性高的 Model 設計
- 2.2.1 不同架構下的專案建立方式
- 2.2.2 資料儲存媒體與存取技術
-
2.3 使用 Entity Framework
- 2.3.1 Entity Framework 概念
- 2.3.2 Entity Framework 基本實作範例
- 2.3.3 常用 LINQ
-
2.4 Model Metadata
- 2.4.1 Model Validation
- 2.4.2 Model Binding
- 2.5 結語
-
CHAPTER 3 Controller – 應用程式流程的導演
- 3.1 Controller 概念
- 3.2 Controller 與 Action 方法
- 3.3 HTTP 方法(GET、POST、PUT、DELETE)
- 3.4 模型繫結(Model Binding)
- 3.5 ViewData、TempData、ViewBag
- 3.6 資料驗證(Model Validation)
- 3.7 Action Filter 的應用
- 3.8 自訂身分驗證 Action Filter
- 3.9 結語
-
CHAPTER 4 ASP.NET Routing – 串起 Controller 與 View 的魔法師
-
4.1 URL Rewriting 與路由概念
- 4.1.1 什麼是 URL Rewriting?
- 4.1.2 ASP.NET MVC 的路由概念
-
4.2 URL Routing 基本應用
- 4.2.1 IgnoreRoute 語法詳細解釋
- 4.2.2 MapRoute 語法詳細解釋
- 4.2.3 加入一個自己定義的 URL Routing
- 4.2.4 URL Routing 如何比對?
- 4.2.5 為 URL Routing 加上限制條件
-
4.3 URL Routing 進階應用
- 4.3.1 如何從程式建立一組網址?
- 4.3.2 直接取得 RouteData 內的值
-
4.4 如何偵錯?
- 4.4.1 安裝 RouteDebugger 2.0
- 4.4.2 如何利用 Route Debugger 測試路由?
-
4.1 URL Rewriting 與路由概念
-
CHAPTER 5 View – 資料的裝飾家
-
5.1 與 HTML5 有約
- 5.1.1 MVC4 預設範本與 HTML5
- 5.1.2 HTML5 定義範圍
- 5.1.3 語意標籤介紹
- 5.1.4 HTML5 與表單
- 5.1.5 HTML5 導入注意事項
- 5.1.6 優雅降級(graceful degradation)
- 5.1.7 Modernizr
-
5.2 View 的概念
- 5.2.1 ActionResult
- 5.2.2 資料傳遞
-
5.3 Web View
- 5.3.1 View Engine
- 5.3.2 View Page
- 5.3.3 View Path
- 5.3.4 Shared 資料夾
- 5.3.5 主版頁面
- 5.3.6 部分檢視
- 5.3.7 Scaffold 樣版
-
5.4 Web Helpers
- 5.4.1 HtmlHelper
- 5.4.2 AjaxHelper
- 5.4.3 UrlHelper
- 5.4.4 System.Web.Helpers
- 5.4.5 擴充 Helper
-
5.5 SEO 介紹
- 5.5.1 MVC 與 SEO
- 5.5.2 Open Graph Protocol
-
5.6 合併與最佳化
- 5.6.1 提升網頁速度最佳實務
- 5.6.2 調效測試,讓分數說話
- 5.6.3 JavaScript 和 CSS 與網頁的依依不捨
- 5.6.4 合併與最小化
- 5.6.5 網頁架構分離的再提升
- 5.7 結語
-
5.1 與 HTML5 有約
-
CHAPTER 6 行動平台友善設計
-
6.1 不得不面對的考驗
- 6.1.1 Responsive Design
- 6.1.2 網站分別設計
- 6.1.3 檢視分別設計
- 6.2 行動平台模擬器
-
6.3 實作一個行動平台友善專案範本
- 6.3.1 先從網際網路應用程式專案範本開始
- 6.3.2 加入 jQuery Mobile 相關檔案
- 6.3.3 打包 jQuery Mobile 的 JavaScript 和 CSS 檔案
- 6.3.4 版面配置頁
- 6.3.5 瀏覽器覆寫
- 6.3.6 再區分細一點
-
6.4 jQuery Mobile 精要剖析之基礎篇
- 6.4.1 單一頁面與多重頁面
- 6.4.2 頁面轉場特效
- 6.4.3 對話框
- 6.4.4 佈景主題
- 6.4.5 頁首與頁尾
- 6.4.6 導覽工具列
- 6.4.7 按鈕
- 6.4.8 內頁佈置
-
6.5 jQuery Mobile 精要剖析之表單元件篇
- 6.5.1 停用 Ajax
- 6.5.2 下拉選單
- 6.5.3 單選按鈕
- 6.5.4 切換開關
-
6.6 jQuery Mobile 精要剖析之 List View 篇
- 6.6.1 基本 List View
- 6.6.2 巢狀 List View
- 6.6.3 加入縮圖
- 6.6.4 加入分隔列
- 6.6.5 加入計數
- 6.6.6 加入過濾搜尋
- 6.6.7 另外再加入按鈕
- 6.7 結語
-
6.1 不得不面對的考驗
-
CHAPTER 7 Web API – HTTP 服務提供者
-
7.1 IIS Express
- 7.1.1 IIS 7.5 Express 簡介
- 7.1.2 applicationhost.config 組態檔
- 7.1.3 使用自訂 config 組態檔
- 7.1.4 從應用程式資料夾啟動網站
- 7.1.5 IIS 8.0 Express 簡介
- 7.1.6 以命令提示字元啟動 IIS Express
-
7.2 化繁為簡的 REST
- 7.2.1 Web API
- 7.2.2 資源(Resource)
- 7.2.3 學習網頁標準
- 7.2.4 RESTful Web Service
-
7.3 WCF & Web API
- 7.3.1 什麼是 ASP.NET Web API?
- 7.3.2 還需要 WCF 嗎?
-
7.4 Hello Web API
- 7.4.1 ValuesController
-
7.5 Web API 與 Entity Framework
- 7.5.1 資料庫與資料模型(EDMX)
- 7.5.2 Web API Scaffolding
- 7.5.3 Web API CRUD 原理解析
- 7.5.4 API 方法驗證與安全
-
7.6 跨平台使用 HTTP 服務
- 7.6.1 HTTP 服務與 jQuery 網頁
- 7.6.2 HTTP 服務與 MVVM 模式
- 7.6.3 HTTP 服務與 HttpClient 類別
- 7.6.4 HTTP 服務與 Action 方法
- 7.6.5 Async 與 Await
- 7.6.6 HttpClient 類別與跨平台開發
-
7.7 Web API & OData
- 7.7.1 OData URI 慣例
- 7.7.2 OData 的支援
- 7.7.3 OData 選項
- 7.7.4 自訂 OData 查詢選項
-
7.8 Web API 與路由
- 7.8.1 路由表
- 7.8.2 路由字典
- 7.8.3 選擇 API 類別
- 7.8.4 選擇 API 方法
- 7.8.5 化身為路由選擇器
- 7.8.6 擴充路由
-
7.9 Web API 的訊息處理常式
- 7.9.1 用戶端訊息處理
- 7.9.2 伺服器端訊息處理
- 7.9.3 自訂訊息處理常式
-
7.10 表單資料
- 7.10.1 傳送表單資料
- 7.10.2 上傳檔案
- 7.10.3 multipart/form-data 讀取表單資料
-
7.11 媒體格式
- 7.11.1 新增 CSV 格式化程式
- 7.11.2 新增 VCard 格式化程式
- 7.11.3 新增 PNG 格式化程式
-
7.12 JSON 與 XML 序列化
- 7.12.1 JSON 媒體格式化程式
- 7.12.2 XML 媒體格式化程式
- 7.12.3 移除 JSON 或 XML 格式化程式
- 7.12.4 物件循環參考
-
7.13 內容協商
- 7.13.1 序列化
- 7.13.2 內容協商的運作
- 7.13.3 預設內容協商
-
7.14 錯誤處理
- 7.14.1 動作過濾器
- 7.14.2 HttpError 類別
- 7.14.3 Web API 追蹤
-
7.15 Web API 常駐
- 7.15.1 主控台應用程式常駐
- 7.15.2 Web API 常駐啟動錯誤
- 7.15.3 用戶端呼叫 Web API 常駐
- 7.15.4 ASP.NET 網站常駐
-
7.16 Web API 組態
- 7.16.1 Web API 常駐組態
- 7.16.2 Services 組態
- 7.16.3 Controller 組態
-
7.17 Web API 輔助說明
- 7.17.1 IApiExplorer 介面
- 7.17.2 ApiExplorer 類別
- 7.17.3 排除 API 方法
- 7.17.4 NuGet:Web API HelpPage
- 7.17.5 MVC 與 Web API
- 7.18 結語
-
7.1 IIS Express
-
CHAPTER 8 ASP.NET MVC 進階議題
-
8.1 Area 技術
- 8.1.1 Area 是什麼?
- 8.1.2 建立第一個 Area
- 8.1.3 用了 Area 會遇到的問題
- 8.1.4 Area 小結
-
8.2 控制反轉(IoC)簡介
- 8.2.1 物件相依性的問題
- 8.2.2 如何透過 IoC 解除依賴關係?
- 8.2.3 如何決定目標物件的相依物件?
- 8.2.4 如何在 ASP.NET MVC 中注入 Controller?
- 8.2.5 IoC 小結
-
8.3 自訂 View Engine
- 8.3.1 WebFormViewEngine
- 8.3.2 RazorViewEngine
- 8.3.3 自訂 View Engine
- 8.3.4 實作 View Engine
- 8.3.5 小結
-
8.4 非同步 Controller
- 8.4.1 Controller 與 AsyncController
- 8.4.2 MVC 2 與 MVC 3 的非同步
- 8.4.3 MVC 4 的非同步
-
8.5 ASP.NET MVC 應用程式的安全考量
- 8.5.1 個資法與網站資訊安全
- 8.5.2 診斷與記錄
- 8.5.3 我的密碼沒加密
- 8.5.4 SQL Injection 防制
- 8.5.5 XSS 防制
- 8.5.6 防止跨網站偽造要求
-
8.6 OAuth 簡介
- 8.6.1 在 ASP.NET MVC 中整合 OAuth 登入
- 8.6.2 整合 Windows Live 登入
- 8.6.3 整合 Twitter 登入
- 8.6.4 整合 Facebook 登入
- 8.6.5 整合 Google 登入
-
8.1 Area 技術
-
CHAPTER 9 部署 MVC 應用程式
- 9.1 部署至 IIS 7.x
- 9.2 部署至 IIS 6 及 5.1
- 9.3 Windows Azure 部署
- 9.4 結語
-
CHAPTER 10 ASP.NET MVC 測試
-
10.1 測試概念與方法
- 10.1.1 為什麼我們需要測試?
- 10.1.2 測試究竟是什麼?
- 10.1.3 測試該由誰負責?
- 10.1.4 何時是測試的發動時機?
- 10.1.5 如何進行測試?
- 10.1.6 測試的效益
-
10.2 測試實戰
- 10.2.1 建立 Visual Studio 2012 測試專案
- 10.2.2 撰寫單元測試
- 10.2.3 整合測試
- 10.2.4 負載測試
- 10.3 結語
-
10.1 測試概念與方法
-
CHAPTER 11 各版本的 MVC 升級議題
- 11.1 各版本的 MVC 升級議題
- 11.2 版本升級前的注意事項
- 11.3 MVC1 to MVC4 升級步驟
- 11.4 MVC2 to MVC4 升級步驟
- 11.5 MVC3 to MVC4 升級步驟
- 11.6 結語
這本書其實也不是全無缺點,最大的缺點就是太厚啦…要帶著將近 800 頁的書籍趴趴走,說真的還挺吃力的。(這就只能看後續會不會推出電子書了)
花絮
其實我最想寫的是花絮的部分啦。
-
在 WebConf 時,也有不少朋友在 tw.MVC 攤位詢問書籍的消息,感謝這幾位朋友的熱情詢問,相信這本書不會讓您們失望的。而那天也抽空去跟本書主要作者之一: demo ,一起在封面海報前合照,給自己作個紀念,因為我也是他的小粉絲之一啊 (羞)
-
前幾天書還沒上架之前,剛好跑去逛天瓏,發現宣傳海報也已經貼在天瓏的門口了,少不了要上演一下:「阿母,我在這!」的戲碼 XD
- 其實這本書的編纂,我是被臨時徵召的,因為跟其他幾位作者相比,我在 ASP.NET MVC 上的經驗跟功力,實在太渺小了。不過就如同 ASP.NET MVC 是未來 ASP.NET 的趨勢一般,軟體工程、架構設計與測試,也是這幾年越來越被重視的議題。很榮幸自己能被幾位作者邀請一起編纂,其實真的要說起來,我實在稱不上作者群啊,我只是個打雜的小弟罷了
- 第一次寫書,更特別的是集體寫書的經驗,實在相當特別、相當有趣。在 Facebook 上使用社團交流想法、投票、文件交換等等,使用線上的 Mindmap 來規劃大家的寫作章節,整理大家發想的 idea ,使用 SubVersion 來進行版本控管大家的初稿與完稿,使用 SkyDrive 來與出版社同步大家一校、二校、三校、四校的結果,以及同步相關的範例程式碼。也相當感謝 demo 提供了這麼多好用的工具,相當主動地協助大家一起完成這本著作。
- 這邊我也要對小朱致上最高的敬意,要整合六位作者不同的寫作風格,要規劃大家的範圍與目標,要幫忙審校與協助每位作者的內容,這真的不比系統整合簡單。
- 更要一提的是 KKBruce 對這本書所付出的心力,上次在微軟 MVP 尾牙時,聽到他在他父親住院時,仍不停地在醫院趕稿,真的讓人掬一把感動的熱淚。他只希望能儘早讓這本著作問世,只希望讓各位讀者可以在農曆年前拿到熱騰騰的新書,趁著春節連假可以大過書癮。他也替許多其他的作者幫忙進行審校與整合的工作,在這邊要給你一個讚!也希望您的家人都健康平安。
-
歡迎 ASP.NET Web Form 的朋友,以及其他語言平台的朋友,一起來加入 ASP.NET MVC 的世界吧,這半年來,在學習 ASP.NET MVC 4.0 時,真的是讓我驚呼連連啊,例如 Web API 的架構,讓我們可以透過 HttpMessageHandler 來實踐 AOP 的設計概念,實作責任鏈的設計模式,跟過去自己設計 WebService 或 WCF 的服務時,架構真是多了太多太多的彈性。而且讓我更驚豔的是,除了 server 端提供服務可以這麼美妙以外,在 client 端也有新的 HttpClient 可以互相搭配,甚至可以使用相同的 MessageHandler 來進行 message 的轉換、驗證、紀錄。再加上 .net framework 4.5 的非同步架構,一整個畫龍點睛。少了對新技術改變的惶恐,倒是讓我多了相當多興奮跟嘗試的慾望。
還在觀望 ASP.NET 4.5 的朋友,趕快一起來體驗這些美好的架構與 feature 吧!
Reference
- demo: 揭露 ASP.NET MVC4 網站開發美學 目錄與導讀
- KKBruce: ASP.NET MVC 4網站開發美學 - 導讀與預購
- 小朱大: [ASP.NET MVC][Book] ASP.NET MVC 4 網站開發美學 正式上市
blog 與課程更新內容,請前往新站位置:http://tdd.best/