WCF 服务、WCF RIA 服务和 WCF 数据服务之间的区别
Posted
技术标签:
【中文标题】WCF 服务、WCF RIA 服务和 WCF 数据服务之间的区别【英文标题】:Difference Between WCF Service, WCF RIA Services, and WCF Data Service 【发布时间】:2011-03-02 02:28:26 【问题描述】:WCF 服务、WCF RIA 服务和 WCF 数据服务有什么区别?
【问题讨论】:
【参考方案1】:WCF 是一般服务的通信基础设施。 WCF RIA 服务自动生成客户端和服务器代理对象以方便应用程序开发,并依赖于 WCF 进行实际通信。 ADO.Net 数据服务已重命名为 WCF 数据服务,并通过 WCF 提供 OData 服务。
【讨论】:
【参考方案2】:这是一篇很好的文章,解释了 WCF (ADO.Net) 数据服务与 WCF Ria 数据服务 http://jack.ukleja.com/wcf-data-services-vs-wcf-ria-services/
【讨论】:
【参考方案3】:这是科林·布莱尔的作品
http://forums.silverlight.net/t/103015.aspx/1
您的问题类似于询问普通汉堡肉饼和汉堡包之间的区别,这就是为什么很难得到直接答案的原因。 RIA 服务至少在 PDC 之前不会“功能完整”,因此您得到的任何答案都将基于预期和推测,这也阻碍了获得一个好的答案。最后,RIA Services 是复数是有原因的,RIA Services 中有多个类做不同的事情。以下是我根据路线图和我对 RIA 服务团队目标的理解做出的回答。
RIA 服务是一个连接到 ADO.NET 数据服务的客户端和服务器组件库。使用全栈 RIA 服务时,RIA 服务和普通 WCF 的区别如下:
客户端数据对象是在编译时根据实际的服务器端对象而不是服务合同使用反射生成的。这允许 RIA 服务通过包含任何业务规则和对象之间的关系来提供更丰富的客户端对象模型。但是,这确实意味着与普通 WCF 相比,RIA 服务放弃了一些灵活性。例如,RIA 服务序列化程序当前不支持 WCF 能够处理的某些数据类型。 RIA 服务与 ADO.NET 数据服务一样,支持在客户端和服务器之间序列化 LINQ 查询。这意味着客户端可以创建 LINQ 查询并让它在服务器端运行。 RIA 服务与普通的 ADO.NET 数据服务不同,它不会在运行时自动生成 CRUD。对于熟悉 SQL Server 的人,我将 ADO.NET 数据服务描述为支持常规触发器(也称为查询拦截器),而 RIA 服务需要 INSTEAD OF 触发器。
【讨论】:
【参考方案4】:以下答案不是我的,但仍然回答了部分未回答的问题。
我从这里 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 之类的东西)客户端构造的。这意味着 服务器不需要确切知道客户端需要什么 前面,客户端将能够告诉它运行时。
维泰克卡拉斯 [MSFT]
【讨论】:
以上是关于WCF 服务、WCF RIA 服务和 WCF 数据服务之间的区别的主要内容,如果未能解决你的问题,请参考以下文章
WCF / WCF Ria 服务在“IncludedResults”中返回关系数据