10

我目前正在創建一個Silverlight 3數據驅動的應用程序。要訪問數據庫,需要使用2種常用方法:RIA Services和ADO.NET Data Services。有沒有人有何時/爲什麼選擇每種方法的指導?這是我從我的研究/經驗中收集到的。有什麼想法嗎?RIA服務與ADO.NET數據服務

ADO.NET似乎只對嚴格的數據庫調用有用。如果您需要將數據服務公開給其他應用程序(忽略Silverlight 3的域限制),這是一個好方法。此外,如果URL /查詢語法可以在你的應用程序非常有用,這是另一個優勢

RIA服務似乎是一個更靈活,接受的框架。它似乎給你比嚴格的數據庫訪問更多。它沒有限制僅用於Silverlight/Web應用程序,因爲它不通過服務公開。

想法?想法?註釋?

回答

10

在電線,ADO.NET數據服務和RIA服務是非常相似的(它們是基於兩個REST)。

然而,ADO.NET數據服務和所有其他REST服務你不容易看到Visual Studio中的API。例如:您不知道對數據庫的調用是否可用,並且返回的數據不是強類型的。它構建了一個非常可互操作的數據系統,但與其合作可能會很痛苦。

隨着RIA服務,你得到兩全其美的,因爲你的RIA項目直接引用的Silverlight項目,使Visual Studio可以知道什麼方法都可以,一切是強類型。所有其他應用程序都可以使用此服務(dataservice.axd),但他們沒有奢侈的API。

編輯:更正:ADO.NET數據服務不會產生元數據(對不起,壞的信息) http://msdn.microsoft.com/en-us/library/cc716656.aspx

+0

好信息。我必須給你一個「虛擬」投票,因爲我太新來堆棧溢出(聲望只有11)來投票你的答案。 – 2009-06-10 18:58:00

0

我做了一個原型系統的使用Silverlight 2和ADO.NET數據服務,目前我前進MVVM實現使用Silverlight 3和RIA服務來實現LOB應用程序。

RIA具有節省你創建自己的WCF與Silverlight的使用安全模式。它基於ASP.NET安全提供程序模型。它有一個有趣而強大的驗證模型,可讓您輕鬆插入自己的客戶驗證器。

與RIA服務的主要問題是,他們都非常新,而不是最終的形式,並與比simplist情況下塞納里奧更很少的文檔。測試版預計在11月份的PDC以及帶有EF 4.0,C#4.0和VS2010的RTM。

當這麼早就處理了一些事情時,您可以期望在發佈更改時進行大量的重構,以及一些不太容易發現的小變更帶來的挫折感。

我們目前正在解決EF和RIA中的錯誤,我們可能需要使用數據服務來做一些事情,直到RIA更加穩定。

Data Services和RIA都有強大的打字功能。智能感知與兩者兼容。 Resharper尚不支持RIA,儘管預計在5.0版本中。

3

這是一個非常古老的問題,但想爲讀者添加一個答案。

Ria服務位於ADO.net數據服務之上。 Ria服務使用ADO。Net作爲基礎框架並添加了一個用於UI庫的簡單用法的圖層。

所以問題可以在使用RIA服務的時候使用ADO.Net數據服務