WCF REST与ADO.NET数据服务的比较

10

有人能够比较和对比WCF Rest服务和ADO.NET数据服务吗?它们之间的区别是什么,何时使用哪种?

谢谢,

雷。

编辑:感谢第一个答案,只是为了给出一些背景信息:我有一个Web应用程序,计划将其放在云中(某一天),而数据访问层是使用ADO.NET Entity Framework构建的。 因此,我需要弄清楚哪种Web服务数据访问技术最适合我的情况。


注意:在OP发布帖子约一年后,ADO.NET数据服务更名为“WCF数据服务”。请参见https://en.wikipedia.org/wiki/WCF_Data_Services。现在我们知道WCF数据服务是ODATA的WCF实现,因此“REST”方面是ODATA的要求,因此WCF数据服务是ODATA,因此是REST。这也是名称更改之前的情况。https://learn.microsoft.com/en-us/dotnet/framework/data/wcf/ - user585968
5个回答

14

我不能保证完全回答您的问题,但我在PDC花了很多时间自己尝试着解决这个问题,以下是我的尝试...

简短的答案是:ADO.Net数据服务旨在提供与Web无缝集成的接口,使用URI和众所周知的数据来指向数据,以提供对ADO.Net框架(DataContext、Datasets、DataTables等)的访问。 ADO.Net数据服务也用于在云中编程ADO.Net。 Microsoft的云服务“Azure”是一个新的云编程平台,将在不久的将来发布。有关云服务的更多信息,请单击此处

我发现关于ADO.Net数据服务和云的一件很酷的事情是,作为数据源提供程序的基础DataContext可以轻松配置为指向云资源或本地数据库。这样,您可以在不更改任何代码的情况下切换DataContext!(如果您不告诉我,我会印象深刻)

WCF Rest服务只是普通的WCF服务,它们具有额外的功能,以便以RESTful方式使用(URI vs URL、HTTTP动词的使用、使用不同的数据传输格式如JSON、YAML等...)。因此,例如,如果您构建了一种股票行情Web服务,并且使用WCF,您可以使用WCF Rest功能将该服务作为JSON服务发布,而无需要求调用者使用重型WSDL实现和ASMX,可以通过AJAX使用该服务而不必指向ASMX资源。有关使用REST的WCF的更多信息,请查看PDC演示


请看我的下一篇帖子,最初是作为评论发布的,但我认为它需要超过300个字符。 - Ray
可能需要补充说明的是,所有ADO.Net数据服务都是WCF REST服务_,但并非所有WCF REST服务都是ADO.Net数据服务。 注:对于谷歌搜索者们: OP在发布一年后,ADO.NET数据服务更名为"WCF数据服务"_。请参考https://en.wikipedia.org/wiki/WCF_Data_Services。 - user585968

1

如果您想要开发和提供一个数据中心服务,那么在某些情况下,WCF REST Starter Kit 和 WCF Data Service 都可以实现很多功能,因为这两种 WCF 技术都可以以 RESTful 的方式传递数据(例如,使用可寻址的 URL 和标准格式的数据,如 XML 和 JSON)。它们还都配备了一系列 .NET 类,用于处理许多网络和 Web 请求,例如 HTTP 拦截器和缓存。

然而,WCF Data Service 拥有但 REST Starter Kit 没有的优势是,WCF Data Service 可以将其数据以 .NET 实体对象的形式和标准格式公开(这是通过 OData 协议实现的)。因此,我认为在许多实际场景中,WCF Data Service 将为您提供更加灵活的性能。


1

ADO.Net数据服务和WCF Rest服务之间的主要区别之一是REST服务轻量级,您可以通过编写单独的方法/函数来自定义获取内容,而ADO.Net数据服务更像是一个转储,您可以获取所有内容...因此对于Web和RIA应用程序,我认为WCF Rest服务是最佳和优化的选择...


1
非常感谢您的见解!对于我的应用程序,我计划将其放在云中,并使用ADO.NET Entity Framework构建我的数据访问层,因此看起来ADO.NET Data Services是我选择的最佳方案。
引用:
我发现关于ADO.Net Data Services和云的一个很酷的事情是,作为数据源提供程序的基础DataContext可以轻松配置为指向云中的资源或本地数据库。这使您可以在不更改任何代码的情况下切换您的DataContext!!!(如果您没有注意到,我对此印象深刻)
您能否就ADO.NET Data Service + EF在云中的工作方式多说一些?

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接