真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ASP.NETWebAPI2框架揭秘

ASP.NET Web API2框架揭秘(.NET領(lǐng)域再現(xiàn)力作頂級專家精講微軟全新輕量級通信平臺)

我們一直強(qiáng)調(diào)做網(wǎng)站、成都做網(wǎng)站對于企業(yè)的重要性,如果您也覺得重要,那么就需要我們慎重對待,選擇一個安全靠譜的網(wǎng)站建設(shè)公司,企業(yè)網(wǎng)站我們建議是要么不做,要么就做好,讓網(wǎng)站能真正成為企業(yè)發(fā)展過程中的有力推手。專業(yè)的建站公司不一定是大公司,創(chuàng)新互聯(lián)作為專業(yè)的網(wǎng)絡(luò)公司選擇我們就是放心。

蔣金楠 著  

ISBN 978-7-121-23536-8

2014年7月出版

定價:108.00元

732頁

16開

編輯推薦

√這是一本注重實證的書,功能各異、多達(dá)120個可供下載的示例,大量最佳實踐與實用性擴(kuò)展,可直接用于解決實際開發(fā)問題。

√全新的學(xué)習(xí)方法,通過完整論證來實現(xiàn)徹底的融會貫通。

√本書可以作為講設(shè)計架構(gòu)的書來讀,因為其以經(jīng)過長期檢驗的經(jīng)典架構(gòu)作為學(xué)習(xí)素材,可很好地啟發(fā)深度思考。

√講原理的書同樣足夠?qū)嵱?。了解ASP.NET Web API框架的運行原理,才能寫出最迎合框架的高效程序,才能找到解決具體項目問題的最佳擴(kuò)展點。

√這是一本幫助你提升內(nèi)功的書。雖然編程模式可以速成,但本書還是希望你最好對ASP.NETWeb API或ASP.NET MVC有基本概念。

內(nèi)容提要

《ASP.NET Web API 2框架揭秘》以實例演示的方式介紹了很多與ASP.NET Web API 相關(guān)的最佳實踐,同時還提供了一系列實用性的擴(kuò)展。《ASP.NET Web API 2框架揭秘》詳細(xì)講解了ASP.NETWeb API 從接收請求到響應(yīng)回復(fù)的整個流程,包括路由、HttpController 的激活、Action 方法的選擇與執(zhí)行、參數(shù)的綁定與驗證、過濾器的執(zhí)行和安全等相關(guān)的機(jī)制。

除此之外,《ASP.NET Web API 2框架揭秘》在很多章節(jié)還從設(shè)計的角度對ASP.NET Web API 的架構(gòu)進(jìn)行了深入分析,所以可以將《ASP.NET Web API 2框架揭秘》當(dāng)作一本架構(gòu)設(shè)計的書來讀。

雖然與市面上任何一本相關(guān)的書相比,《ASP.NET Web API 2框架揭秘》走得更遠(yuǎn)并更加近距離地觸及到ASP.NET Web API 框架的內(nèi)核,但是就其內(nèi)容本身來講卻沒有涉及太多“高深莫測”的知識點,所以閱讀《ASP.NET Web API 2框架揭秘》不存在太高的門檻。如果你覺得自己對ASP.NET Web API 所知甚少,可以利用《ASP.NETWeb API 2框架揭秘》來系統(tǒng)地學(xué)習(xí)ASP.NET WebAPI;如果你覺得自己對ASP.NET Web API 足夠精通,也一定能夠通過閱讀《ASP.NET Web API 2框架揭秘》發(fā)現(xiàn)自己知識的“盲點”。

目錄

第1 章 概述.....................1

1.1何為Web.............................2

1.1.1 TCP/IP與HTTP..................2

1.1.2 Web資源...................................4

1.1.3 HTTP事務(wù)................................6

1.1.4 HTTP報文..........................7

1.2 RESTful WebAPI..................................8

1.2.1為什么叫這個奇怪的名字..................9

1.2.2 RESTful WebAPI具有怎樣的特征.......................10

1.3初識ASP.NET WebAPI...............................18

1.3.1構(gòu)建解決方案.......................18

1.3.2定義WebAPI........................20

1.3.3以Web Host 方式寄宿Web API ..................21

1.3.4以Self Host 方式寄宿Web API..........................27

1.3.5利用HttpClient 調(diào)用Web API ..........................28

1.3.6創(chuàng)建一個“聯(lián)系人管理器”應(yīng)用......................31

第2 章 路由...............................41

2.1 ASP.NET路由...............................42

2.1.1請求URL 與物理文件的分離....................42

2.1.2實例演示:通過URL 路由實現(xiàn)請求地址與Web 頁面的映射...........43

2.1.3 ASP.NET路由系統(tǒng)..................................47

2.1.4注冊路由映射...............55

2.1.5根據(jù)路由規(guī)則生成URL..............................68

2.1.6 HttpHandler的動態(tài)映射............................70

2.2 ASP.NET Web API路由.................................73

2.2.1請求與響應(yīng).....................73

2.2.2 ASP.NET WebAPI路由系統(tǒng)..................77

2.2.3注冊路由映射.................91

2.3兩個路由系統(tǒng)的銜接.........................94

2.3.1HostedHttpRoute與HostedHttpRouteCollection ............94

2.3.2HttpControllerRouteHandler與HttpControllerHandler ............. 100

第3 章 消息處理管道................ 103

3.1HttpMessageHandler管道........................ 104

3.1.1HttpMessageHandler ....................................... 104

3.1.2DelegatingHandler ......................................... 106

3.1.3 HttpServer.................................................. 107

3.1.4HttpRoutingDispatcher........................................114

3.2 Web Host模式下的消息處理管道...............119

3.2.1HttpControllerHandler ...........................................119

3.2.2實例演示:自定義HttpMessageHandler實現(xiàn)HTTP 方法重寫(S305) .... 126

3.3 Self Host模式下的消息處理管道..........................130

3.3.1 HttpBinding........................... 130

3.3.2HttpSelfHostServer.......................... 136

第4 章 HttpController 的激活......................145

4.1HttpController...................... 146

4.1.1HttpControllerContext................ 147

4.1.2HttpControllerDescriptor ....... 147

4.1.3ApiController..................................................... 149

4.2 HttpController是如何被創(chuàng)建的...................151

4.2.1程序集的解析.................................................151

4.2.2HttpController類型的解析..................... 161

4.2.3 HttpController的選擇..................................... 165

4.2.4HttpController的創(chuàng)建................................ 173

4.2.5HttpController的激活與釋放............... 178

4.3 IoC的應(yīng)用.....................................................183

4.3.1利用Unity 來認(rèn)識IoC.......................... 183

4.3.2基于IoC 的HttpControllerActivator.................... 185

4.3.3基于IoC 的DependencyResolver............................ 188

第5 章 Action 的選擇........................ 191

5.1HttpActionDescriptor..................... 192

5.1.1 ReflectedHttpActionDescriptor............ 193

5.1.2ActionNameAttribute ............. 194

5.1.3方法名決定HTTP 方法................................ 195

5.1.4ActionHttpMethodProvider....................................... 197

5.1.5針對特性的緩存.............................................200

5.2HttpParameterDescriptor.............. 201

5.2.1ReflectedHttpParameterDescriptor................................ 202

5.2.2實例演示:解析Action方法參數(shù)描述信息................ 204

5.3HttpActionSelector ........................ 205

5.3.1 ApiControllerActionSelector....................206

5.3.2有效的Action 方法............................ 207

5.3.3目標(biāo)Action 方法的選擇..................... 208

第6 章 特性路由...................... 218

6.1特性路由注冊.......................219

6.1.1HttpRouteInfoProvider特性....................... 219

6.1.2基本路由映射...........................................220

6.1.3讓URL 模板能夠盡可能反映資源的層次結(jié)構(gòu).................... 222

6.1.4為路由變量設(shè)置約束......................226

6.1.5通配符路由變量......................................227

6.1.6缺省路由變量.........................................228

6.1.7設(shè)置URI 前綴....................................... 230

6.2約束表達(dá)式的解析...........................................231

6.2.1RangeRouteConstraint ................. 232

6.2.2InlineConstraintResolver ............. 233

6.2.3自定義約束...................237

6.3路由解析.....................241

6.3.1RouteCollectionRoute ............. 241

6.3.2實例演示:查看特性路由注冊生成的RouteCollectionRoute 對象........ 243

6.3.3子路由對象的創(chuàng)建...................248

6.3.4 HttpRouteData的生成........... 255

第7 章 Model 綁定(上篇) .......... 262

7.1 Model綁定解決怎樣的問題.............263

7.1.1基于HttpRouteData的參數(shù)綁定............. 263

7.1.2基于查詢字符串的參數(shù)綁定..............267

7.2 Model元數(shù)據(jù)的解析...................................268

7.2.1 Model元數(shù)據(jù)的層次化結(jié)構(gòu).................268

7.2.2ModelMetadata............ 270

7.2.3ModelMetadataProvider............ 278

7.3 ValueProvider.................. 282

7.3.1ValueProviderResult ............................ 282

7.3.2NameValuePairsValueProvider .......... 285

7.3.3RouteDataValueProvider與QueryStringValueProvider ...... 295

7.3.4CompositeValueProvider ........... 296

7.4ValueProviderFactory ............ 296

7.4.1RouteDataValueProviderFactory與QueryStringValueProviderFactory.. 297

7.4.2CompositeValueProviderFactory........... 298

7.4.3ValueProviderFactory的注冊................................ 299

7.4.4自定義ValueProviderFactory.....301

第8 章 Model 綁定(下篇) ............. 304

8.1 ModelBinder................ 305

8.1.1ModelBindingContext.......... 306

8.1.2去除前綴后的二次綁定...........307

8.1.3CompositeModelBinder ............ 309

8.2ModelBinderProvider......................... 310

8.2.1CompositeModelBinderProvider................311

8.2.2ModelBinderAttribute ........... 312

8.2.3 Model綁定的流程......................313

8.3針對不同目標(biāo)類型的Model綁定....................... 314

8.3.1簡單類型..............315

8.3.2復(fù)雜類型...................318

8.3.3集合...................327

8.3.4數(shù)組................340

8.3.5字典................343

8.3.6最后一個ModelBinder........ 350

8.4ModelState............... 355

8.4.1 ApiController的ModelState ........................ 355

8.4.2實例演示:獲取Model 綁定過程中由ValueProvider 提供的數(shù)據(jù)(S808).... 357

第9 章 參數(shù)的綁定............... 359

9.1參數(shù)綁定系統(tǒng)全景展示...............360

9.1.1HttpParameterBinding.......... 361

9.1.2ActionValueBinder............. 362

9.2 5個原生的HttpParameterBinding............ 365

9.2.1ModelBinderParameterBinding ............ 365

9.2.2FormatterParameterBinding ................ 368

9.2.3HttpRequestParameterBinding......... 387

9.2.4CancellationTokenParameterBinding ....... 388

9.2.5ErrorParameterBinding ........ 390

9.3HttpParameterBinding的創(chuàng)建策略.......................... 392

9.3.1ParameterBindingAttribute特性.............. 392

9.3.2注冊參數(shù)綁定規(guī)則..............................397

9.3.3HttpParameterBinding的創(chuàng)建策略................ 400

第10 章 參數(shù)的驗證........... 406

10.1幾種參數(shù)驗證方式..............407

10.1.1手工驗證綁定的參數(shù)...............407

10.1.2使用ValidationAttribute特性..................411

10.1.3創(chuàng)建自我驗證數(shù)據(jù)類型...........................416

10.2以ModelValidator為核心的參數(shù)驗證系統(tǒng)................... 418

10.2.1DataAnnotationsModelValidator ........... 421

10.2.2 RequiredMemberModelValidator...........422

10.2.3ValidatableObjectAdapter.......... 425

10.2.4ErrorModelValidator ............ 426

10.3基于數(shù)據(jù)注解特性的參數(shù)驗證.......................431

10.3.1ValidationAttribute特性.............. 431

10.3.2DataAnnotationsModelValidator ............. 437

10.3.3DataAnnotationsModelValidatorProvider......... 439

10.4參數(shù)驗證流程............442

10.4.1ModelValidationNode ............. 443

10.4.2“驗證樹”是如何被建立起來的................. 448

10.4.3“必需”數(shù)據(jù)成員的驗證...........................457

10.4.4 BodyModelValidator............... 462

第11 章 Action 的執(zhí)行.................. 472

11.1 Action方法的執(zhí)行..................473

11.1.1HttpActionInvoker ........... 473

11.1.2ActionExecutor............... 477

11.2內(nèi)容協(xié)商..................484

11.2.1ContentNegotiator............. 484

11.2.2MediaTypeFormatter是如何被篩選出來的.............. 486

11.2.3如何確定響應(yīng)字符集.............................498

11.3HttpActionResult ................. 501

11.3.1無響應(yīng)主體的HttpActionResult....................... 502

11.3.2含響應(yīng)主體的HttpActionResult..................... 506

11.3.3ResponseMessageResult .......... 517

11.4HttpResponseMessage的生成.............. 518

11.4.1ActionResultConverter........... 518

11.4.2從消息處理管道來看HttpResponseMessage的生成................... 523

第12 章 過濾器........................ 527

12.1 Filter及其提供機(jī)制....................528

12.1.1Filter........ 528

12.1.2FilterProvider............... 531

12.1.3 5種Filter 類型.................. 539

12.2認(rèn)證與授權(quán)..................540

12.2.1Identity............. 540

12.2.2 Principal................... 544

12.2.3AuthenticationFilter............. 548

12.2.4AuthorizationFilter ............... 554

12.3針對Action 方法執(zhí)行前后的攔截................. 558

12.3.1ActionFilterAttribute................ 559

12.3.2實例演示:利用自定義ActionFilter實現(xiàn)對Action 方法執(zhí)行結(jié)果的緩存..............565

12.4異常處理與Filter 的屏蔽........... 572

12.4.1ExceptionFilter............... 572

12.4.2實例演示:利用自定義的ExceptionFilter集成EntLib 進(jìn)行異常處理(S1208) ............ 574

12.4.3OverrideFilter ................ 579

第13 章 安全..................... 585

13.1 IIS/ASP.NET認(rèn)證..............586

13.1.1 Basic認(rèn)證...................586

13.1.2 Digest認(rèn)證..................591

13.1.3集成Windows 認(rèn)證............. 594

13.1.4 Forms認(rèn)證.......................602

13.2 SSL/TLS............ 608

13.2.1非對稱加密...............608

13.2.2通過SSL/TLS 實現(xiàn)傳輸安全............... 614

13.2.3 SSL/TLS的應(yīng)用...............615

13.3第三方認(rèn)證....................619

13.3.1 OAuth 2.0簡介..................620

13.3.2 ImplicitAuthorization Grant ........................ 624

13.3.3Authorization Code Authorization Grant .............. 632

第14 章 跨域資源共享.............. 643

14.1同源策略.................644

14.1.1實例演示:跨域調(diào)用WebAPI.............. 645

14.1.2 JSONP............ 648

14.2 CORS規(guī)范.............654

14.2.1資源的授權(quán)...............654

14.2.2實例演示:利用自定義的MessageHandler支持跨域資源共享......... 658

14.3 CORS在ASP.NET WebAPI 中的實現(xiàn)................ 667

14.3.1實例演示:采用ASP.NETWeb API 原生的機(jī)制實現(xiàn)跨域資源共享(S1406)......... 668

14.3.2 CORS授權(quán)策略及其提供機(jī)制.............670

14.3.3資源授權(quán)的檢驗和CORS 響應(yīng)報頭的生成............. 675

14.3.4CorsMessageHandler............... 678

第15 章 Web API 的調(diào)用................. 685

15.1 HttpClient.............. 686

15.1.1HttpMessageInvoker ......... 686

15.1.2HttpClientHandler......... 687

15.1.3HttpClient............. 697

15.2客戶端消息處理管道................700

15.2.1HttpMessageHandler管道...................... 700

15.2.2HttpClientFactory .......... 703

15.3面向“對象”編程....................704

15.3.1將數(shù)據(jù)對象寫入請求消息....................704

15.3.2讀取HTTP 消息主體內(nèi)容并反序列化為數(shù)據(jù)對象........... 707

附錄A 實例列表.......... 709

媒體推薦

互聯(lián)網(wǎng)應(yīng)用尤其是移動互聯(lián)網(wǎng)應(yīng)用的普及,讓采用Web直接通信的輕量級Web Service成為主流,本書要講的正是ASP.NET Web API。它是一個全新的通信平臺,因為微軟沒有選擇在重量級框架上通過擴(kuò)展實現(xiàn)輕量級通信。本書宗旨是清晰呈現(xiàn)消息處理管道,以使讀者完全理解從接收請求到響應(yīng)回復(fù)的全流程,并徹底掌握路由、HttpController激活、Action方法的選擇與執(zhí)行、參數(shù)的綁定與驗證、過濾器的執(zhí)行和安全等相關(guān)機(jī)制。

作者簡介

蔣金楠(網(wǎng)名Artech),《WCF全面解析(上、下冊)》《ASP.NET MVC 4框架揭秘》《ASP.NET MVC 5框架揭秘》等多部暢銷IT圖書作者,現(xiàn)就職于一知名軟件公司擔(dān)任高級軟件顧問。擁有一個訪問量超過200萬的個人博客,2012年度51CTO IT博客大賽10佳得主。2007—2013年被連續(xù)7次評為微軟MVP,同時也是少數(shù)幾個跨多領(lǐng)域(Solutions Architect、Connected System、Microsoft Integration和ASP.NET/IIS )的MVP之一。

作者博客: http://www.cnblogs.com/artech

作者微博: http://www.weibo.com/artech

電子郵箱:jiangjinnan@gmail.com

微信公眾賬號:Artech2981

前言

我覺得大部分人都是“眼球動物”,他們關(guān)注的往往都是目光所及的東西。對于很多軟件從業(yè)者來說,他們對看得見(具有UI界面)的應(yīng)用抱有極大的熱忱,但是對背后支撐整個應(yīng)用的服務(wù)卻顯得較為冷漠。如果我們將整個“生態(tài)系統(tǒng)”比喻成海面上漂浮的冰山,我們所能看到的只是露出水面的冰山一角,水面之下才是一個“龐然大物”。

提到服務(wù),我們自然想到Web Service。但是傳統(tǒng)意義上的WebService卻有點名不副實,因為支撐它的其實不是Web而是SOAP,承載一個Web Service甚至可以根本不需要Web。隨著互聯(lián)網(wǎng)的普及,互聯(lián)網(wǎng)應(yīng)用(尤其移動互聯(lián)網(wǎng)應(yīng)用)已經(jīng)成為主流,“SOAP之重”已經(jīng)越來越令我們無法承受,于是采用REST架構(gòu)風(fēng)格并直接采用Web進(jìn)行通信的輕量級Web Service走進(jìn)了我們的視野并登堂入室。為了與傳統(tǒng)的基于SOAP的Web Service進(jìn)行區(qū)分,我們將后者稱為Web API。

很多人鼓吹SOAP已死,我個人對此持不同的看法。上面講的“重”與“輕”都是不帶任何感情色彩的中性詞,至于優(yōu)劣評價則決定于它們是否適合應(yīng)用的場景。到目前為止,對于企業(yè)級應(yīng)用之間的內(nèi)部集成互聯(lián),我覺得傳統(tǒng)的Web Service依然是最好的選擇。傳統(tǒng)WebService應(yīng)用的領(lǐng)域貌似在不斷被Web API占據(jù),但是后者并不能完全被視為前者的替代品,它只是讓“踩過界”的Web Service退回到它應(yīng)該堅守的領(lǐng)地。WebService和Web API在各自適合的領(lǐng)域各司其職,形成一種理想的“路歸路、橋歸橋”的狀態(tài)。

Web Service和Web API的合理布局同樣也體現(xiàn)在微軟技術(shù)平臺上。WCF在過去是唯一的選擇,這是一個具有“SOAP”基因的通信平臺,微軟后來利用擴(kuò)展讓它提供了針對REST的支持。正因為如此,如果使用WCF來構(gòu)建Web API的話,我們依然需要采用傳統(tǒng)的編程方式,Web API的“簡單、快捷”完全得不到體現(xiàn)。微軟意識到在一個“重量級”通信框架上通過擴(kuò)展實現(xiàn)“輕量級”的通信,還不如重新構(gòu)建一個通信平臺,于是ASP.NET Web API應(yīng)運而生。

這不是一本傳統(tǒng)意義上的入門書籍

任何一本書都具有對應(yīng)的受眾群體,所以我不得不將這句話放在最前面,并且希望所有打算購買此書的讀者能夠看到。如果你之前對ASP.NET Web API(或者ASP.NET MVC)完全沒有概念,在某一天突然被安排去開發(fā)一個需要使用到ASP.NET Web API的項目,你希望有那么一本書能夠在一個星期或者更短的時間內(nèi)幫助你掌握ASP.NET Web API基本的編程方式,那么這本書不適合你。

我個人很喜歡金庸和古龍的武俠小說,我覺得學(xué)習(xí)某種開發(fā)框架就像是練一門武功。一門武功具有“招式”和“心法”之分,外在的招式可以速成,而內(nèi)功心法絕非一蹴而就,但是沒有內(nèi)功心法支撐的招式只是花拳繡腿。對于某種開發(fā)框架來說,基本的編程模式就是招式,框架本身的設(shè)計就是心法。

“訓(xùn)練招式”和“傳授心法”的書我們都需要,并且不能根據(jù)這點來評判一本書的優(yōu)劣。就本書而言,這是一本苦練內(nèi)功心法的書。對于大部分讀者來說,我覺得在很短的時間內(nèi)完全掌握本書的內(nèi)容并不是一件容易的事情,所以如果你沒有決定花較多的時間和精力閱讀此書的話,我還是建議你選擇其他相關(guān)的書籍。

我在《ASP.NET MVC 4框架揭秘》一書中寫過這么一段話:“掌握ASP.NET MVC具有三個層次,了解基本的編程模式為第一層次,能夠清晰認(rèn)識ASP.NET MVC框架本身從請求接收到響應(yīng)回復(fù)的整個流程為第二層次,最高的層次則是能夠靈活自由地利用ASP.NET MVC提供的擴(kuò)展點解決開發(fā)過程的實際問題”。這句話同樣適用于針對ASP.NET WebAPI的學(xué)習(xí),本書寫作的目的是使第一層次的讀者快速進(jìn)入第二層次和第三層次。

這是一本實用的書嗎

可能有人覺得這本講述ASP.NET Web API架構(gòu)設(shè)計和剖析框架運行原理的書沒有什么“實際”的意義,因為我們每天的日常工作就是編程,知道了ASP.NET Web API從請求接收到響應(yīng)回復(fù)之間的整個處理流程并不會對實際工作產(chǎn)生實質(zhì)性的改變。其實這種想法是極端錯誤的,因為我們編寫的程序最終是在框架上運行的,程序的高效性決定于它是否能夠最大限度地“迎合”框架的運行機(jī)制,所以了解ASP.NET Web API框架的運行原理有利于我們寫出高質(zhì)量的程序。

常年以來,我個人的主要工作就是維護(hù)和設(shè)計公司內(nèi)部的一個開發(fā)框架。這是一個在集團(tuán)內(nèi)部廣泛采用的針對.NET的開發(fā)框架,它的存在使流水線式的軟件開發(fā)成為可能,這個框架不僅僅提高了生產(chǎn)效率和產(chǎn)品質(zhì)量,還降低了對最終開發(fā)人員技能的要求。之所以能夠做到這一點,原因在于幾乎所有與業(yè)務(wù)無關(guān)的功能(比如日志、異常處理、權(quán)限控制、安全審核、事務(wù)處理等)都由這個框架來完成,最終的開發(fā)人員只需要實現(xiàn)具體的業(yè)務(wù)邏輯就可以了。

對于這個開發(fā)框架來說,針對相應(yīng)開發(fā)技術(shù)所做的擴(kuò)展和工具是一個重要的組成部分,所以出于本職工作的需要,我不得不對采用的主流開發(fā)技術(shù)進(jìn)行深入研究,因為只有在對其內(nèi)部運行原理了然于胸的情況下才能精準(zhǔn)地找到一個最適合的擴(kuò)展點來解決具體項目開發(fā)過程中遇到的問題。很多讀者都問過我同樣一個問題:“為什么你能夠了解那么多關(guān)于WCF、ASP.NET MVC和ASP.NET Web API這些技術(shù)的內(nèi)部細(xì)節(jié)?”我現(xiàn)在告訴你們答案:因為這是我本職工作的一部分。為了將這些實用的研究成果服務(wù)于更多的人,我將它們寫到我的多本書中。

可以將本書當(dāng)成一本講述設(shè)計架構(gòu)的書來讀

在我的周圍存在著這樣一些人,這些人以剛畢業(yè)一兩年的大學(xué)生為主,他們大都工作勤奮、聰明好學(xué),手中經(jīng)常捧著GoF的《設(shè)計模式》,總是希望將書中的設(shè)計模式應(yīng)用到具體項目之中,或者希望通過項目的實踐來印證他們在書本上學(xué)到的設(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è)計最好的素材嗎!

就我個人而言,很多設(shè)計架構(gòu)方面的知識都是近年來在深入研究WCF、ASP.NET MVC、ASP.NET Web API、EnterpriseLibrary和Unity這些開發(fā)技術(shù)和開源框架的過程中獲取的。對于那些只會拿貓、狗這些東西舉例的設(shè)計模式的書籍來說,這些內(nèi)容是學(xué)不到的。本書除了介紹一些技術(shù)細(xì)節(jié),實際上還將ASP.NET Web API的整個架構(gòu)設(shè)計展現(xiàn)在了讀者面前,相信有心的讀者會從中學(xué)到不少關(guān)于架構(gòu)設(shè)計方面的知識。

如果你手頭剛好有一本《ASP.NET MVC 4框架揭秘》(《ASP.NETMVC 5框架揭秘》也即將出版),可以將這兩本書對照著一起看。對于相同的功能點,認(rèn)真思考一下為何它們在ASP.NET MVC和ASP.NET Web API中會采用不同的設(shè)計,兩種設(shè)計孰優(yōu)孰劣,我想收獲會更大。

本書承載了個人針對新技術(shù)的學(xué)習(xí)方法

在過去幾年中,有些熱心的讀者和網(wǎng)友都向我咨詢過一個問題:“對于一門新的技術(shù),如何能夠在短時間內(nèi)掌握其精髓”。這是一個學(xué)習(xí)方法的問題,雖然我覺得每個人都有適合自己的學(xué)習(xí)方法,但我還是刻意地將我個人采用的方式體現(xiàn)在本書之中,希望它對某些讀者有用。如果讀者是個有心人,應(yīng)該可以看到我在介紹某個知識點的時候,不僅僅會告訴你“是什么”和“為什么”,還會告訴你“如何證明是這樣”。換句話說,我不僅僅將某個論點拋給你,還為你展現(xiàn)了整個論證的過程,實際上我在學(xué)習(xí)過程中就是這么做的。

本書的寫作特點

本書具有一個與其他中文原創(chuàng)或者翻譯書籍截然不同的特點,那就是幾乎所有的術(shù)語都采用英文,比如HttpController、Action和Model,在本書中并沒有翻譯成中文“HTTP控制器”、“操作”和“模型”。因為我認(rèn)為很多術(shù)語其實很難找到一個語義完全等同的中文詞組或短語與之對應(yīng),對于習(xí)慣了將英文作為“開發(fā)語言”的讀者來說,強(qiáng)行翻譯其實是不必要的。

除此之外,這不是一本純理論的書,而是一本“實證型”的書,在書中提供了120個可供單獨下載的實例。這些實例在本書中具有不同的作用,有的是為了探測和證明對應(yīng)的論點,有的是為了演示所使用的某種編程技巧。

本書讀者

雖然這不是一本傳統(tǒng)意義上的入門書籍,但是我不會根據(jù)讀者的技能將某一部分人排除在本書的讀者之外。與市面上絕大部分同類書籍相比,我寧愿說這本書走得更遠(yuǎn)而不是鉆得更深,因為雖然本書更加近距離地觸及了ASP.NET Web API框架內(nèi)核,但是涉及的內(nèi)容本身并沒有什么高深莫測之處,對于具有基本.NET基礎(chǔ)的讀者應(yīng)該都看得懂。所以我覺得本書適合那些對深層次了解ASP.NET Web API的開發(fā)人員和架構(gòu)師,不論讀者處于怎樣的層次總會找到自己知識的“盲點”。

關(guān)于作者

蔣金楠(網(wǎng)名Artech),《WCF全面解析》(上、下冊)、《ASP.NET MVC 4框架揭秘》《ASP.NETMVC 5框架揭秘》等多部暢銷IT圖書作者,現(xiàn)就職于一家知名軟件公司擔(dān)任高級軟件顧問。擁有一個訪問量超過200萬的個人博客(http://www.cnblogs.com/artech),被評為2012年度51 CTO 十大杰出IT博客。2007~2013年被連續(xù)7次評為微軟MVP,同時也是少數(shù)幾個跨多領(lǐng)域(Solutions Architect、ConnectedSystem、Microsoft Integration和ASP.NET/IIS)的MVP之一。

致謝

本書得以出版,需要感謝本書的編輯張春雨和劉舫,他們的專業(yè)水準(zhǔn)和責(zé)任心為本書提供了質(zhì)量保證,多次合作產(chǎn)生的默契讓我對下次合作充滿期待。此外,最需要感謝的是我的妻子徐妍妍,只有我知道她在本書提交給出版社之前所做的校對工作有多么重要。

本書支持

本書針對最新版本的ASP.NET Web API,同時涉及太多底層實現(xiàn)的內(nèi)容,所以大部分內(nèi)容是找不到任何現(xiàn)成參考資料的,這些內(nèi)容大都來自于作者對源碼的分析和試驗的證明。本書的最初版本是根據(jù)ASP.NET MVC Web API 2 Beta撰寫的,后來微軟發(fā)布了正式版,然后作者根據(jù)正式版對原來的內(nèi)容進(jìn)行了大量改動。這些因素加上作者自身能力的限制,都可能造成一些無法避免的錯誤或者偏差,如果讀者在閱讀過程中發(fā)現(xiàn)了任何問題,希望能夠反饋給我。如果讀者遇到任何ASP.NET MVC、ASP.NET Web API或者WCF的問題,也歡迎與我通過以下方式進(jìn)行交流。

作者博客:http://www.cnblogs.com/artech

作者微博:http://www.weibo.com/artech

電子郵箱:jiangjinnan@gmail.com

微信公眾賬號:Artech2981

本書的每一章節(jié)都會提供一系列實例演示,讀者可以根據(jù)編號(如S101、S202 等)從下載的源代碼壓縮包中找到對應(yīng)的實例。本書的附錄列出了可供下載的所有實例演示的列表和相關(guān)描述。源代碼的下載地址為:www.broadview.com.cn。

 

ASP.NET Web API 2框架揭秘


本文題目:ASP.NETWebAPI2框架揭秘
本文來源:http://weahome.cn/article/gegsjs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部