[書籍推薦][ASP.NET MVC]ASP.NET MVC 4 網站開發美學 上市囉

  • 16906
  • 0
  • 2014-05-12

[書籍推薦][ASP.NET MVC]ASP.NET MVC 4 網站開發美學 上市囉

前言

ACL036500

有在 follow 筆者 blog 的朋友們,應該有發現前幾天 blog 的側欄已經放上一本新書:「ASP.NET MVC 4 網站開發美學」的連結了。

是的,千呼萬喚始出來,在小朱與多位作者努力的催生之下,感謝碁峰出版社的大力協助,這一本新書在這兩天已經正式上市了,有興趣的讀者朋友們已經可以在下列幾個網站上訂購:

  1. 天瓏書店線上購書:http://www.tenlong.com.tw/items/9862766565?item_id=532076
  2. 博客來線上購書: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  結語
  • 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 測試路由?
  • 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  結語
  • 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  結語 
  • 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 結語 
  • 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 登入
  • 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 結語 
  • 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 頁的書籍趴趴走,說真的還挺吃力的。(這就只能看後續會不會推出電子書了)

 

花絮

其實我最想寫的是花絮的部分啦。

 

  1. 在 WebConf 時,也有不少朋友在 tw.MVC 攤位詢問書籍的消息,感謝這幾位朋友的熱情詢問,相信這本書不會讓您們失望的。而那天也抽空去跟本書主要作者之一: demo ,一起在封面海報前合照,給自己作個紀念,因為我也是他的小粉絲之一啊 (羞)
    webconf
  2. 前幾天書還沒上架之前,剛好跑去逛天瓏,發現宣傳海報也已經貼在天瓏的門口了,少不了要上演一下:「阿母,我在這!」的戲碼 XD
    天瓏門口
  3. 其實這本書的編纂,我是被臨時徵召的,因為跟其他幾位作者相比,我在 ASP.NET MVC 上的經驗跟功力,實在太渺小了。不過就如同 ASP.NET MVC 是未來 ASP.NET 的趨勢一般,軟體工程、架構設計與測試,也是這幾年越來越被重視的議題。很榮幸自己能被幾位作者邀請一起編纂,其實真的要說起來,我實在稱不上作者群啊,我只是個打雜的小弟罷了 吐舌頭
  4. 第一次寫書,更特別的是集體寫書的經驗,實在相當特別、相當有趣。在 Facebook 上使用社團交流想法、投票、文件交換等等,使用線上的 Mindmap 來規劃大家的寫作章節,整理大家發想的 idea ,使用 SubVersion 來進行版本控管大家的初稿與完稿,使用 SkyDrive 來與出版社同步大家一校、二校、三校、四校的結果,以及同步相關的範例程式碼。也相當感謝 demo 提供了這麼多好用的工具,相當主動地協助大家一起完成這本著作。
  5. 這邊我也要對小朱致上最高的敬意,要整合六位作者不同的寫作風格,要規劃大家的範圍與目標,要幫忙審校與協助每位作者的內容,這真的不比系統整合簡單。
  6. 更要一提的是 KKBruce 對這本書所付出的心力,上次在微軟 MVP 尾牙時,聽到他在他父親住院時,仍不停地在醫院趕稿,真的讓人掬一把感動的熱淚。他只希望能儘早讓這本著作問世,只希望讓各位讀者可以在農曆年前拿到熱騰騰的新書,趁著春節連假可以大過書癮。他也替許多其他的作者幫忙進行審校與整合的工作,在這邊要給你一個讚!也希望您的家人都健康平安。
  7. 歡迎 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

  1. demo: 揭露 ASP.NET MVC4 網站開發美學 目錄與導讀
  2. KKBruce: ASP.NET MVC 4網站開發美學 - 導讀與預購
  3. 小朱大[ASP.NET MVC][Book] ASP.NET MVC 4 網站開發美學 正式上市

blog 與課程更新內容,請前往新站位置:http://tdd.best/