天天看點

wcf學習一

了解wcf和webservice的基本知識

1.WebService:嚴格來說是行業标準,不是技術,使用XML擴充标記語言來表示資料(這個是誇語言和平台的關鍵)。微軟的Web服務實作稱為ASP.NET Web Service.它使用Soap簡單對象通路協定來實作分布式環境裡應用程式之間的資料互動。WSDL來實作服務接口相關的描述。此外Web services 可以注冊到UDDI中心.供其客戶查找使用。 後來微軟做了ASP.NET Web Service的安全,性能,資料加密、解密,托管宿主等多方面的擴充,稱為WSE系列,這個是過度産品,最高到WSE3.0.後來就是WCF時代。

2.WCF:其實一定程度上就是ASP.NET Web Service,因為它支援Web Service的行業标準和核心協定,是以ASP.NET Web Service和WSE能做的事情,它幾乎都能勝任,跨平台和語言更不是問題(資料也支援XML格式化,而且提供了自己的格式化器)。 但是WCF作為微軟主推一個通訊元件或者平台,它的目标不僅僅是在支援和內建Web Service,因為它還相容和具備了微軟早期很多技術的特性。 根據微軟官方的解釋,WCF(之前的版本名為“Indigo”)是使用托管代碼建立和運作面向服務(Service Oriented)應用程式的統一架構。它使得開發者能夠建立一個跨平台的安全、可信賴、事務性的解決方案,且能與已有系統相容協作。WCF是微軟分布式應用程式開發的集大成者,它整合了.Net平台下所有的和分布式系統有關的技術,如Enterprise Sevices(COM+).Net Remoting、Web Service(ASMX)、WSE3.0和MSMQ消息隊列。以通信(Communiation)範圍而論,它可以跨程序、跨機器、跨子網、企業網乃至于 Internet;以宿主程式而論,可以以ASP.NET,EXE,WPF,Windows Forms,NT Service,COM+作為宿主(Host)。WCF可以支援的協定包括TCP,HTTP,跨程序以及自定義,安全模式則包括SAML, Kerberos,X509,使用者/密碼,自定義等多種标準與模式。也就是說,在WCF架構下,開發基于SOA的分布式系統變得容易了,微軟将所有與此相關的技術要素都包含在内,掌握了WCF,就相當于掌握了叩開SOA大門的鑰匙。

3.WSE:Web Services Enhancements 2.0 for Microsoft .NET (WSE)是一個用來建設Web服務的.NET類庫,它支援最新的Web服務協定,包括WS-Security、WS-SecureConversation、WS-Trust、WS-Policy、WS-SecurityPolicy、WS-Addressing和 WS-Attachments。 WSE可使開發人員跨安全平台建設可更新的、安全的Web服務。它支援用傳輸的方式發送SOAP消息,而不是HTTP。另一個特點是具有建立SOAP路由器的功能,SOAP消息被發送給SOAP路由器,路由器再将工作傳遞給托管該服務的Web伺服器。

4.soap:是一種輕量級協定,用于在分散型、分布式環境中交換結構化資訊。 SOAP 利用 XML 技術定義一種可擴充的消息處理架構,它提供了一種可通過多種底層協定進行交換的消息結構。 這種架構的設計思想是要獨立于任何一種特定的程式設計模型和其他特定實作的語義。 特性: 1) 可擴充,2) 可通過多種底層網絡協定使用 3) 獨立于程式設計模型。

5:http: 

         1 http-get:是超文本傳輸協定的一種,依靠唯一的URI把資料傳輸.

         特點:a 将資料添加到URL

                b 利用一個問号(”?”)代表URL位址的結尾與資料的開端。

                c 每一個資料的元素以 名稱/值 (name/value) 的形式出現(以&分割)。

                d  利用一個分号(“;”)來區分多個資料元素。

       2 http-post: HTTP-POST是超文本傳輸協定的一種,依靠使用者發送的資料頭擷取資料.

        特點:a将資料包括在HTTP主體中。

                b 同樣的,資料的元素以 名稱/值 (name/value) 的形式出現(以&分割)。

                c 但是每一個資料元素分别占用主體的一行

 6web服務中使用的資料類型

                                基礎類型:string char  byte  boolean  int  uint single double  guid  decimal   datetime

                                枚舉類型:系統定義和使用者自定義的枚舉類型 web服務總 枚舉類型必須定義為公共的 可見性不低于public  

                               類和結構: 帶有公共字段和屬性和類和結構類型。隻有類和結構類型的公共字段和公共屬性成員可以被序列化,其他任何受保護和或私有的成員都會被忽略

                               資料集:web服務可以使用ADO.net的DataSet類型

                              xmlNode:表示xml文檔中的一個節點。同樣,它是一個xml片段在記憶體中的表示。可以将xmlNode對象作為參數傳遞,他們将被添加到xml的其他部分,xml正被一種soap相容的方式傳遞web服務。

                              數組:web方法支援上述類型的數組。可以傳回原始類型的數組,如字元串數組,同樣也可以傳回xmlNode數組,DataSet對象數組或類數組