一、回顧開發歷史:
軟件架構的設計經歷了:從面向對象程序,到面向組件程序設計,再到面向服務程序設計。這三種方式都致力於同一個目標:封裝和重用。
面向對象程序設計:類封裝功能並提供代碼重用。
面向組件程序設計:用以共享封裝了可重用類的二進制文檔。最初,這一點只是針對本機,隨着COM,DCOM和.NET Remoting的問世,才發展到分布式環境。雖然這些分布式的方法不盡相同,但是都可以實現跨進程、跨機器。面向組件程序設計有很多局限性,最明顯的局限是與一些特定技術的耦合過深。例如:JAVA客戶端如何調用COM組件,.NET如何調用EJB,這些局限的產生均是協議和通信格式的問題。
面向服務(SOA):解決了不同客戶之間的通信,也就是不必擔心彼此采用了不同的技術。
二、什么是WCF服務
WCF:即Windows Communication Foundation(Windows通信基礎)的簡稱,是微軟分布式應用程序開發的集大成者,是對現有Windows平台下所有分布式通信技術的整合,例如.NET Remoting、MSSQ。以通信范圍而論,它可以跨進程、跨機器、跨子網、企業網乃至於Internet。WCF可以運行在ASP.NET,EXE,WPF,Windows Forms,NT Service,COM+上面。WCF支持的協議包括TCP,HTTP。
WCF的優勢:
1 統一性:WCF是對於.NET Remoting,Enterprise Service,MSMQ等技術的整合。
2 互操作性:由於WCF最基本的通信機制是SOAP協議,這就保證了系統之間的互操作性,即使是運行不同的上下文中。可以跨進程、跨機器甚至於跨平台的通信,只要支持標准的Web Service。應用程序可以運行在Windows操作系統下,也可以運行在其他的操作系統。
3 兼容性:WCF充分的考慮到了與舊有系統的兼容性。安裝WCF服務並不會影響原有的技術。
4 高效開發:維護性、操作性、生產效率提升,開發環境的無縫集成。