2010-03-16 71 views
6

我想了解什麼是WCF,但無法獲得它如何增加值的視覺理解(閱讀msdn does not幫助)。過去我曾與COM合作過,並且我瞭解web服務。有人可以說明WCF是什麼,它的優點和缺點(也許它是如何與COM相關或替代COM等)?什麼是WCF(以及利弊)?

如果我可以看到架構佈局,我可以開始瞭解什麼組件做什麼功能。

鏈接到參考網站也很棒。

感謝

回答

7

我不建議WCF比較COM。

Windows Communication Foundation就是關於溝通 - 尤其是從WCF網站上,它「提供了一個統一的編程模型,用於快速構建面向服務的應用程序,以便在Web和企業之間進行通信。」

這是一種真正不同的進程間通信方法,將其統一起來。它使得您可以使用乾淨的面向服務的API來處理進程之間的所有通信,並輕鬆更改服務使用的底層技術(即:從HTTP切換到TCP到管道等)。

通過利用WCF,您可以使進程以乾淨,一致的方式在自己之間進行通信。相同的API可用於與Web服務交談,在兩個桌面應用程序之間傳遞數據,或者桌面與系統上的服務之間的通信。在任何情況下,您都可以輕鬆切換使用的協議等。

這爲單個工具包提供了很大的靈活性。


至於利弊與其他選項 - 有很多優點的,主要是在能夠使用統一的發展模式方面。就我個人而言,我使用WCF來滿足當前所有的IPC需求,因爲它幾乎被替換爲.NET中用於IPC的首選API。

主要的con會是在某些特定場景下的性能。使用WCF會增加(輕微)開銷,所以在某些情況下,執行自己的低級套接字開發將會表現更好。除非你正在編寫一個實時遊戲或類似的東西,儘管如此,低層通信協議所涉及的開發工作並不值得。

+0

WCF可以粗略地與DCOM進行比較,我認爲這就是作者的意思 – Andrey 2010-03-16 15:59:07

+0

@Andrey:嗯,它確實有一種取代DCOM的需要,但我個人認爲心理模型是不同的,以至於DCOM術語中的思維真的會傷害到能夠WCF ... – 2010-03-16 16:00:13

+0

您是否可以提供一個真實世界的例子,在這個例子中可以使用WCF,以及如果WCF做到了這種情況效率會降低不存在? – user279521 2010-03-16 16:03:41

1

WCF是Interprocess/Intermachine通信的非常通用的框架。而已。對於.net選項是:自定義網絡通信,web服務,.net遠程處理。 WCF可以替代web服務(向後兼容)和.net遠程處理(不向後兼容),並提供豐富的通信選項和功能。它可以使用不同的傳輸層 - tcp,web服務,msmq