2010-06-10 194 views

回答

7

WCF是一般服務的通信基礎設施。 WCF RIA服務自動生成客戶端和服務器代理對象以促進應用程序開發,並依賴於WCF進行實際通信。 ADO.Net數據服務已重命名爲WCF數據服務,並通過WCF提供OData服務。

1

這一個是由科林·布萊爾

http://forums.silverlight.net/t/103015.aspx/1

您的問題是類似的問簡單的漢堡包肉餅和漢堡包之間的區別是什麼,這就是爲什麼很難得到直接的答案。獲得一個好的答案也會受到以下事實的阻礙,即RIA服務在至少PDC之前不會「功能完備」,因此您得到的任何答案都將基於預期和猜測。最後,RIA服務是複數的原因,RIA服務中有多個類別做不同的事情。這是基於路線圖和我對RIA服務團隊目標的理解。

RIA Services是一個客戶端和服務器組件庫,可以連接到ADO.NET數據服務。當使用完整的RIA服務時,RIA服務和普通WCF的區別如下:

客戶端數據對象是在編譯時基於實際服務器端對象而不是服務契約生成的。這允許RIA Services通過包含任何業務規則和對象之間的關係來提供更豐富的客戶端對象模型。但是,這確實意味着RIA服務與普通的WCF相比有一定的靈活性。例如,RIA Services serializaer目前不支持WCF能夠處理的一些數據類型。 RIA服務,如ADO.NET數據服務,支持序列化客戶端和服務器之間的LINQ查詢。這意味着客戶端可以創建LINQ查詢並讓它運行服務器端。 與純ADO.NET數據服務不同,RIA服務在運行時不會自動生成CRUD。對於熟悉SQL Server的人員,我將ADO.NET Data Services描述爲支持常規觸發器(又稱查詢攔截器),而RIA Services需要INSTEAD OF觸發器。

1

下面的答案不是我自己的,但仍然回答一個沒有答案的問題的一部分。

我複製粘貼此答案從這裏https://social.msdn.microsoft.com/Forums/en-US/687426d9-709f-4e73-8c4c-dd3630f006e7/wcf-data-service-or-wcf-service?forum=adodotnetdataservices

WCF服務是運營中心 - 你與這些 做的主要事情是定義操作(功能)。數據以 的方式作爲次要的東西。另一方面,他們可以處理很多不同的運輸/協議。您有能力嚴格定義客戶端可以執行和不能執行的操作。客戶端無法真正組成新的 查詢/操作,服務器必須實現客戶端 需要的所有內容。

WCF數據服務以數據爲中心 - 您使用這些 所做的主要工作是定義要公開的數據模型。對數據的操作是 「預定義」(創建/刪除/更新/讀取)。它僅支持HTTP 協議並使用REST。您通常允許客戶決定他們想要做什麼(在一些邊界)。與WCF 服務的主要區別之一是客戶端可以針對客戶端構造的數據模型 (認爲SQL像東西)發出查詢。這意味着 服務器並不需要確切地知道客戶端需要上去哪些,客戶端將能夠告訴它運行時間。

Vitek Karas [MSFT]