日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Silverlight中服务通信方式的选择(WCF、Data Service、Ria Service)

發布時間:2025/3/21 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Silverlight中服务通信方式的选择(WCF、Data Service、Ria Service) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Silverlight中服務通信方式的選擇(WCF、Data Service、Ria Service)

轉自 http://www.cnblogs.com/024hi/archive/2011/06/23/2088295.html

WCF Service(WebService)

Web Services是經實踐考驗證明的跨防火墻的通信方式,它很穩定且被廣泛認可。總的來說你需要為分散的CRUD操作指定相應的接口并在Silverlight中忠實的調用他們

  • 使用的原因:需要進行類似直接通過服務進行數據庫交互操作的項目(弱化業務邏輯部分)。
  • 避免使用的原因:必須始終自己監視數據的變化并調用相應的服務方法進行更新,任何需要并發的操作或事務變得較為沉重且需要處理大量的代碼。
ADO.NET Data Services

ADO.NET Data Services是一套簡單的基于Rest的數據通信方式。它依賴于Http定義服務接口,如Get操作定義為讀寫、Post操作定義為更新等。它使用ATOM或JSON作為序列化格式,所以可以被各種類型的客戶端調用。

他通過將基于URI的API轉換為LINQ調用從而提供插入、更新、刪除等操作。這意味著ADO.NET本身是很單薄的一層,它的目的是將URI模型翻譯為數據通信代碼。

對 于Silverlight來說,ADO.NET Data Services真正的亮點在于其提供的客戶端類庫。這個客戶端類庫允許開發者在客戶端使用LINQ查詢并在服務端執行。當然它支持的LINQ語法相比服 務端有一些局限,大概覆蓋80%的場景,當然ADO.NET Data Service也允許開發者在必要時自定義剩余的操作以適應其他場景。另外,客戶端類庫提供一個強大的Data上下文類用以監視和處理有事務支持的批量操 作。

使用ADO.NET Data Services公開數據通信實際上是宮公開查詢終結點的方式替代定義接口,這就是它最特別的地方。比如,我們可以像這樣使用LINQ查詢

// Silverlight 代碼

// 使用 LINQ 創建擦汗尋

var qry = (from g in ds.Games

where g.Price < 50m

orderby g.Name

select g) as DataServiceQuery<Game>;

// 執行查詢

qry.BeginExecute(new AsyncCallback(r =>

{

games2.ItemsSource = qry.EndExecute(r).ToList();

games2.DisplayMemberPath = "Name";

}), null);

  • 使用的原因:想要一個簡單、安全的模型使得開發人員可以在代碼中定義他們需要的查詢(相對于基于接口的WCF Service)。得益于LINQ調用及上下文類,使用ADO.NET Data Services客戶端類庫會讓你的客戶端代碼量適當減少。
  • 避免使用的原因:當你想要嚴格控制數據訪問接口及不想讓可發者直接在客戶端使用LINQ查詢的情況下應該避免使用ADO.NET Data Services。
WCF RIA Services

RIA Services基于這樣的思想:在服務端創建數據通信API同時在Silverlight中生成相應的客戶端代碼。它的著重點在于服務端和客戶端共享代 碼(包括驗證邏輯等)。另外他還允許開發者創建一系列接口,并且同樣在客戶端提供上下文對象在客戶端監視數據(包括批量操作)的變化并反饋給服務端。從某 種程度上來說,RIA Services是Web Services和ADO.NET Data的集大成者。

由于RIA Services基于服務端查詢接口定義,在客戶端開發人員可以像這樣調用其接口定義的查詢:

// Silverlight代碼

// context 對象監視數據變化

XBoxGamesContext ctx = new XBoxGamesContext();

// RIA 查詢,基于接口

var qry = ctx.GetGamesByGenreQuery("Shooter");

// 綁定數據

theList.ItemsSource = ctx.Load<Game>(qry).AllEntities;

在介紹ADO.NET Data Services時曾提到開發人員可以使用LINQ查詢,RIA Services同樣允許向查詢終結點添加LINQ 約束。例如你可以這樣對終結點添加LINQ表達式:

var riaQry = ctx.GetGamesQuery()

.Where(g => g.Price < 50m)

.OrderBy(g => g.Name);

LoadOperation<Game> op =

ctx.Load<Game>(riaQry);

  • 使用的原因: RIA Services可以有力的減少應用程序層級數量,尤其適用于需要快速反應的應用程序開發場景。RIA Service同時提供了像WebService那樣基于接口的支持及像ADO.NET Data Services中基于LINQ查詢的支持。
  • 避免使用的原因:RIA Services中利用了很多系統自動生成的代碼,調試時可能會碰到麻煩。

?

那么你的選擇是?歡迎討論~

作者:紫色永恒

出處:http://024hi.cnblogs.com/

本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利? posted on 2012-04-06 15:56 NET未來之路 閱讀(...) 評論(...) 編輯 收藏

轉載于:https://www.cnblogs.com/lonelyxmas/archive/2012/04/06/2434826.html

總結

以上是生活随笔為你收集整理的Silverlight中服务通信方式的选择(WCF、Data Service、Ria Service)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。