2010-06-10 192 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]