ASP.NET MVC 4框架揭秘

出版時間:2013-1  出版社:電子工業(yè)出版社  作者:蔣金楠  頁數(shù):578  字?jǐn)?shù):855000  
Tag標(biāo)簽:無  

前言

ASP.NET MVC是一個建立在ASP.NET平臺上基于MVC模式的Web開發(fā)框架,它提供了一種與傳統(tǒng)Web Forms完全不同的Web應(yīng)用開發(fā)方式。ASP.NET Web Forms借鑒了Windows Forms基于控件和事件注冊的編程模式,使Web應(yīng)用的開發(fā)變得簡單而快捷,但是它卻使開發(fā)人員與Web的本質(zhì)漸行漸遠(yuǎn)。ASP.NET MVC是一種回歸,它使開發(fā)人員可以真正地面向Web進行編程,我們面對的不再是拖拉到Web頁面的控件,而是整個HTTP請求和響應(yīng)的流程。這不是一本ASP.NET MVC入門書籍我個人覺得掌握ASP.NET MVC具有三個層次。了解基本的編程模式,掌握Controller和View的定義方式,知道路由如何注冊,以及驗證規(guī)則如何定義,此為第一層次。第二層次要求我們對ASP.NET MVC框架本身從請求接收到響應(yīng)回復(fù)的整個流程具有一個清晰的認(rèn)識,包括請求如何被路由、目標(biāo)Controller如何被激活、Model元數(shù)據(jù)如何被解析、Action方法如何被執(zhí)行、View如何呈現(xiàn)等。ASP.NET MVC本身是一個極具可擴展的開發(fā)框架,合理利用其擴展性可以解決很多開發(fā)中的實際問題,而掌握ASP.NET MVC的最高層次就是憑著對框架本身的運行機制的了解準(zhǔn)確地找到相應(yīng)的擴展點,并創(chuàng)建相應(yīng)的擴展來解決我們遇到的問題。本書不是一本ASP.NET MVC入門書籍,而是讓處于第一層次的讀者快速進入第二和第三層次的書。這是一本講述ASP.NET MVC框架本質(zhì)的書很多.NET開發(fā)人員都在抱怨微軟開發(fā)技術(shù)過快的更新頻率讓他們無所適從。其實他們看到的只是單純的版本升級而已,一些本質(zhì)的東西一直是“穩(wěn)定”的。微軟推出.NET戰(zhàn)略已經(jīng)十多年了,CLR卻只有四個版本而已。最新版本的ASP.NET雖然表面上已經(jīng)看不到太多最初的影子,但是整個請求處理的管道一直未曾改變。對于一項開發(fā)技術(shù),只要我們了解了它最根本的一些東西,就不應(yīng)該懼怕其高頻率的版本更替,而應(yīng)該熱烈擁抱它。本書力求將關(guān)于ASP.NET MVC框架最根本的東西帶給大家,而不是羅列一些簡單的編程技巧。這是一本實用的書可能有人覺得這本剖析ASP.NET MVC框架運行原理的書沒有什么“實際”的意義,因為我們每天的日常工作就是編程,知道了ASP.NET MVC從請求接收到響應(yīng)回復(fù)之間整個處理流程并不會對我們的工作造成實質(zhì)性的改變。其實這種想法是極端錯誤的,因為我們編寫的程序最終是在ASP.NET MVC框架上運行的,程序的高效性決定于它是否能夠最大限度地“迎合”框架的運行機制,所以了解ASP.NET MVC框架的運行原理有利于我們寫出高質(zhì)量的程序。我個人將基于ASP.NET MVC的編程分為兩類,即“面向業(yè)務(wù)編程“和“面向框架編程”。前者根據(jù)具體的業(yè)務(wù)邏輯定義Controller和設(shè)計View,這是大部分Web開發(fā)人員的主要工作;后者則是為整個Web應(yīng)用搭建一個框架,讓最終的開發(fā)人員只需要關(guān)注具體的業(yè)務(wù)邏輯,而讓框架來完成所有與業(yè)務(wù)無關(guān)的部分。對于后者,我們可以充分利用ASP.NET MVC的擴展性,通過自定義的擴展將非業(yè)務(wù)的功能自動“注入”到業(yè)務(wù)邏輯的處理流程中,這樣不僅可以提高開發(fā)效率,而且還能提高開發(fā)質(zhì)量。本書在剖析ASP.NET MVC框架運行機制過程中幾乎列出了其所有的擴展點,并且通過實例演示的形式提供了很多實用的擴展??梢詫⒈緯暈橐槐尽凹軜?gòu)設(shè)計”的書在我的周圍存在這樣的一些人,他們以剛畢業(yè)一兩年的畢業(yè)生為主,他們大都工作勤奮、聰明好學(xué),手中經(jīng)常捧著GoF的《設(shè)計模式》,總是希望將書中的設(shè)計模式應(yīng)用到具體項目之中,或者希望通過項目的實踐來印證他們在書本上的設(shè)計模式,但是理論和實踐之間的距離總讓他們感到困惑。要從真實的項目或者產(chǎn)品中學(xué)習(xí)“實用”的軟件架構(gòu)設(shè)計知識,先得確定目標(biāo)項目或者產(chǎn)品中采用的架構(gòu)思想和設(shè)計模式是正確的,而我們參與的很多項目其實被“架構(gòu)”得一塌糊涂。對于像ASP.NET這樣的產(chǎn)品,其基礎(chǔ)架構(gòu)能夠在很長一段時間內(nèi)保持不變,本身就證明了應(yīng)用在上面的架構(gòu)設(shè)計的正確性,它們不正是我們學(xué)習(xí)架構(gòu)設(shè)計最好的素材嗎?本書對ASP.NET MVC框架的運行機制進行了深入剖析,實際上是將ASP.NET MVC的整個設(shè)計展示在讀者面前,讀者朋友們也許可以將本書作為一本“架構(gòu)設(shè)計”的書來讀。本書的寫作特點我想本書的讀者可能很多都讀過我的《WCF全面解析》,雖然內(nèi)容不同,本書卻可能看成是它的延續(xù),因為它們基本上采用了相同的寫作手法??偟貋碇v,我基本上采用“原理講述、代碼分析和實例證明”這個模式來介紹某個技術(shù)要點,對于一個具體的知識點,我不僅僅會告訴讀者“是什么”,還會告訴讀者“為什么”,以及“如何證明是這樣”。除此之外,如果某個知識點在真實的項目開發(fā)中具有“實用”價值,我一般會給出一個相關(guān)的實例演示。本書具有一個與其他中文原創(chuàng)或者翻譯書籍截然不同的特點,那就是幾乎所有的術(shù)語都采用英文,比如Controller、Model和View在本書中并沒有翻譯成中文“控制器”、“模型”和“視圖”。因為我認(rèn)為很多術(shù)語其實很難找到一個語義完全等同的中文詞組或短語與之對應(yīng),對于習(xí)慣了英文作為“開發(fā)語言”的讀者來說,強行翻譯其實是不必要的。這不是一本純理論的書,而是一本“實證型”的書,在書中提供了110個可供單獨下載的實例演示。這些實例在本書中具有不同的作用,有的是為了探測和證明對應(yīng)的論點,有的是為了演示某種使用的編程技巧,有的直接就是一個完整的案例。本書讀者我們說《ASP.NET MVC 4框架揭秘》不是一本ASP.NET MVC入門書籍,主要是因為本書在第1章并沒有提供一個“Hello World”實例,關(guān)注重點主要落在ASP.NET MVC框架本身的運行機制上面,但是并不是說本書的讀者需要預(yù)先對ASP.NET MVC具有多深入的認(rèn)識才行。如果讀者對ASP.NET MVC基本的編程模式具有一定的了解,讀懂這本書是完全沒有問題的。對于從未接觸過ASP.NET MVC的.NET開發(fā)人員,可以通過官方網(wǎng)站來學(xué)習(xí)ASP.NET MVC。本書結(jié)構(gòu)第1章  ASP.NET + MVCASP.NET和MVC,分別代表了ASP.NET MVC的技術(shù)平臺和設(shè)計思想。本章對MVC模式及其變體比如MVP和Model 2等作了概括性介紹,同時對ASP.NET的管道式設(shè)計,以及與各種版本的IIS之間的交互機制進行了全面講述。為了讓讀者對ASP.NET MVC框架的運行機制具有一個大概的了解,本章按照其原理創(chuàng)建了一個“迷你版”的ASP.NET MVC。第2章  URL路由ASP.NET MVC借助于URL路由系統(tǒng)實現(xiàn)了URL模式與目標(biāo)Controller和Action的映射,以及內(nèi)嵌于URL的參數(shù)傳遞。基于URL路由的編程主要體現(xiàn)在路由映射的注冊和基于注冊路由的URL生成上面,本章對這兩個方面作了非常詳細(xì)的介紹。URL路由最終是借助于自定義的HttpModule(UrlRoutingModule)實現(xiàn)的,它利用動態(tài)注冊HttpHandler映射的方式提供針對URL路由的實現(xiàn),這是本章著重講述的重點。第3章  Controller的激活本章對以ControllerFactory為核心的Controller激活系統(tǒng),以及通過DefaultControllerFactory提供的Controller默認(rèn)激活機制進行了詳細(xì)介紹。以IoC的方式激活Controller在實際的Web應(yīng)用開發(fā)中具有重要的意義,本章以較多的篇幅講述了如何將不同的IoC框架(Unity和Ninject)應(yīng)用到ASP.NET MVC的Controller激活系統(tǒng)中。具體來說,我們以實例演示的方式講述了三種不同的實現(xiàn)方式,包括自定義ControllerFactory、ControllerActivator和DependencyResolver。第4章  Model元數(shù)據(jù)的解析Model元數(shù)據(jù)是針對數(shù)據(jù)類型的一種描述信息,ASP.NET MVC提供了基于數(shù)據(jù)注解特性的聲明式Model元數(shù)據(jù)定義方式,本章對所有與此相關(guān)的數(shù)據(jù)注解特性,以及它們對Model元數(shù)據(jù)的影響進行了全面的介紹。ASP.NET MVC利用Model元數(shù)據(jù)實現(xiàn)了模板化的HTML生成方式,本章重點講述了如何為具體的數(shù)據(jù)類型定義編輯和顯示模板,以及定義的模板在調(diào)用HtmlHelper/HtmlHelper的模板方法過程中是如何控制最終生成的HTML的。本章的最后關(guān)注于以ModelMetadataProvider為核心的Model元數(shù)據(jù)提供機制,以及如何通過自定義ModelMetadataProvider實現(xiàn)對Model元數(shù)據(jù)提供機制的定制。第5章  Model的綁定ASP.NET MVC的Model綁定旨在為目標(biāo)Action方法提供參數(shù)列表。ParameterDescriptor為Model綁定提供了相關(guān)的元數(shù)據(jù)信息,本章以介紹ParameterDescriptor以及相關(guān)的ControllerDescriptor和ActionDescriptor作為開篇。Model綁定所需的最終數(shù)據(jù)通過ValueProvider來提供,本章接下來會對實現(xiàn)在各種不同ValueProvider中的數(shù)據(jù)值提供機制,以及以ValueProviderFactory為核心的ValueProvider提供機制進行全面而深入的介紹。本章的最后部分著重介紹以ModelBinder為核心的Model綁定系統(tǒng),以及實現(xiàn)在DefaultModelBinder中的默認(rèn)Model綁定機制。第6章  Model的驗證Action方法在執(zhí)行之前需要通過Model驗證機制確保提供參數(shù)的有效性。本章會著重講述以ModelValidator為核心的Model驗證系統(tǒng),以及通過ModelValidatorProvider實現(xiàn)的ModelValidator提供機制。Model驗證是伴隨著Model綁定進行的,具體執(zhí)行流程的介紹也包含在本章之中。ASP.NET MVC利用ValidationAttribute特性為Model驗證提供了一種聲明式編程方式,其背后的實現(xiàn)機制是本章重要講述的內(nèi)容。jQuery驗證框架被默認(rèn)用于客戶端驗證,jQuery驗證的編程方式,以及與ASP.NET MVC驗證系統(tǒng)的協(xié)作方式會在本章的最后一部分予以介紹。第7章  Action的執(zhí)行針對請求的處理最終體現(xiàn)在對目標(biāo)Action方法的執(zhí)行上面。Action方法可以以同步或者異步的方式執(zhí)行,所以本章以介紹兩種不同的異步Action編程模式作為開篇;此外,同步與異步的差異體現(xiàn)在整個請求的處理過程中,MvcHandler、Controller、ActionInvoker、ControllerDescriptor和ActionDescriptor等都具有同步和異步的版本,本章會對它們作一個系統(tǒng)的比較。Action的執(zhí)行還伴隨著篩選器的執(zhí)行,在本章的最后對四種篩選器的作用和執(zhí)行流程進行單獨介紹。第8章  View的呈現(xiàn)ActionResult作為執(zhí)行Action返回的結(jié)果,實現(xiàn)了對請求的最終響應(yīng),本章介紹了所有預(yù)定義的ActionResult分別是如何完成針對請求的響應(yīng)的。作為最重要的ActionResult,ViewResult將整個預(yù)定義的View呈現(xiàn)出來,而它背后是一套完整的View引擎,View引擎的運行機制,以及與ViewResult的協(xié)作方式是本章介紹的一個重點。ASP.NET MVC默認(rèn)提供了ASPX和Razor這兩種原生View引擎的支持,針對Razor引擎的深入剖析被放在本章的最后一部分。第9章  ASP.NET Web APIASP.NET Web API使我們可以很容易地定義REST服務(wù),本章會提供Web API基本編程模式的介紹。ASP.NET Web API采用了與ASP.NET MVC獨立但類似的執(zhí)行管道,對整個管道從請求接收到響應(yīng)回復(fù)的整個流程的介紹是本章的重點,包括HttpController的激活與執(zhí)行、Action的選擇、Model元數(shù)據(jù)的解析、Action參數(shù)的綁定與執(zhí)行等。第10章  案例實踐本章提供了一個名為Video Mall(簡稱VM)的在線電子商務(wù)購物網(wǎng)站來模擬ASP.NET MVC在真實項目中的應(yīng)用。VM以SQL Server作為數(shù)據(jù)存儲,并采用Entity Framework作為ORM框架進行數(shù)據(jù)存取。VM利用了在前面章節(jié)中定義的一系列擴展,同時還涉及了一些架構(gòu)思想和涉及模式,比如模塊化設(shè)計、IoC、AOP以及Repository等。關(guān)于作者蔣金楠(網(wǎng)名Artech)現(xiàn)就職于某知名軟件公司擔(dān)任高級軟件顧問。連續(xù)5屆微軟MVP(最有價值專家),同時也是少數(shù)的雙料MVP(Solutions Architecture + Connected System)之一。國內(nèi)較早接觸WCF的人之一,2007年2月起在個人博客上發(fā)表超過兩百篇深入介紹WCF的文章,成為了目前國內(nèi)WCF在線資料的主要來源。致謝本書得以出版,需要感謝本書的編輯張春雨先生和葛娜小姐,你們的專業(yè)水準(zhǔn)和責(zé)任心是為本書提供的質(zhì)量保證,期待著與你們第三度合作的機會。此外,最需要感謝的是我的老婆徐妍妍,只有我知道你在本書提交給出版社之前所作的校對工作有多么重要。本書支持本書針對最新版本的ASP.NET MVC,同時涉及太多底層實現(xiàn)的內(nèi)容,所以大部分內(nèi)容是找不到任何現(xiàn)成參考資料的,這些內(nèi)容大都來自于作者對源碼的分析和試驗的證明。本書的最初版本是根據(jù)ASP.NET MVC 4 Beta撰寫的,差不多快寫完的時候微軟發(fā)布了ASP.NET MVC 4 RC,然后我根據(jù)RC對原來的內(nèi)容作了不小的改動。在ASP.NET MVC4正式推出之后,我第一時間聯(lián)系到了Scott Guthrie,從他們團隊得到了一份正式版與RC之間變化的列表,并據(jù)此又作了一些修改。這些因素加上我本人能力的限制,都可能造成一些無法避免的錯誤或者偏差,如果讀者在閱讀過程中發(fā)現(xiàn)了任何問題,希望能夠反饋給我。如果讀者遇到任何ASP.NET MVC或者是WCF的問題,也歡迎與我通過以下的方式進行交流。

內(nèi)容概要

  針對最新版本的ASP.NET MVC
4,深入剖析底層框架從請求接收到響應(yīng)回復(fù)的整個處理流程(包括URL路由、Controller的激活、Model元數(shù)據(jù)的解析、Model的綁定、Model的驗證、Action的執(zhí)行、View的呈現(xiàn)和ASP.NET
Web API等),并在此基礎(chǔ)上指導(dǎo)讀者如何通過對ASP.NET MVC框架本身的擴展解決應(yīng)用開發(fā)中的實際問題。

作者簡介

蔣金楠,網(wǎng)名Artech,高級軟件顧問。微軟6任MVP(Solutions Architecture、Connected
System與Microsoft Integration)。著《WCF全面解析》(上、下冊)、《ASP.NET MVC
4框架揭秘》等。對.NET Framework、C#、ASP.NET、SQL
Server、設(shè)計模式、軟件架構(gòu),以及主流的開源框架有著深入的研究。尤其是在WCF技術(shù)方面,屬國內(nèi)較早接觸WCF的人之一,同時對.NET
Remoting、MSMQ通信技術(shù)有深入的理解。博客園推薦博客(目前排名第一),2012年度51CTO
IT博客大賽10佳。

書籍目錄

第1章 ASP.NET +
MVC
 1.1 傳統(tǒng)MVC模式
  1.1.1 自治視圖
  1.1.2 什么是MVC模式
 1.2 MVC的變體
  1.2.1 MVP
  1.2.2 Model
2
  1.2.3 ASP.NETMVC與Model 2
 1.3 IIS/ASP.NET管道
  1.3.1 IIS
5.x與ASP.NET
  1.3.2 IIS
6.0與ASP.NET
  1.3.3 IIS
7.0與ASP.NET
  1.3.4 ASP.NET管道
 1.4 ASP.NET
MVC是如何運行的
  1.4.1 建立在“迷你版”ASP.NET
MVC上的Web應(yīng)用
  1.4.2 URL路由
  1.4.3
Controller的激活
  1.4.4 Action的執(zhí)行
  本章小結(jié)
第2章 URL路由
 2.1 ASP.NET路由系統(tǒng)
  2.1.1 請求URL與物理文件的分離
  2.1.2
實例演示:通過URL路由實現(xiàn)請求地址與.aspx頁面的映射(S201)
  2.1.3 Route與RouteTable
  2.1.4 路由映射
  2.1.5 根據(jù)路由規(guī)則生成URL
 2.2 ASP.NET
MVC擴展
  2.2.1 路由映射
  2.2.2
實例演示:注冊路由映射與查看路由信息(S208)
  2.2.3 缺省URL參數(shù)
  2.2.4 基于Area的路由映射
  2.2.5 鏈接和URL的生成
 2.3 動態(tài)HttpHandler映射
  2.3.1
UrlRoutingModule
  2.3.2 PageRouteHandler與MvcRouteHandler
  2.3.3
ASP.NET路由系統(tǒng)擴展
  本章小結(jié)
第3章 Controller的激活
 3.1 總體設(shè)計
  3.1.1 Controller
  3.1.2
ControllerFactory
  3.1.3
ControllerBuilder
  3.1.4 Controller的激活與URL路由
 3.2 默認(rèn)實現(xiàn)
  3.2.1
Controller類型的解析
  3.2.2
Controller類型的緩存
  3.2.3
Controller的釋放和會話狀態(tài)行為的控制
 3.3 IoC的應(yīng)用
  3.3.1 從Unity來認(rèn)識IoC
  3.3.2
Controller與Model的分離
  3.3.3 基于IoC的ControllerFactory
  3.3.4 基于IoC的ControllerActivator
  3.3.5
基于IoC的DependencyResolver
  本章小結(jié)
第4章 Model元數(shù)據(jù)的解析
 4.1
Model元數(shù)據(jù)及其定制
  4.1.1 Model元數(shù)據(jù)層次化結(jié)構(gòu)
  4.1.2 基本Model元數(shù)據(jù)信息
  4.1.3 Model元數(shù)據(jù)的定制
  4.1.4
IMetadataAware接口
 4.2
Model元數(shù)據(jù)與Model模板
  4.2.1
實例演示:通過模板將布爾值顯示為RadioButton(S409)
  4.2.2
預(yù)定義模板
  4.2.3
DataTypeName與模板名稱
  4.2.4 模板的獲取與執(zhí)行
  4.2.5 實例演示:通過定制Model元數(shù)據(jù)和自定義模板
實現(xiàn)預(yù)定義列表的呈現(xiàn)(S412)
 4.3 Model元數(shù)據(jù)的提供機制
  4.3.1
再談ModelMetadata
  4.3.2 ModelMetadataProvider
  4.3.3 Model元數(shù)據(jù)提供系統(tǒng)的擴展
  本章小結(jié)
第5章 Model的綁定
 5.1
ControllerDescriptor、ActionDescriptor與ParameterDescriptor
  5.1.1 ControllerDescriptor
  5.1.2
ActionDescriptor
  5.1.3 ParameterDescriptor
 5.2 ValueProvider
  5.2.1 NameValueCollectionValueProvider
  5.2.2
DictionaryValueProvider
  5.2.3 ValueProviderFactory
  5.2.4
ValueProviderFactories
 5.3 ModelBinder
  5.3.1
ModelBinder與ModelBinderProvider
  5.3.2
ModelState與Model綁定
  5.3.3 ModelBindingContext的創(chuàng)建
 5.4
Model綁定的默認(rèn)實現(xiàn)
  5.4.1 簡單類型
  5.4.2 復(fù)雜類型
  5.4.3 數(shù)組
  5.4.4 集合
  5.4.5 字典
  本章小結(jié)
第6章 Model的驗證
 6.1 ModelValidator與ModelValidatorProvider
  6.1.1 ModelValidator
  6.1.2
ModelValidatorProvider
  6.1.3 ModelValidatorProviders
 6.2
Model綁定與驗證
  6.2.1 ModelState
  6.2.2
驗證消息的呈現(xiàn)
  6.2.3 Model綁定中的驗證
 6.3
基于數(shù)據(jù)注解特性的Model驗證
  6.3.1 ValidationAttribute特性
  6.3.2
DataAnnotationsModelValidator
  6.3.3 DataAnnotationsModelValidatorProvider
  6.3.4
將ValidationAttribute應(yīng)用到參數(shù)上
  6.3.5 一種Model類型,多種驗證規(guī)則
 6.4 客戶端驗證
  6.4.1
jQuery驗證
  6.4.2
基于jQuery的Model驗證
  6.4.3
自定義驗證
  本章小結(jié)
第7章 Action的執(zhí)行
 7.1
異步Action的定義
  7.1.1 基于線程池的請求處理機制
  7.1.2 兩種異步Action方法的定義
  7.1.3 AsyncManager
 7.2
Action方法的執(zhí)行
  7.2.1
MvcHandler對請求的處理
  7.2.2
Controller的執(zhí)行
  7.2.3 ActionInvoker的執(zhí)行
  7.2.4 ControllerDescriptor的同步與異步
  7.2.5 ActionDescriptor的執(zhí)行
 7.3 篩選器的執(zhí)行
  7.3.1 Filter及其提供機制
  7.3.2
AuthorizationFilter
  7.3.3 ActionFilter
  7.3.4 ExceptionFilter
  7.3.5 實例演示:集成EntLib實現(xiàn)自動化異常處理(S713, S714,
S715)
  7.3.6 ResultFilter
  本章小結(jié)
第8章 View的呈現(xiàn)
 8.1 ActionResult
  8.1.1
EmptyResult
  8.1.2 ContentResult
  8.1.3 FileResult
  8.1.4 JavaScriptResult
  8.1.5 JsonResult
  8.1.6
HttpStatusCodeResult
  8.1.7
RedirectResult/RedirectToRouteResult
 8.2 ViewResult與ViewEngine
  8.2.1 View引擎中的View
  8.2.2 ViewEngine
  8.2.3 ViewResult的執(zhí)行
 8.3 Razor引擎
  8.3.1
View的編譯原理
  8.3.2
WebViewPage與WebViewPage
  8.3.3 RazorView
  8.3.4
RazorViewEngine
  本章小結(jié)
第9章 ASP.NET Web API
 9.1 Web、REST與Web API
  9.1.1 Web如此簡單
  9.1.2
REST是什么
  9.1.3 ASP.NET Web
API
 9.2 服務(wù)端管道
  9.2.1 ASP.NET Web API管道式設(shè)計
  9.2.2 HttpMessageHandler
  9.2.3 HttpServer
  9.2.4
實例演示:自定義HttpMessageHandler實現(xiàn)HTTP方法重寫(S903)
 9.3
HttpControllerDispatcher
  9.3.1
HttpController的激活
  9.3.2
HttpController的執(zhí)行
  9.3.3 Action的選擇
  9.3.4 Model元數(shù)據(jù)的解析
  9.3.5 Action參數(shù)綁定
  9.3.6 Model驗證
  9.3.7 Action的執(zhí)行與結(jié)果的響應(yīng)
 9.4 Web API的調(diào)用和自我寄宿
  9.4.1 HttpClient
  9.4.2 HttpSelfHostServer

章節(jié)摘錄

版權(quán)頁:   插圖:   ASP.NET集成 從上面對IIS 5.x和IIS 6.0的介紹中,我們不難發(fā)現(xiàn)IIS與ASENET是兩個相互獨立的管道(Pipeline)。在各自管轄范圍內(nèi),它們各自具有自己的一套機制對HTTP請求進行處理。 兩個管道通過ISAPI實現(xiàn)“連通”,IIS是第一道屏障,當(dāng)對HTTP請求進行必要的前期處理(比如身份驗證等)后,通過ISAPI將請求分發(fā)給ASENET管道。當(dāng)ASENET在自身管道范圍內(nèi)完成對HTTP請求的處理時,處理后的結(jié)果再返回到IIS,IIS對其進行后期處理(比如日志記錄、壓縮等),最終生成HTTP響應(yīng)。圖1—9反映了IIS 6.0與ASENET之間的橋接關(guān)系。 從另一個角度講,IIS運行在非托管的環(huán)境中,而ASENET管道則是托管的,ISAPI還是連接非托管環(huán)境和托管環(huán)境的紐帶。IIS 5.x和IIS 6.0把兩個管道進行隔離至少帶來了下面的一些局限與不足。 相同操作的重復(fù)執(zhí)行:IIS與ASP.NET之間具有一些重復(fù)的操作,比如身份驗證。 動態(tài)文件與靜態(tài)文件處理的不一致:因為只有基于ASP.NET動態(tài)文件(比如.aspx、.asmx、.svc等)的HTTP請求才能通過ASENET ISAPI進入ASP.NET管道,而對于一些靜態(tài)文件(比如.html、.xml、.img等)的請求則由IIS直接響應(yīng),那么ASP.ENET管道中的一些功能將不能用于這些基于靜態(tài)文件的請求,比如我們希望通過Foms認(rèn)證應(yīng)用于基于圖片文件的請求就做不到。 IIS難以擴展:對于IIS的擴展基本上就體現(xiàn)在自定義ISAPI,但是對于大部分人來說,這不是一件容易的事情。因為ISAPI是基于Win32的非托管的API,并非一種面向應(yīng)用的編程接口。通常我們希望的是諸如定義ASP.NET的HttpModule和HttpHandler一樣,通過托管代碼的方式來擴展IIS。

編輯推薦

《ASP.NET MVC4框架揭秘》是讓處于ASP.NETMVC第一層次的讀者快速進入第二和第三層次的書。ASP.NET MVC功能強大,它提供了一種全新的編程方式,使我們可以將MVC模式很自然地融入動態(tài)網(wǎng)站的開發(fā)之中。由它帶來的對關(guān)注點清晰分離和對HTML的細(xì)粒度控制使我們真正體會到了敏捷開發(fā)的樂趣。借助于ASP.NET MVc提供的眾多特性,不但可以使我們在復(fù)雜應(yīng)用中靈活地采用TDD(測試驅(qū)動開發(fā))的夢想變成現(xiàn)實,還能讓我們的應(yīng)用盡可能地?fù)肀ё钚碌腤eb標(biāo)準(zhǔn)。

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    ASP.NET MVC 4框架揭秘 PDF格式下載


用戶評論 (總計123條)

 
 

  •   很好的書!讓我對ASP.NET MVC有一個深刻和全面的認(rèn)識。這書適合有點基礎(chǔ)的人看,最好就有點MVC基礎(chǔ)吧!
  •   ASP**** MVC 4框架揭秘翻了一下,還不錯
  •   花了半個多月看完整本書,覺得還不錯。之前也買過一個Wrox的mvc3的書,對比之下,這本書給我的感覺是把整個asp**** mvc給拆開來講解,教我們框架的運行原理(什么是?為什么?)。但建立框架之上的怎么去做這一點的內(nèi)容比較少(怎么做?),唯一覺得不足的就是這一點,其他的都很滿意,值得推薦。
  •   學(xué)習(xí)MVC的好書,有助于更好的去理解ASP**** MVC思想,不錯,贊一個
  •   從原理的角度介紹asp。*** mvc,沒有基礎(chǔ)的先別買
  •   想了解asp**** mvc的朋友,可以看看,支持。--翁玉禮
  •   博客園大師Artech的書,從底層原理分析MVC。正在讀和學(xué)習(xí)中。
  •   正如作者說的,這不是一本MVC入門級科普教程,而是一本剖析原理、解析構(gòu)架、探尋模式的進階性教材。MVC作為一個開源項目,它的體系構(gòu)架、實現(xiàn)方式本身就是一本活教材。
  •   大神,書有點難度.對MVC管道分析的很透徹.最后又一定Web開發(fā)基礎(chǔ)的人看看
  •   從博客園了解到的大牛,MVC國內(nèi)的經(jīng)典了。
  •   全面介紹MVC4框架,還有實例,謝謝作者。
  •   呵預(yù)想的一樣,適合有一定MVC開發(fā)經(jīng)驗的程序員用來深入探討MVC
  •   項目開發(fā)中一直用著MVC,可是一直沒有系統(tǒng)的進行理論學(xué)習(xí)~ 今天書本剛到,希望能通過這本書達(dá)到理論指導(dǎo)實踐的效果,對MVC能有更深層次的理解和學(xué)習(xí),書本質(zhì)量還行,跟預(yù)期的還是有點出入~ 不過送貨的速度很快 滿分啦~
  •   能好的幫助你理解MVC。查詢相關(guān)的特性應(yīng)用方式。
  •   第一章就講的很透徹,那個簡單MVC原理的例子很好,對深入理解MVC機制十分有用。
  •   更多的講的是mvc的原理,對于架構(gòu)技術(shù)很有用。國內(nèi)資料也比較少的。
  •   書確實寫的不錯,作者延續(xù)了一慣的寫作風(fēng)格,庖丁解牛,一絲一縷分析的徹徹底底。但是這本書確實不是初學(xué)者看得懂的,要對架構(gòu)模式,和mvc的原理有基本的了解才可以沿著作者的思路閱讀下去,否則云里霧里。
  •   剛開始拿到書的第一感覺就是被坑了,感覺六十幾元買的書和地攤賣的差不多的質(zhì)量,紙質(zhì)發(fā)黃。封面也是很薄的那種。而且書上有折橫。書的內(nèi)容在網(wǎng)上的pdf上看過,感覺還可以,這本屬于那種mvc進階的書,不太適合初學(xué)者。
  •   很經(jīng)典的MVC4,分析底層的東東,贊
  •   講的很細(xì),幾乎涵蓋了MVC4的所有知識點
  •   工作上用到,必須得抓緊學(xué)了,以前沒有接觸過MVC4,希望這幾本書能給我啟發(fā)
  •   很不錯的一本書,確實比較適合有一定mvc基礎(chǔ)的讀者看。
  •   需要一點mvc基礎(chǔ)知識,寫的還是比較詳細(xì)易懂的。
  •   書的內(nèi)容很好,但是不適合新手,適合有MVC經(jīng)驗的人,可以幫助你做知識梳理
  •   mvc一直要學(xué),就是感覺很難入手,靜不下心來學(xué)習(xí)
  •   關(guān)注市面上mvc系列的書好久了,只到這本書的面世我下手買。我一直很喜歡該作者的作品。
  •   可以好好學(xué)習(xí)一下mvc4了
  •   書大概看了一章,確實不是入門級別的書,最好是對mvc了解了再看這本書。
  •   最新的開發(fā)框架,講解比較深入易懂。封面設(shè)計非常棒。
  •   一本值得買的書,我購買了作者的《WCF全面解析》,感覺作者是一個一線技術(shù)人員
  •   支持,買了wcf全面解析。再來支持一下
  •   書質(zhì)量還不錯,希望是正版。學(xué)習(xí)一個框架,就應(yīng)該將其掌握透透徹徹,只會簡單的使用,便不能發(fā)揮框架的效能。這本書相對來說深度還是可以的。
  •   老A的寫的書都是不錯的,內(nèi)容還得好好研究研究。支持老A,部分建議已在博客園上互動。
  •   買此書之前,手頭上已經(jīng)有了其它M-V-C-4書籍,也曾猶豫過是否要購買,因為擔(dān)心各書之間重復(fù)內(nèi)容太多。也看了評論:大多數(shù)是好評,稱此書是值得放在手頭,了解M-V-C-4底層的好書;也有說作者內(nèi)容組織得不夠好;也有說作者的行文艱澀難懂,等等。書到手后,給我的感覺是作者正用心寫了,書不可能是完美的,就像做人一樣,但只要夠用心,就足夠了。我也發(fā)現(xiàn),針對某個知識點,每個人的講法是不一樣的,但從多個角度理解同一個知識點讓自己受益匪淺。最近,也留意到本書作者和同類書的另外一個作者在微博上的一些爭論,我無法辯論是非。但就我個人而言,這兩本書我都買了,兩本書都給了我?guī)椭V孕南M谠贗T界,不要出現(xiàn)“文人相輕”,作者和讀者共努力創(chuàng)造一種好的技術(shù)氛圍!
  •   書買來還沒看,不過看過作者的博客,作者的文章都很精彩,相信書也不錯,推薦
  •   不可多得的好書,寫的很深入,最后的api特別喜歡,國內(nèi)很少有這些資料,一般都是看英文版的,看得滲人
  •   說實在話,這本書不適合入門的人看,內(nèi)容方面很平實,詳細(xì),費話不多,這幾年來難得的好書.這里說的入門者,不單指**** 方面的入門者,還包括還在程序開發(fā)的入門者
  •   關(guān)于作者的博客我經(jīng)常看,內(nèi)容不說大家也知道,有本書主要方便查看
  •   的確是第一部,剖析的也很透徹,內(nèi)容比較新
  •   從原理入手,剖析原理與實現(xiàn),屬于基本功,不推薦立馬做出效果的人
  •   作者講解的比較深入,是本好書
  •   深入!
  •   第一次從當(dāng)當(dāng)購物、尤其是貨到付款相當(dāng)給力!
  •   講原理,不是應(yīng)用
  •   條理清晰,言簡意駭。強烈推薦
  •   現(xiàn)在買書已經(jīng)很少**當(dāng)了,當(dāng)當(dāng)提供的服務(wù)太差勁了,書籍質(zhì)量也差勁,可能是印刷的質(zhì)量就這樣,但我收到的書邊部已經(jīng)臟了,后皮還被折了個印,而且還有圓珠筆墨,明顯的磕碰痕跡,明顯的二手書?。?!算了不值當(dāng)退了,反正只是需要內(nèi)容,但以后不會在當(dāng)當(dāng)買書了。
  •   信微軟得永生,信微軟得永生
  •   技術(shù)書籍。有待研究。
  •   還沒讀,但是很多人推薦
  •   第一次當(dāng)當(dāng)購書,很滿意。
  •   質(zhì)量很好,送貸也很快,由于是新技術(shù),內(nèi)容介紹還好。
  •   書很好,寫得有深度,看懂要點功底。
  •   這本書挺不錯的,他主要是教人怎么去做,去思考問題
  •   三本都是相當(dāng)不錯的書,值得推薦啊
  •   很受用 講的很詳細(xì) 強烈推薦
  •   國內(nèi)的好書,作者很不容易啊。
  •   書不錯,適合有一定基礎(chǔ)的讀者.
  •   很喜歡,適合有一定基礎(chǔ)的人,但是確實不錯
  •   還沒讀,看提綱不錯。準(zhǔn)備潛心研究一下。
  •   這本書適合有一定基礎(chǔ)的看,講得很好!不知為啥有點顯舊,如果嶄新就完美了。還是要5分吧。
  •   還行 挺基礎(chǔ)的 但是沒有光盤的
  •   書剛拿到,看了一點,但需要一些基礎(chǔ)再看才更有針對性,書寫的還是不錯的~
  •   書很好,我是初學(xué)者,不大看得懂,這本書適合有一定經(jīng)驗的人看
  •   不是一般人能看懂的,留著以后看!
  •   速度挺快的,書已在手中,學(xué)習(xí)中
  •   還行吧,沒有期待中的好
  •   正在閱讀中,感覺挺好的
  •   真心不錯~由淺入深
  •   寫的不錯,支持
  •   書,看著很不錯~~
  •   看評論不錯 在看
  •   書還沒有看了,書的質(zhì)量挺不錯的。
  •   想換個飛觥獻(xiàn)斝你福建南紡地址
  •   非常犀利,看了個開頭,覺得挺不錯
  •   不錯,書封面還可以,綠綠的,很不錯
  •   買了之后就沒有翻過我會到處亂說么?
  •   應(yīng)該對我有提升,書質(zhì)量還不錯
  •   挺好的,發(fā)貨速度也挺快。。。
  •   A大的書 期待已久 工作在用
  •   書挺好的,已經(jīng)是第2次買蔣金南的書了,還沒看完
  •   作為參考書還可以作為參考書還可以作為參考書還可以作為參考書還可以javascript:;
  •   適合從 熟練走向精通的 道路.這書不太適合初學(xué)人員
  •   這邊書看了很久,終于到手
  •   很好的書,講的很詳細(xì)。
  •   還沒看,慢慢啃吧
  •   送貨速度快。。書的質(zhì)量可以。
  •   說是還比較的有幫助。
  •   內(nèi)容很好,送貨也快。
  •   書很好,看得出作者很用心,源碼示例也很到位
  •   作者寫都不錯啊,希望繼續(xù)有
  •   書很好 正在學(xué)習(xí) 發(fā)貨很快
  •   為公司買的,非常值得購買
  •   書不錯,剛剛收到,準(zhǔn)備吃好飯開看
  •   發(fā)貨比較快 比較滿意
  •   正在學(xué)習(xí)??雌饋碚娴暮懿诲e。
  •   是一本不錯的書,性價比很高!
  •   剛收到大概看了下還不錯,值得購買
  •   翻了幾頁,感覺蠻不錯
  •   不錯 寫的很好
  •   大概看了一下,還好
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7