有人能够比较和对比WCF Rest服务和ADO.NET数据服务吗?它们之间的区别是什么,何时使用哪种?
谢谢,
雷。
编辑:感谢第一个答案,只是为了给出一些背景信息:我有一个Web应用程序,计划将其放在云中(某一天),而数据访问层是使用ADO.NET Entity Framework构建的。 因此,我需要弄清楚哪种Web服务数据访问技术最适合我的情况。
有人能够比较和对比WCF Rest服务和ADO.NET数据服务吗?它们之间的区别是什么,何时使用哪种?
谢谢,
雷。
编辑:感谢第一个答案,只是为了给出一些背景信息:我有一个Web应用程序,计划将其放在云中(某一天),而数据访问层是使用ADO.NET Entity Framework构建的。 因此,我需要弄清楚哪种Web服务数据访问技术最适合我的情况。
我不能保证完全回答您的问题,但我在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演示。
如果您想要开发和提供一个数据中心服务,那么在某些情况下,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 将为您提供更加灵活的性能。
ADO.Net数据服务和WCF Rest服务之间的主要区别之一是REST服务轻量级,您可以通过编写单独的方法/函数来自定义获取内容,而ADO.Net数据服务更像是一个转储,您可以获取所有内容...因此对于Web和RIA应用程序,我认为WCF Rest服务是最佳和优化的选择...