WCF 概念圖

Windows Communication Foundation (WCF) 概念圖 v1.3:



這張圖是用 CmapTools v4.09 畫的,這個版本在輸入中文時還是挺麻煩,所以文字的部分就先用英文描述。

加一點說明:

Endpoints

端點(endpoint)是 WCF 的一項重要觀念,每個端點均包含了 WCF 服務的 ABC 三元素,即 Address(位址)、Binding(繫結)、Contract(合約),它們分別描述了 WCF 服務的 Where(服務位於何處)、How(如何存取該服務)、與 What(該服務提供哪些功能/操作)。

Contract

WCF 的合約基本上有三加一種:
  • 服務合約(service contracts)
    - 描述 WCF 服務提供哪些功能/操作。
    - 關鍵 attributes:ServiceContract, OperationContract。
  • 資料合約(data contracts)
    - 描述 WCF 服務與用戶端溝通時所需傳遞的自訂資料型別與資料結構。這些資料在服務端與用戶端之間傳遞時,會經過序列化及反序列化的程序。
    - 關鍵 attributes:DataContract, DataMember。
  • 訊息合約(message contracts)
    - 描述 SOAP 訊息的格式,可細部控制 SOAP 標頭與內文。
    - 關鍵 attributes:MessageContract, MessageHeader, MessageBodyMember。
  • 錯誤合約(fault contracts)
    - 描述特定的例外(exception)型別,讓用戶端也能以 try...catch 的結構化例外處理方式直接捕捉(服務端)自訂的例外。思考:如果你在服務端定義了一個 ProductNotFoundException 例外型別,用戶端如何能捕捉此型別且在程式中直接使用 ProductNotFoundException 的物件成員?顯然它也必須和資料合約一樣,在網路傳遞的過程中經過序列化和反序列的程序。事實上,在定義錯誤合約時,就是用資料合約的方式描述 exception 型別。
    - 關鍵 attributes:DataContract, FaultContract。
延伸閱讀:

Post Comments

技術提供:Blogger.