《WCF全麵剖析》-章節內容簡介
(上冊)
第1章 WCF簡介(WCF Overview)
本章簡單講述了WCF產生的曆史背景,以及在微軟產品線中所處的地位。為了使讀者對基於WCF的編程模型有一個直觀的印象,我們將帶領讀者創建一個完整的WCF應用。本章實例應用涵蓋了構建一個基本WCF應用所需的所有步驟,包括服務契約的定義、服務的實現、服務的寄宿、元數據的發布和導入、服務代理的創建和服務調用等。
第2章 地址(Address)
作為終結點三要素之一的地址在WCF應用編程接口中通過EndpointAddress表示,本章會從編程的角度對該類型進行詳細的介紹。端口共享對於WCF服務的部署具有重要的意義,我們會分別介紹基於不同傳輸協議(HTTP/HTTPS和TCP)的端口共享機製在WCF中是如何實現的。終結點地址具有邏輯地址和物理地址之分,本章會詳細講述如何在客戶端和服務端實現兩者的分離。在本章的最後會對請求監聽和消息分發機製進行深入解析。
第3章 綁定(Binding)
WCF整個框架大體分為服務模型層和信道層,作為終結點三要素之一的綁定是整個信道層的締造者。為了全景展示整個綁定模型,涉及到的對象包括綁定元素、信道監聽器、信道工廠、信道等。綁定本質上是一係列相關綁定元素的有序組合,我們將從綁定元素的構成來分析常見係統綁定的本質區別,以及通過綁定元素重組來創建自定義綁定。
第4章 契約(Contract)
契約是組成終結點的第三個元素,本章會從編程和服務描述的角度係統地介紹服務契約。組成服務契約的操作表示基於某種模式的消息交換和消息本身的結構,本章會著重介紹基於三種消息交換模式的契約操作之間的差異,以及如何編程實現對客戶端的回調。多線程在服務調用中具有普遍的意義,我們會全方麵地介紹多種不同的異步調用方法在WCF中的實現。在本章的結尾,我們會詳細討論操作選擇和執行機製。
第5章 序列化(Serialization)
序列化/反序列化最終通過XmlSerializer和DataContractSerializer這兩個序列化器來實現,我們會詳細介紹它們參與序列化和反序列化采用的序列化規則。數據契約是WCF中定義數據的主要方式,本章會著重介紹如何通過DataContractAttribute和DataMemberAttribute這兩個特性來定義數據契約。確定對象的類型是保證序列化/反序列化成功的先決條件,我們會係統地介紹如何通過“已知類型”讓某些類型成為序列化器預先知道的類型。基於集合和泛型類型的數據契約比較特殊,我們會在專門的一節對它們進行詳細介紹。本章的最後會講述數據契約等效性的概念,以及針對請求消息和回複消息的序列化/反序列化在WCF中是如何實現的。
第6章 消息(Message)
消息是通信的載體,本章專門介紹關於消息的話題。我們首先會通過對SOAP的介紹讓讀者知道一個標準的消息應該具有怎樣的結構。在WCF的應用編程接口中,消息通過類型System.ServiceModel.Channels.Message表示,我們會針對該類型來介紹基於消息的基本操作和狀態機。除了消息主體外,我們可以通過消息報頭和消息屬性來攜帶額外的控製信息,本章會詳細講述消息報頭和消息屬性是如何添加和讀取的。消息契約可以將某個類型的屬性/字段分別定義成消息的主體成員和報頭成員,我們會係統地介紹基於消息契約的編程。本章以消息編碼作為結尾,通過介紹我們可以知道消息在發送前的編碼和接收後的解碼在WCF中是如何實現的。
第7章 服務寄宿(Hosting)
我們通過宿主應用程序來承載服務旨在為服務提供一個運行環境。服務契約通過ServiceHost來實現,以終結點為核心的服務描述是創建ServiceHost的基礎,所以本章的開始會對服務描述進行係統的介紹。IIS/WAS寄宿是我們常用的服務寄宿方式,為了深刻地理解背後的運行機製,我們對不同版本的IIS和ASP.NET管道進行了詳細介紹。而IIS/WAS寄宿具有ASP.NET兼容模式和並行模式之分,本章將從實現原理的角度深入剖析兩者的差別。我們將針對Windows服務的服務寄宿方式放在本章的結尾進行介紹。
第8章 客戶端(Client)
我們通過服務代理進行服務調用,而服務代理可以直接通過ChannelFactory[TChannel]來創建,也可以通過導入服務元數據的方法直接生成繼承自ClientBase[TChannel]的服務代理類。本章會詳細講述ChannelFactory[TChannel]和ClientBase[TChannel]。通過本章的介紹我們會知道,從ChannelFactory[TChannel]被創建到被開啟,再到通過ChannelFactory
[TChannel]創建服務代理,最後將服務代理開啟並進行服務調用的各個階段WCF在背後都為我們做了什麼。
第9章 實例化與會話(Instancing and Session)
實例化和會話是WCF中兩個重要的概念,前者旨在實現服務實例對象的激活,後者則實現對客戶端調用狀態的保持。本章將詳細介紹三種典型的實例化模式所表現的行為、實現的原理及各自適合的場景。在介紹會話的部分會深入剖析會話如何保持客戶端多次服務調用的狀態,以及會話、實例化模式、綁定和信道之間的關係。
第10章 REST服務(REST Service)
REST是直接建立在Web上的一種麵向資源的軟件架構風格,WCF通過Web
HTTP編程模型對REST提供了很好的支持。本章會係統地講述組成Web HTTP編程模型的重要類型和組件。URI模板是WCF
REST的一個重要的概念,讀者通過本章的介紹不僅會了解定義URI模板的基本語法,還會對基於URI模板的操作選擇機製有一個深刻的理解。較之SOAP,WCF
REST采用更為複雜的消息格式化機製,本章通過對消息格式化的介紹讓讀者明白不同消息格式和主體風格的消息是如何格式化的。輸出緩存、條件獲取和條件更新的介紹被放在本章的最後部分。
第11章 WCF實例研究(WCF in Practice)
本章通過一個簡單的電子商務網站VideoMall指導讀者如何利用WCF構建一個完整的分布式應用。本實例不僅會體現WCF的基本編程方式,還會涉及一些軟件架構和設計方麵的介紹,比如模塊化、分層、IoC和AOP等。本實例還體現了很多針對WCF的擴展,比如通過擴展實現了與Unity、EntLib的集成。
(下冊)
第1章 異常處理(Exception Handling)
本章首先會對WCF基本異常處理模式進行介紹,讀者借此會了解到如何進行異常的拋出與捕獲,異常詳細信息如何傳遞,以及錯誤契約該如何定義。異常和消息是錯誤信息的兩種不同的載體,我們會詳細介紹通過兩種不同形式承載的錯誤信息是如何進行轉換的。WCF的擴展性在異常處理方麵具有較好的體現,本章的最後部分會通過實例演示的方式講述基於自定義ErrorHandler的異常處理擴展。
第2章 元數據(Metadata)
用於描述服務的元數據幫助客戶端創建匹配的終結點進行服務調用,WCF具有一個完整的元數據體係實現元數據的導出、發布、獲取和導入,本章會從這4個方麵來深入剖析整個元數據架構體係。不論是元數據本身還是元數據的發布,都不是微軟在Windows平台內部的閉門造車,而是遵循一係列的開放標準,這些標準包括WS-Policy、WS-Transfer、WSDL和WS-MEX等,本章同樣會涉及到對這些WS-*規範的介紹。
第3章 事務(Transaction)
基於WCF的分布式事務直接建立在現有的Windows事務管理體係之上,本章會對該事務處理模型進行詳細的介紹。WCF事務具有OleTx和WS-AT兩個基本協議,我們會對WS-AT以及相關的WS-Coordination規範進行相應的介紹。在針對事務編程模型的介紹中,我們會了解到如何通過服務契約定義事務流轉的策略,如何通過對綁定的設置實現事務的流轉,以及如何控製事務相關的行為。在本章的最後,我們會詳細講述事務流轉和事務自動登記在WCF框架體係中是如何實現的。
第4章 並發與限流(Concurrency and Throttling)
並發指的是針對同一個封裝服務實例的實例上下文的並行調用,WCF具有Single、Multiple和Reentrant三種基本的並發模式,本章會詳細講述基於不同實例化方式的Single和Reentrant並發模式是如何實現的。線程的親和性表示針對服務調用請求的處理與服務寄宿時的同步上下文的綁定,本章會詳細介紹線程的親和性是如何產生的,以及如何解除線程的親和性。限流旨在控製相應的並發量以實現對資源的合理使用,進而確保服務的可用性,在本章的最後部分我們會詳細講述如何設置三個限流閾值,以及限流機製的實現原理。
第5章 可靠會話(Reliable Sessions)
可靠會話通過消息確認和超時重傳機製保證了通信的可靠性,實現了消息的接收保障、重複篩選和有序交付。可靠會話是對WS-RM的實現,本章的開始會進行關於WS-RM的相關介紹。可靠會話僅僅涉及到綁定,我們會通過實例演示的方式來介紹圍繞著綁定的可靠會話編程模型。在本章的最後,我們會從消息交換的角度來深入剖析可靠會話是如何實現上述三個可靠通信訴求的。
第6章 隊列服務(Queued Service)
WCF是Windows平台下傳統分布式技術集大成者,這裏被集成的一項分布式技術就包括MSMQ,我們把采用MSMQ作為通信手段的服務稱為隊列服務。為了鞏固讀者針對MSMQ的相關知識,我們會對MSMQ以及針對System.Messaging的編程模型進行簡單的介紹。同樣是通過三要素組成的終結點,隊列服務對終結點有著不同的要求,我們會討論隊列服務終結點的獨特之處。隊列服務針對事務和會話有著完全不同的特性和實現方式,隊列服務下的事務和會話是本章的一個重點。本章的最後部分會講述在客戶端和服務端如何進行錯誤處理。
第7章 傳輸安全(Transfer Security)
傳輸安全通過身認證讓服務和客戶端在進行功能性消息交互之前確定對方的身份,通過對消息的簽名和加密確保消息的一致性和機密性。傳輸安全具有兩種基本模式,即Transport和Message安全模式,本章針對不同的綁定類型對這兩種安全模式的支持進行了係統的介紹。
第8章 授權與審核(Authorization and Auditing)
WCF提供了針對操作的聲明式授權讓某個訪問者隻能執行被授權的操作。Windows用戶組和ASP.NET
Roles這兩種現成的授權方式可以被直接使用,同時支持自定義的授權模式。本章著重介紹不同授權模式的編程方式和實現原理。所謂的安全審核就是針對認證和授權所做的針對EventLog的日誌記錄,我們將通過具體的實例來講述如何審核編程和實現審核背後的故事。
第9章 擴展(Extension)
整本書都在提及WCF的擴展性,本章對此進行專門的介紹。根據具體需要對WCF進行自由而靈活的擴展的前提是我們對整個WCF運行框架體係有一個深刻的認識,所以本章會為你帶來針對WCF客戶端和服務端運行框架的全景展示,並在此基礎上介紹WCF包含的幾乎所有的擴展點。
第10章 WCF 4.0新特性(New Feathures in WCF 4.0)
其實整本書都是針對WCF 4.0的,關於WCF 4.0針對現有功能的一些小改動已經包含在各個章節中。本章著重介紹WCF 4.0提供的一些全新的特性,包括默認終結點、默認綁定和行為配置、標準終結點、無.svc文件服務激活、路由服務和服務發現等。
微信公眾賬號:大內老A
微博:www.weibo.com/artech
如果你想及時得到個人撰寫文章以及著作的消息推送,或者想看看個人推薦的技術資料,可以掃描左邊二維碼(或者長按識別二維碼)關注個人公眾號(原來公眾帳號蔣金楠的自媒體將會停用)。
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁麵明顯位置給出原文連接,否則保留追究法律責任的權利。
最後更新:2017-10-26 11:34:50