基礎(chǔ)篇之WCF簡介
有很多人都想深入的了解WCF,我學習了WCF很長時間了,這里就滿足一下好奇WCF技術(shù)的朋友,下面就是WCF簡介。WCF是Windows Communication Foundation的縮寫,原來代號為Indigo,它是MS為SOA(Service Oriented Architecture 面向服務架構(gòu))而設計的一套完整的技術(shù)框架。利用它能夠開發(fā)出分布式(Distributed)應用程序,而且開發(fā)難度相比以前的.NET Remoting和ASP.NET XML Web Service等都有了大幅度的降低??梢哉fWCF是目前微軟平臺下***進的SOA框架,也是微軟在今后一段時間內(nèi)在該領(lǐng)域的主打產(chǎn)品。它具有很多優(yōu)點,總結(jié)起來,其***的特征在于:
1.充分整合了原來的.NET Remoting,ASP.NET Xml Web Service(ASMX, Web服務),MSMQ(Message Queuing 消息隊列),WSE(Web Services Enhancements),Enterprise Service(COM+)等多項分布式技術(shù),取其精華,棄其糟粕。
2.WCF雖然整合了幾項技術(shù),但開發(fā)難度不增反降,簡單易學。相信在未來的幾年中,WCF一定在SOA的大潮中披荊斬棘,大展身手。
WCF是Microsoft為構(gòu)建面向服務的應用提供的分布式通信編程框架,是.NET Framework 3.5的重要組成部分。使用該框架,開發(fā)人員可以構(gòu)建跨平臺、安全、可靠和支持事務處理的企業(yè)級互聯(lián)應用解決方案。
WCF提供了現(xiàn)有ASP.NET Web Service、.NET Remoting、Message Queuing和Enterprise Services技術(shù)的全部功能?,F(xiàn)有解決方案均有各自的優(yōu)點,也有相應的缺點,WCF綜合了上述技術(shù)的優(yōu)點,形成了一種新的技術(shù)。
WCF簡介之WCF提供了如下特性:
1.駐留組件和服務:與使用定制主機、.NET Remoting 和WSE一樣,可以把WCF服務放在ASP.NET庫中、Windows 服務上、COM+過程中,或Windows Form程序上,進行對等計算。
2.聲明性操作:不是必須從基類中派生(.NET Remoting中遠程對象從MarshalByRefObject派生,Enterprise Services服務組件類從基類ServicedComponent派生),可以使用屬性定義服務,類似與ASP.NET的Web服務(以[WebMethod]屬性說明方法,標記為可通過Web服務訪問)。
3.通信信道:.NET Remoting 在改變通信信道方面非常靈活,而WCF是一個很好的替代品,它提供了相同的靈活性。WCF可以使用HTTP、TCP、IPC(Internet Process Connection進程間通信)信道進行通信。并且支持使用UDP信道。
4.安全體系結(jié)構(gòu):要實現(xiàn)獨立于平臺的Web服務,必須使用標準的安全環(huán)境?,F(xiàn)有提供的標準是用WSE2.0實現(xiàn)的,在WCF中繼續(xù)使用它。
5.可擴展性:.NET Remoting 有豐富的擴展功能,它可以創(chuàng)建定制的信道、格式化器和代理程序,還可以在客戶機和服務器的消息流中插入功能。WCF提供了類似的可擴展性,但這些擴展功能使用SOAP標題實現(xiàn)。
6.兼容性:使用WCF,無需重寫分布式解決方案,WCF可以與已有的技術(shù)很好的集成。WCF提供一個信道可以使用DCOM與所服務的組件通信。以ASP.NET Web服務創(chuàng)建獨立于平臺的服務也可以很方便實現(xiàn)與WCF的集成。
WCF簡介之WCF作用:
#T#在win32中,應用程序是運行在進程(Process)的線程(Thread)中的,.Net平臺出現(xiàn)之后,出現(xiàn)了AppDomain(應用程序域),其實就相當于在進程和線程之間又有了一層包裝,類似于子進程的概念,在一個進程(或者應用程序域)中的對象能進行直接的訪問和控制,但超出這個范圍,便不能進行直接的訪問和控制了,所以說進程(或者應用程序域)有一定的隔離作用,如果是分布在不同網(wǎng)絡,不同操作系統(tǒng)上的不同進程,他們進行通訊的難度就更大,而分布式應用程序要求的就是將原本被隔離的作用域通過一定的契約聯(lián)系起來,從而達成多個系統(tǒng)的溝通協(xié)作。當然能實現(xiàn)這種目的的方式遠不止WCF一個,比如在win32時代,經(jīng)常使用映射內(nèi)存文件來實現(xiàn)進程之間的互操作問題,還有在windows程序中,用windows消息wm也能實現(xiàn)不同進程之間的通訊問題,但這些都有局限性,因為他們不能很好的解決跨平臺,跨網(wǎng)絡問題,而WCF可以。