国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
[WCF 學習筆記] 1. 基本概念

 

WCF 被關注的時間已經(jīng)很長了,全名 "Windows Communication Foundation",它還有另外一個名字叫 Indigo,這應該是微軟邁向 SOA 一個重要的標志。對開發(fā)者而言,一個統(tǒng)一的模型整合了以往零零碎碎的 WebService、Remoting、MSMQ 等技術,讓分布式開發(fā)變得更加簡單。

SOA 現(xiàn)在很熱鬧,但它早已經(jīng)出現(xiàn)。最初廠商和網(wǎng)站炒 "WebServices" 的時候,SOA 就已經(jīng)是個熱門詞匯了。但是在實際開發(fā)中,WebServices 和 .NET Remoting 的使用度并不高,原因太多太復雜。不過 WCF 的出現(xiàn),相信會推進這一進程。

面向服務(SOA, service-oriented application)示意圖


WCF 的架構模型和 .NET Remoting 有些類似,下圖很好地說明了其執(zhí)行的流程和相關結構。

WCF 架構示意圖


WCF 宿主架構示意圖


作為一種邊界清晰、中立、高度獨立的開發(fā)模型,WCF 幾乎可用于所有的分布開發(fā)模式。

WCF 通訊方式示意圖



(以上圖片均選自《Programming WCF Services》)

幾乎所有的 WCF 的開發(fā)文章里都會提到一個名為 "ABC" 的說法,分別是 Address、Binding 和 Contract。Address表示服務的地址。比如 "http://localhost:8080/myservice.svc";Binding表示綁定策略??梢詾閱蝹€服務添加多個綁定,如內部采取 NetTcpBinding(Binary),外網(wǎng)則采取 WSHttpBinding(Text),當然一個 Binding 也可用于多個服務;Contract表示服務契約。在 SOA 中客戶端和服務器之間并沒有直接的對象繼承和引用關系,雙方通過一種約定的格式來傳遞消息(Message),這種約定就是契約。

在實際開發(fā)中,我們往往會將 "ABC" 反過來進行。首先定義及實現(xiàn)契約,然后選擇合適的綁定模式,最后定義服務的地址。在 WCF 中,服務對象不再需要從 MarshalByRefObject 繼承,我們也無需再關心 SAO、CAO 之類的區(qū)別,其模式更類似于 ASP.NET WebService,同樣也支持 Session。WCF 更多地使用聲明式編程模式,通過大量的特性(Attribute)來描述服務策略。
[ServiceContract()]
public interface ICalculate
{
  [OperationContract]
  double Add(double a, double b);
}

public class CalculateService : ICalculate
{
  public double Add(double a, double b)
  {
    return a + b;
  }
}

除了上面這些,我們還會接觸到 Behavior、Message 等信息。Behavior 用于對服務器進行一些設置,比如開放 WSDL 信息獲取,反饋出錯信息等。MessageContract 則可以自定義通訊消息,包括添加自定義的 Head。

和 Remoting 一樣,我們可以選擇不同的宿主,包括 IIS、WinForm、Windows Service、Console 等。推薦使用配置文件來完成服務器和客戶端設置,但同樣支持編碼方式。WCF 客戶端依然是一個代理對象,這個代理類型的代碼一般由 Svcutil.exe 工具來生成。
本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
基于SOA的體系架構設計
SOA面向服務架構簡述
WCF基礎知識問與答(1)
wcf系列5天速成——第一天 binding的使用(1)
.NET Remoting過時了嗎?為什么公司的項目還是選擇用.NET Remoting,而不是WCF?
WCF身份驗證之用戶名密碼認證
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服