天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

WCF 3.5對HTTP編程的增強

Justin Smith在MSDN雜志上發表了文章《使用 WCF 和 .NET Framework 3.5 進行 HTTP 編程》,暢談了WCF 3.5對于HTTP編程的改進。以下幾點值得關注:


.NET Framework 3.5 中的 WCF 構建于 .NET Framework 3.0 的擴展點之上,從而為構建符合 Web 原則的服務提供一流的支持。它包含一個易于使用的 HTTP 編程模型、JavaScript Object Notation (JSON) 消息傳遞功能,以及新的整合 API,使創建和使用整合的內容變得非常簡便。憑借此功能集,WCF 現已成為將服務連接到 Web 客戶端的首選服務平臺,不論這些客戶端是 ASP.NET AJAX 控件、SilverlightTM 客戶端,還是瀏覽器。

應該說,這對于微軟的SOA戰略來講,是一個非常有力的改進與增強。如何將原有的BS系統、富客戶端與服務進行通信,提供服務和消費服務,對于一個企業要實現SOA解決方案來講,始終是一件彌足輕重的任務。可以說,WCF 3.5提供的簡潔的HTTP編程模型,彌補了這一缺點。

使 .NET Framework 3.5 中的 WCF 如此引人注目的特色之一是,以 Web 為中心的通信與 SOAP 和 WS-* 標準組合到了一個服務堆棧和對象模型中。這意味著您可以構建這樣一個服務,即采用 SOAP 和 WS-* 在企業內部或跨企業邊界進行通信,同時還可以將同一服務配置為使用 Web 協議與外部通信。

這是多么讓人愉快的選擇!這意味著對于同一個服務,面對不同的場景,我們可以選擇不同的協議完成與客戶端的通信。尤其是WCF支持基于TCP傳遞SOAP/WS-*消息,而一直以來,WCF到WCF之間采用二進制形式的消息傳遞,使得我們可以構建更加快速的企業內部網,實現企業信息化的高效與穩定。

WCF對于REST的支持已經到了空前強大的地步。使用WCF的REST模式,可以發送POX(Plain Old XML)消息或者使用聯合(Syndication)格式。WCF 3.5專門提供了WebHttpBinding,WebHttpBehavior,以及關于HTTP動作的特性,例如WebGetAttribute和WebInvokeAttribute。其中,WebGetAttribute對應HTTP的GET動作,而WebInvokeAttribute則可以被除HTTP GET之外的動作所使用。例如:

[ServiceContract]
public interface IPictureService
{
  [OperationContract]
  [WebGet(UriTemplate = "picture/{pictureId}")]
  Stream GetPicture(String pictureId);

  [OperationContract]
  [WebGet(UriTemplate = "picture/t/{pictureId}")]
  Stream GetPictureThumbnail(String pictureId);
 
  [OperationContract]
  [WebInvoke(UriTemplate="update", Method="POST")]
  void UpdatePictureInfo(PictureInfo info);
}
為了支持對應的客戶端代理的創建,WCF 3.5還增加了一個工廠類WebServiceHostFactory以及宿主類WebServiceHost,前者繼承于ServiceHostFactory類,后者則繼承自ServiceHost類。

WebServiceHostFactory 類型適用于 IIS 承載的情形,這樣就不需要命令性或配置文件承載信息。.NET Framework 3.0 中的 WCF 引入了 .svc 文件,作為在 IIS 中承載 WCF 服務的激活目標。這些文件包含了一些指令,類似于 ASP.NET 中的頁面指令。將 WebServiceHostFactory 添加到 .svc 文件指令的 Factory 屬性會創建一個 ServiceHost、添加一個終結點(與 WebHttpBinding 使用適當的約定)、將 WebHttpBehavior 添加到該終結點,然后打開 ServiceHost:

<%@ ServiceHost 
Language="C#"
Service="PictureService"
Factory="System.ServiceModel.Web.WebServiceHostFactory" %>

服務的 web.config 文件不包含任何與 WCF 相關的條目。

通過WCF 3.5增加的對Syndication的支持,可以非常方便的創建RSS或ATOM源。文中寫道:

.NET Framework 3.5 充分支持整合內容的創建和使用。它支持 RSS 2.0 和 ATOM 1.0 格式的創建及使用、支持添加整合擴展的各種方式,甚至還支持實現其他格式的功能。編程模型避免了開發人員直接處理整合格式細節,從而使其易于使用。

雖然新的整合功能由 WCF 小組編寫,但它并不依賴于 WCF。事實上,所有與整合相關的類型都是 System.Syndication 命名空間的一部分,雖然它們位于 System.ServiceModel.Web.dll 程序集中。您可以從任何承載了 AppDomain(ASP.NET、WPF 應用程序、NT 服務等)的進程使用 .NET Framework 3.5 的整合功能。這個功能意味著您可以通過任何傳輸(而不僅僅是 HTTP)提供或使用整合的內容。然而,當與 WCF 中的 HTTP 編程模型結合后,也可以將整合添加到現有的 SOAP/WS-* 服務中。

如下代碼演示了如何檢索一個 ATOM 1.0 源、將其轉換為 RSS 2.0,然后將新的 RSS 表示輸出到控制臺:
// read an ATOM feed
Uri feedUri = new Uri("http://blogs.msdn.com/justinjsmith/atom.xml");
SyndicationFeed feed = SyndicationFeed.Load(feedUri);

// transform it to RSS
Rss20FeedFormatter formatter = new Rss20FeedFormatter(feed);
XmlWriter writer = XmlWriter.Create(Console.Out, null);

// write it to the Console
formatter.WriteTo(writer);
writer.Flush();

NET技術WCF 3.5對HTTP編程的增強,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 男人插曲女人下生免费大全 | 免费观看桶机十分钟 | 高清欧美性猛交xxxx黑人猛交 | 亚洲AV无码一区二区三区乱子伦 | 中文字幕亚洲男人的天堂网络 | xxxxxx视频| 亚洲黄色成人 | 亚洲精品一二三 | 色噜噜狠狠色综合中文字幕 | 青青草原91 | 超碰在线视频公开 | 免费看到湿的小黄文软件APP | 老头狠狠挺进小莹体内视频 | 4480YY无码午夜私人影院 | 99热成人精品国产免男男 | 中文字幕乱码在线人视频 | 99九九99九九九视频精品 | 欧美 亚洲 日韩 在线综合 | 久久天天婷婷五月俺也去 | 大学生宿舍飞机china free | 僵尸女av | 亚洲第一伊人 | 亚洲精品无码久久久久A片空 | 噜噜噜狠狠夜夜躁精品 | 狠狠狠的在啪线香蕉 | 果冻传媒在线看免费高清 | 永久免费的污视频网站 | 精品日产1区2卡三卡麻豆 | 99久久婷婷国产麻豆精品电影 | 欧美疯狂做受xxxxx喷水 | 国产欧美一区二区三区久久 | 老板揉搓秘书丰满大乳 | 久久黄色网址 | 99热久久久无码国产精品性麻豆 | 久久精品亚洲精品国产欧美 | 激情丛林电影完整在线 | 日韩在线视频www色 日韩在线看片中文字幕不卡 | 伊人大香线蕉精品在线播放 | 99在线观看视频免费 | 久久婷婷五月综合色情 | 午夜伦伦电影理论片费看 |