webapi接口開發實例,ASP.NET Web API 2框架揭秘

 2023-12-09 阅读 23 评论 0

摘要:ASP.NET Web API2框架揭秘(.NET領域再現力作頂級專家精講微軟全新輕量級通信平臺) 蔣金楠 著?? ISBN 978-7-121-23536-8 2014年7月出版 定價:108.00元 732頁 16開 編輯推薦 √這是一本注重實證的書,功能各異、多達120個可供下載的示例,大量

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

蔣金楠 著??

ISBN 978-7-121-23536-8

2014年7月出版

定價:108.00元

732頁

16開

編輯推薦

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

√全新的學習方法,通過完整論證來實現徹底的融會貫通。

√本書可以作為講設計架構的書來讀,因為其以經過長期檢驗的經典架構作為學習素材,可很好地啟發深度思考。

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

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

內容提要

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

除此之外,《ASP.NET Web API 2框架揭秘》在很多章節還從設計的角度對ASP.NET Web API 的架構進行了深入分析,所以可以將《ASP.NET Web API 2框架揭秘》當作一本架構設計的書來讀。

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

目錄

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

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

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

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

1.1.3 HTTP 事務................................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 構建解決方案.......................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 調用Web API ..........................28

1.3.6 創建一個“聯系人管理器”應用......................31

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

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

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

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

2.1.3 ASP.NET 路由系統..................................47

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

2.1.5 根據路由規則生成URL..............................68

2.1.6 HttpHandler 的動態映射............................70

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

2.2.1 請求與響應.....................73

2.2.2 ASP.NET WebAPI 路由系統..................77

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

2.3 兩個路由系統的銜接.........................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實現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 是如何被創建的...................151

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

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

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

4.2.4HttpController 的創建................................ 173

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

4.3 IoC 的應用.....................................................183

4.3.1 利用Unity 來認識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方法參數描述信息................ 204

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

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

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

5.3.3 目標Action 方法的選擇..................... 208

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

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

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

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

6.1.3 讓URL 模板能夠盡可能反映資源的層次結構.................... 222

6.1.4 為路由變量設置約束......................226

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

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

6.1.7 設置URI 前綴....................................... 230

6.2 約束表達式的解析...........................................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 子路由對象的創建...................248

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

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

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

7.1.1 基于HttpRouteData的參數綁定............. 263

7.1.2 基于查詢字符串的參數綁定..............267

7.2 Model 元數據的解析...................................268

7.2.1 Model 元數據的層次化結構.................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 針對不同目標類型的Model綁定....................... 314

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

8.3.2 復雜類型...................318

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

8.3.4 數組................340

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

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

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

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

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

第9 章 參數的綁定............... 359

9.1 參數綁定系統全景展示...............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 的創建策略.......................... 392

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

9.3.2 注冊參數綁定規則..............................397

9.3.3HttpParameterBinding 的創建策略................ 400

第10 章 參數的驗證........... 406

10.1 幾種參數驗證方式..............407

10.1.1 手工驗證綁定的參數...............407

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

10.1.3 創建自我驗證數據類型...........................416

10.2 以ModelValidator為核心的參數驗證系統................... 418

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

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

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

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

10.3 基于數據注解特性的參數驗證.......................431

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

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

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

10.4 參數驗證流程............442

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

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

10.4.3 “必需”數據成員的驗證...........................457

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

第11 章 Action 的執行.................. 472

11.1 Action 方法的執行..................473

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

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

11.2 內容協商..................484

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

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

11.2.3 如何確定響應字符集.............................498

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

11.3.1 無響應主體的HttpActionResult....................... 502

11.3.2 含響應主體的HttpActionResult..................... 506

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

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

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

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

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

12.1 Filter 及其提供機制....................528

12.1.1Filter........ 528

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

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

12.2 認證與授權..................540

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

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

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

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

12.3 針對Action 方法執行前后的攔截................. 558

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

12.3.2 實例演示:利用自定義ActionFilter實現對Action 方法執行結果的緩存..............565

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

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

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

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

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

13.1 IIS/ASP.NET 認證..............586

13.1.1 Basic 認證...................586

13.1.2 Digest 認證..................591

13.1.3 集成Windows 認證............. 594

13.1.4 Forms 認證.......................602

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

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

13.2.2 通過SSL/TLS 實現傳輸安全............... 614

13.2.3 SSL/TLS 的應用...............615

13.3 第三方認證....................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 實例演示:跨域調用WebAPI.............. 645

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

14.2 CORS 規范.............654

14.2.1 資源的授權...............654

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

14.3 CORS 在ASP.NET WebAPI 中的實現................ 667

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

14.3.2 CORS 授權策略及其提供機制.............670

14.3.3 資源授權的檢驗和CORS 響應報頭的生成............. 675

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

第15 章 Web API 的調用................. 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 將數據對象寫入請求消息....................704

15.3.2 讀取HTTP 消息主體內容并反序列化為數據對象........... 707

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

媒體推薦

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

作者簡介

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

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

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

電子郵箱:jiangjinnan@gmail.com

微信公眾賬號:Artech1981

前言

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

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

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

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

這不是一本傳統意義上的入門書籍

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

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

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

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

這是一本實用的書嗎

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

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

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

可以將本書當成一本講述設計架構的書來讀

在我的周圍存在著這樣一些人,這些人以剛畢業一兩年的大學生為主,他們大都工作勤奮、聰明好學,手中經常捧著GoF的《設計模式》,總是希望將書中的設計模式應用到具體項目之中,或者希望通過項目的實踐來印證他們在書本上學到的設計模式,但是理論和實踐之間的距離總讓他們感到困惑。

要從真實的項目或者產品中學習“實用”的軟件架構設計知識,先得確定目標項目或者產品中采用的架構思想和設計模式是正確的,而我們參與的很多項目其實被“架構”得一塌糊涂。對于像ASP.NET這樣的產品,其基礎架構能夠在很長一段時間內保持不變,本身就證明了應用在上面的架構設計的正確性,它們不正是我們學習架構設計最好的素材嗎!

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

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

本書承載了個人針對新技術的學習方法

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

本書的寫作特點

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

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

本書讀者

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

關于作者

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

致謝

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

本書支持

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

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

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

電子郵箱:jiangjinnan@gmail.com

微信公眾賬號:Artech1981

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

?


版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/193884.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息