程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> Learn WCF (1)--基礎篇

Learn WCF (1)--基礎篇

編輯:關於.NET

Windows Communication Foundation (WCF)是一個面向服務編程的綜合分層架構。該架構的頂層稱為服務建模層(Service Model Layer),使用戶用最少的時間和經歷建立自己的軟件產品和外界通信的模型。它使得開發者能夠建立一個跨平台的安全、可信賴、事務性的解決方案,且能與已有系統兼容協作。我將通過幾篇文章和大家一起學習WCF,希望能對新手學習WCF有些幫助。

從功能的角度來看,WCF 完全可以看作是ASMX,.Net Remoting,Enterprise Service,WSE,MSMQ 等技術的並集:

WCF Service

軟件設計的一個重要原則:軟件組件必須針對特定的任務專門的設計和優化。假如我們要做一個管理軟件,想象一下,如果一個軟件非常依賴於與外界通信,我們不能把管理軟件與外界通信的邏輯考慮在管理系統內部。所以必須把通信任務委托給不同的組件。用WCF術語來說,這個組件稱為WCF服務。更通俗的將,WFC服務就是負責與外界通信的軟件。

一個WCF Service 由下面三部分構成:

Service Class:一個標記了[ServiceContract]屬性的類,在其中可能包含多個方法。除了標記了一些WCF 特有的Attribute 外,這個類與一般的類沒有什麼區別。

Host(宿主):可以是應用程序,進程如Windows Service 等,它是WCF Service 運行環境。

Endpoints:可以是一個,也可以是一組,它是WCF 實現通信的核心要素。

在後面的實例應用中,我還會提到上面這三個概念。

WCF 端點

一個WCF服務必須能為不同的通信場景提供不同的訪問點,這些訪問點稱為WCF端點。也就是上面所提到的EndPoint。每個端點都有一個綁定,一個地址和一個契約:

(1)綁定:指定該端點如何與外界通信,也就是為端點指定通信協議。

傳輸協議:端點和客戶端通過傳輸協議通信。比較常用的是HTTP和TCP。

編碼協議:在進入通信鏈路之前,端點和客戶通過編碼協議對通信進行編碼。比較常見的是XML文件二進制碼。

安全協議:端點和用戶通過安全協議保證通信的安全。比如一些敏感的信息,要求通過加密的傳輸信道。比較常見的是HTTPS和WS-Security。

(2)地址:一個端點地址指定端點的位置,如果通過端點與WCF通信,必須把通信指定到網絡地址。

(3)契約:一個端點上契約指定通過該端點的用戶能訪問到WCF服務的什麼操作。

在WCF 中,類ServiceEndpoint 代表了一個端點(Endpoint),在類中包含的EndpointAddress,Binding,ContractDescription 類型分別對應端點的地址,綁定和契約。

WCF服務模型

最後簡單的說下WCF的服務模型。

WCF是一個層次架構,該架構的頂層稱為服務模型,用於WCF服務的建模。

WCF服務模型提供了3種重要手段對自己的WCF服務進行建模:

(1)面向屬性編程:WCF服務模型帶有一套元數據屬性,可以通過屬性表示相應的實體,如:屬性,接口,類等。

(2)面向配置編程:WCF服務模型帶有方便的配置語言,可以通過它在配置文件中進行建模。

(3)常規命令編程:WCF服務模型帶有一組方便的托管類,可以使用這些托管類對服務進行建模。

簡單的基礎知識就說這些,下篇將介紹如何開發WCF服務。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved