天天看點

WCF開發者看過來所有WCF開發者必看的一本書

所有WCF開發者必看的一本書

——WCF研發團隊項目經理Alex Weinert強烈推薦

WCF開發者看過來所有WCF開發者必看的一本書

 我從2001年開始從事WCF(那時稱為“Indigo”)的研發工作,當時我們還是一個小團隊,我應該是第20位加入該團隊的成員。在該團隊任職期間,我是存儲、可管理性、可靠消息和隊列方面的項目經理主管。我們的團隊有一個宏偉的願景:通過為Web服務建立一個基礎,使之可以實際應用到廣泛的分布式計算問題上,促進下一代Web服務的發展。我們希望確定為各種業務而實作的Web服務可以提供安全的通信——機密性、簽名、聯合,于是分布式計算客戶就可以為現實世界中的通信使用Web服務。我們希望確定Web服務可以融入到ACID模型的事務中,確定其能與資料驅動的系統或那些事務性計算任務進行有效的互動。我們希望確定Web服務可以某種方式編寫,進而使廣域的松散性不會再限制有意義的分布式應用程式的開發。在這些應用程式中,消息能以發送的次序達到你想發送的位址。這些目标如此涉及底層,現在看起來甚至有點奇怪,但是要知道,在2001年我們都接受這樣的事實:當建立分布式系統時,其中的大部分工作都需要自力更生。

我們也知道大部分的計算環境都是異構的,許多廠商的系統同時并存,是以我們希望通過偉大的Web服務技術标準確定互操作性。我們決心實作良好的互操作性,并且全力地實作了目标。要在底層實作廣泛的互操作性,WS-Security、WSAtomicTransactions、WS-ReliableMessaging、WS-Management、WS-Policy、WS-Transfer、WS-Eventing等協定都是必需的。但是,在我們開始這個項目時什麼都沒有,它們都是由WCF團隊的同僚們後來實作的。回顧以前,我們可能會說:“我們當然希望通過被廣泛接受的、可以互相組合的多個Web服務标準使用其他系統。”然而,這在2001年卻是一個高不可攀的目标。

我們希望支援一種單一的程式設計模型,使開發者從面向消息轉向遠端過程性模式,或者從TCP轉向HTTP或MSMQ等隊列協定時,不需要從頭學起。面對.NET Remoting、ASMX、Socket、MSMQ等衆多的程式設計模型,用一套統一的API完成上述各模型的任務顯然很困難,但我們仍然迎難而上。我們希望支援可擴充性,這樣再出現新的消息交換模式、協定或加密機制時,也無需另外一種程式設計模式了。

作為首席項目經理,我幫助貫徹了可管理性這一理念,也就是任何應該交給IT專家決定的資訊(目前的協定、加密機制、服務位址、監視,等等)都盡可能交給他們。這又是一個極高的目标:我們希望用WCF建立的應用程式具有最好的跟蹤、監控和控制功能,易于通過優秀的配置和跟蹤工具使用,而且能通過WMI與所有的Windows管理工具內建。簡單地說,這個目标就是讓使用WCF建立的應用程式比基于其他架構建立的應用程式更具可管理性,而且管理成本更低。

我們希望為現實世界建立重要的分布式應用程式能變得簡單而又有趣,這可能是我們最富雄心的目标。我們希望直覺地引導開發者建立符合分布式系統最佳實踐的應用程式。正如Steve Swartz(“簡單而又有趣”最忠實的倡導者)所告訴我的,我們的目标是建立這樣的一個架構,“如果你在山頂放一個球并讓它滾下來,它就會自然地在一個地方停下來,這個地方有一個構架優良的服務,它幫你避免了分布式系統開發者在過去20年裡犯下的所有錯誤。”

那我們做得怎麼樣呢?看看在Vista中和網絡上作為.NET 3.0一部分釋出的最終産品,我認為我們做得相當不錯。WCF是一個統一的、可擴充的架構,它确實可以幫助你以一個統一的架構去建立現實世界中的安全的、可信賴的、互操作的、可管理的分布式應用程式,而且這個過程實際上很有趣(至少對于喜歡程式設計的人來說是這樣的)。這花了我們六年時間,但是我們實作了所有的主要目标。實際上,我非常喜歡這個産品,現在我的“新”工作就是為Microsoft建立完全基于WCF所提供的功能的新産品,以推廣WCF(我現在很享受這份工作)。這個團隊中的每位開發人員和項目經理的書架上都有這本書,幾乎我們所有的人都把這本書作為開發或使用Web服務的必備參考書,其中還包括幾位實際上開發了WCF的開發人員和項目經理。

最後說說Craig吧。我和Craig認識的時候,他身為WCF技術的傳道者。他的精力和對項目的熱情很有感染力,他是WCF的最忠實擁護者。要是有人問起:“我們可以支援這樣的場景嗎?”在90%的情況下Craig大概會這樣回答:“哦,可以的,我上個星期就試過了,這是原型。”站在他的角度,他可以看到我們這些專注于具體功能特性的人所看不到的全貌。WCF能有今天,他直率的回報、技術深度和熱情功不可沒。我相信他對WCF的熱情和廣博的知識會在每一個章節裡閃光,我保證你會像我們一樣,發現這是一本令人愉快的、有啟發性的而且很有用的書。

Alex Weinert

微軟公司團隊項目經理