內容簡介
本書是WCF的權威指南。WCF是Microsoft推出的
在Windows操做系統下開發面向服務應用程序的統一平臺,是革命性的技術平臺。做爲微軟授予的「軟件英傑」,本書做者Juval Lwy曾經參與了WCF的戰略性設計,並與WCF的開發團隊一同合做,所以本書具備很高的實用價值,它對WCF進行了深刻的技術剖析,而非死板的文檔化描述。本書關注隱藏在特殊設計決策以後的根本原理,這些原理包括
SOA開發中極度匱乏的文檔,以及難以理解的特性等。
本書關注隱藏在特殊設計決策以後的根本原理,這些原理包括soa開發中極度匱乏的文檔,以及難以理解的特性等。經過本書,開發者與架構師不只可以瞭解如何進行wcf程序設計,還可以掌握相關的
設計準則、最佳實踐以及wcf存在的缺陷。
本書包括
50多個工具和輔助類,以及70多個設計圖,它們都設計用來提升咱們的生產力,保障wcf服務的質量,同時能彌補wcf自身存在的一些缺陷,並幫助簡化和自動化特定任務。
除了介紹面向服務的基礎知識外,本書涵蓋了如下內容:
·
服務契約分解。
·事務與錯誤處理。
·
數據契約版本控制與封送。
·
併發管理。
·
可伸縮性策略。
·
隊列服務。
·
操做、調用與事件。
·
面向服務安全性。
本書從軟件工程的角度出發,深刻探索了wcf的每一個主題。本書可以使您如虎添翼,
從而設計出可維護的、可擴展的、可重用的soa應用程序。
譯者簡介
張逸,正大軟件集團高級技術管理人員、系統架構師。前後在中興通信、HP等國內外大型軟件企業任職,參與了AAA、BOE—CIMS、NCIC—CRM和EAS等項目的管理、設計與開發。他主要專一的技術領域爲,他熟悉
C#、Web Service、 Remoting和WCF等技術,參與了
大型項目的分佈式架構設計以及企業信息化解決方案的實施。他是
《軟件設計精要與模式》一書的做者,在面向對象領域具備必定造詣,
精通設計模式、測試驅動開發、極限編程與UML等技術或思想的運用。此外,他還擔任公司的軟件項目管理工做與技術團隊的創建。
編輯推薦
適讀人羣 :計算機程序員和計算機程序設計架構師
本書介紹了關於WCF深刻、詳細、系統的知識,能夠幫助咱們學習並
構建可維護、可擴展、可複用的應用系統。本書經過告訴咱們
「爲何」以及「如何」使用WCF進行開發來幫助咱們精通WCF編程,讓咱們成長爲一名出色的軟件工程師。
目錄
序
前言
第1章 wcf基礎
什麼是wcf
服務
地址
契約
託管
綁定
終結點
元數據交換
客戶端編程
編程方式配置與管理方式配置
wcf體系架構
使用通道
可靠性
第2章 服務契約
操做重載
契約的繼承
服務契約的分解與設計
. 契約查詢
第3章 數據契約
序列化
數據契約特性
數據契約層級
數據契約等效性
版本控制
枚舉
委託與數據契約
數據集與數據表
泛型
集合
第4章 實例管理
行爲
單調服務
會話服務
單例服務
分步操做
實例停用
限流
第5章 操做
請求-應答操做
單向操做
回調操做
事件
流操做
第6章 錯誤
錯誤與異常
錯誤契約
錯誤處理擴展
第7章 事務
恢復的挑戰
事務
事務傳播
事務協議和管理器
事務類
事務型服務編程
顯式事務編程
服務狀態管理
實例管理與事務
回調
第8章 併發管理
實例管理與併發
服務併發模式
實例與併發訪問
資源與服務
資源同步上下文
服務同步上下文
定製服務同步上下文
回調與客戶端安全
回調與同步上下文
異步調用
第9章 隊列服務
離線服務與客戶端
隊列調用
事務
實例管理
併發管理
傳遞故障
回放失敗
隊列調用與聯機調用
響應服務
http橋
第10章 安全
身份驗證
受權
傳輸安全
身份管理
整體策略
場景驅動方式
局域網應用程序
互聯網應用程序
b2b應用程序
匿名應用程序
無安全
場景總結
聲明式安全框架
安全審覈
附錄a 面向服務概述
附錄b 發佈-訂閱服務
附錄c wcf編碼規範
序言
對於
分佈式系統,或者說業界不斷說起的
互聯繫統的設計與構建,我與本書做者Juval可謂志同道合。咱們經歷了類似的技術歷程,雖然咱們效力於不一樣的公司,負責不一樣的項目,工做在不一樣的地方,但咱們卻有着共同的目標。.
20世紀90年代早期,咱們開始了對一種新技術理念的探索,即實現計算機之間的通訊與交互。這種被稱爲分佈式系統應用程序的平臺技術也逐漸爲世人所瞭解。隨着工做站與服務器硬件的逐漸普及,經濟因素再也不成爲制約發展的瓶頸,構建不依賴於單事務網絡中心的大型系統就成爲了技術熱點。對於大範圍的數據交換系統而言,一樣如此。在過去,個人電話公司若是要求每秒鐘傳遞超過1200位的數據幾乎是不可能的,而在現在看來連這都達不到簡直難以想象。在一樣的線路上,今天的傳輸速度已經達到了6Mbit/s。這真是一個激動人心的時代啊。
隨着分佈式計算技術的逐漸成熟,在90年代早期分屬兩大陣營的大型分佈式系統技術漸露崢嶸,即數字設備公司(最終被康柏兼併,併入惠普)主導的DCE技術,以及OMG組織(主要由IBM支持)倡導的CORBA技術。然而在1996~1997期間,全部這些傑出的工程學成果卻忽然停滯不前。
由於此時是互聯網的世界,整個世界都瘋迷於HTML、HTTP、風險投資以及IPO(Initial Public Offerings,首次公開募股)。整個行業花費了整整10年的時間才逐漸從泡沫經濟帶來的崩潰中恢復過來。不只是經濟的復甦,技術的發展也從新走回正軌。隨之獲益的是分佈式系統技術由此打破了過去由兩大陣營各佔半壁江山的局面,多達數十種新的分佈式技術如雨後春筍通常展示在人們眼前,使咱們擁有了更多的抉擇權。
直到2007年,整個行業仍然在爲分佈式系統的正確編碼方式爭論不休。Sun公司或者BEA力主Java;而我在微軟的同事(包括我)則堅決地主張C#或者Visual Basic纔是最佳的實現方式。不管是Sun、BEA、IBM仍是微軟,都但願機器之間的通訊標準可以達成一致。試想昔日的DCE與CORBA之爭,正是由於達成了一致的標準規範才爲現在的SOAP 1.1奠基了基礎,從而開創了分佈式技術的盛大場面。..
自從SOAP 1.1做爲技術說明(Technical Note)被提交給W3C,到如今已有超過6年的歷史。期間,多家行業合做商共同開發與協定了衆多基於SOAP的規範,從包括尋址以及衆多安全選項的基礎規範,到諸如原子事務協做的企業協議。我在微軟的團隊,仍然非正式地稱呼咱們的產品爲「Indigo」,它表明了整個開發與協商過程當中耗費的全部心血。若是沒有IBM、微軟以及其餘合做夥伴對建立通用標準集的大力支持,在競爭如此激烈的企業領域幾乎不可能存在開放標準的框架,更不可能具備支持多個開發商以及各類平臺的多種實現。
誠然,WCF的實現超出了預計須要花費的時間。標準的協定耗費了大量時間,畢竟咱們不能只顧着發佈本身的軟件(Windows Communication Foundation, WCF),而不考慮它與咱們的行業合做夥伴以及競爭者之間的互操做性。設計一樣如此,對於那些具備分佈式系統開發經驗的客戶而言,他們花費了大量時間學習以及掌握了咱們以前提供的分佈式系統技術,包括
Web服務加強(WSE)、.NET Remoting、消息傳輸/MSMQ以及企業服務/COM+,咱們在發佈軟件的同時必須考慮這些客戶。
在我剛纔引用的技術清單中,包含了五種技術。若是使用非託管代碼,則還有更多的技術平臺。
WCF的其中一個最重要的設計目標就是經過簡單的方式將這些技術集合起來,以一種方式進行編程。不論是構建一個
隊列應用程序、事務型的N層應用程序、P2P客戶端、RSS種子服務器,仍是構建本身的企業服務總線,都再也不須要掌握那些只能解決部分問題的多種技術。咱們只須要學習和使用WCF便可。這就是以一種方式編程的魅力所在。
本書展現了大量微軟已經構建好的技術細節,它們能夠做爲您的應用程序與服務的基礎。在本書中,做者以享有盛譽的寫做技巧,深刻淺出而又準確細緻地介紹了WCF的體系架構。做爲微軟互聯框架團隊成員的咱們,也爲本身構建的這一產品深感自豪。
咱們爲開發者提供了一個統一的分佈式技術體系架構,它具備普遍的互操做性,全面提高了面向服務的特性。同時它仍是易於學習的,有利於提升構建面向服務應用程序的生產力。做爲當今最傑出的分佈式系統專家之一,Juval願意傾盡心血全力介紹WCF,咱們不由深感榮幸。咱們有足夠的信心相信,Juval的著做可以幫助您理解人們爲何會對這一產品的問世以及它將創造的新的機遇而激動不已。這些人也包括咱們、Juval以及早期的用戶社區。享受本書,開始構建您的第一個WCF服務吧。
—— Clemens Vasters
程序經理,微軟互聯框架團隊