第4章:WCF101
概述
WCF框架是個復雜的框架,它的復雜性源於這樣一個事實,在抽象層上,一個 消息框架必須適應行業標准的不斷更新和完善。在WCF設計階段,SOAP和WS-*被 認為是未來主流的消息結構和協議。當初任何一個負責WCF的架構師都不會想到 JSON會有今天的地位。但是他們確實明白一個事實,WCF必須很好地兼容和適應 那些新的消息結構和傳輸,就像現在的WCF一樣。於是微軟設計了高擴展性和適 應性的WCF,不但可以滿足今天消息需求,也可以滿足未來不可預知的新的需求 。這些努力的結果就是一個容易使用,但整體上有點難以理解的復雜平台
每個設計過一個大的框架(framework)的人都可以證明,設計、構建、測試 和維護這個框架都是一個艱巨的任務。我曾經設計、討論和構建過幾個框架,明 白這有多麼的困難。當設計一個框架的時候,Alan Kay的名言[老徐備注 1]“簡單的東西應該簡單,復雜的東西才有可能成功”應該是首要原則。 當在看現在的WCF,我想微軟通過把許多復雜的東西簡單化,已經成功地實現了 這個名言,即使從長遠來看也是如此。這不是說我認為WCF是完美的,沒有錯誤 ,而是說,作為一個完整的產品,WCF是精心思考和設計良好的。
WCF核心需求之一就是暴露一個對象模型給開發者,這個對象模型可以兼容所 有的傳輸和協議。具體化的例子就是,WCF團隊的架構師希望通過TCP/IP發送消 息的代碼和通過MSMQ發送消息的代碼看起來十分相似。這個特性有以下幾個好處 。第一,它意味著這個平台不強迫開發者學習各種不同傳輸和協議的對象模型。 實際上,了解WCF對象和執行模型的開發者可以在他們的應用系統裡實現對不同 傳輸和協議的支持。第二,它意味著隨著WCF的對新的傳輸、協議和功能的成功 支持,開發者沒有必要為了開發系統裡新的功能而學習新的通信方式。相反,他 們可以使用WCF框架裡已經存在的通信機制。
由於這些類型的需求,WCF架構由許多交織的層組成。隨著時間的推移,我發 現要向完全理解任何一個WCF基礎架構裡的一層,都需要首先理解WCF基礎架構裡 每個層相關的一些概念。本章的目的就是要介紹WCF應用中主要的層次,為本書 後面部分章節深入學習這些層次奠定堅實的基礎。
【老徐備注】
1.Simple things should be simple, complex things should be possible,Alan 是Smalltalk 面向對象編程環境語言的發明人之一,也是面向 對象編程思想的創始人之一,他還是筆記本電腦最早的構想者和現代Windows GUI的建築師(architect)。