WCF和ADO.Net数据服务在哪里?

WCF和ADO.Net数据服务在哪里?

Where WCF and ADO.Net Data services stand?

我对ADO.Net数据服务有些困惑。

这仅仅是为了创建RESTful Web服务吗?我知道WCF始于SOAP世界,但现在我听说它对REST有很好的支持。 ADO.Net数据服务也是如此,如果您不能从面向资源的视图中查看所有内容,则可以使它在RPC模型中工作。

至少从我最近看到的演示中可以看出,ADO.Net数据服务看起来是建立在服务器上的WCF堆栈上的。如果我错了,请纠正我。

我不打算开始进行REST与SOAP的辩论,但我想事情不再那么明确了。

有关在何处使用什么的任何建议或准则?


在我看来,ADO.Net数据服务用于创建与您的域模型紧密匹配的静态服务,即模型本身是发布的,而不是说某种形式的DTO等。

将其用于RPC样式服务似乎不太合适,尽管不幸的是,甚至某些非常基本的功能(如能够执行过滤计数等)均不可用,这通常意味着您最终只会使用某些RPC以满足客户的需求,即您可以显示分页的网格等。

WCF 3.5 pre-SP1是一个相对较弱的RESTful平台,在SP1中,Uri模板和ATOMPub支持的可用性都得到了改善,使其功能越来越强大,但它们并没有真正提供任何支持JSON,XML,ATOM或什至更深奥的东西(例如CSV之类的有效负载)的优雅解决方案,都无需利用URL重写和不同的扩展名,方法名称修改等-而不是仅基于序列化器/反序列化器在请求的标头上。

使用WCF仍然很难创建在自然的宁静庄园中工作的服务,即资源中包含url,并且您可以通过浏览它们来转换状态-这有点笨拙-ADO.Net数据服务通过其AtomPub支持可以很好地做到这一点。

我的建议是使用Web服务,因为它们自然是要强制执行的服务和强大的服务边界,请使用ADO.Net数据服务用于URL的可组合性丰富的Web样式客户端(网站,ajax,silverlight)查询可以节省大量资源,并且您的域模型非常基础...如果您需要对信息进行完全控制(例如,如果要发布信息),则可以滚动自己的REST层(也许使用MVC框架作为起点)供其他开发人员在社交平台等上使用的API。

我的2?值得!


在处理根本不与数据库交互的代码时,使用WCF的rest绑定非常有效。 HTTP动词并不总是必须与数据提供者相对。


实际上,有一些选项可以进行过滤和跳过,以获取类似功能的页面。

请参阅此处:


推荐阅读

    linux服务端退出命令?

    linux服务端退出命令?,档案,命令,环境,异常,标准,网络,模式,终端,编辑,文件,l

    linux中启动服务命令?

    linux中启动服务命令?,服务,系统,命令,信息,工作,设备,网络,标准,名称,密码,l

    linux服务器常用命令?

    linux服务器常用命令?,工作,系统,地址,信息,命令,目录,管理,标准,设备,功能,

    linux服务器保存命令?

    linux服务器保存命令?,时间,状态,档案,电脑,命令,信息,位置,编辑,文件,模式,L

    linux服务器扫盘命令?

    linux服务器扫盘命令?,地址,工作,命令,目录,数据,单位,名称,系统,管理,信息,L

    linux数据库查找命令?

    linux数据库查找命令?,位置,名称,状态,服务,软件,信息,系统,命令,名字,密码,

    linux数据库同步命令?

    linux数据库同步命令?,信息,系统,汽车,车辆,服务,工作,通信,一致,分析,数据,D

    linux支持管道的命令?

    linux支持管道的命令?,通信,标准,系统,信息,地方,数据,管道,环境,设备,工具,L

    linux服务器搭建命令?

    linux服务器搭建命令?,系统,服务,软件,地址,平台,在线,密码,工具,环境,百度,l

    服务器重启命令linux?

    服务器重启命令linux?,工作,标准,设备,服务,系统,名称,命令,百度,网络,密码,

    linux建立数据库命令?

    linux建立数据库命令?,软件,系统,工作,数据,密码,工具,数据库,一致,网络,服

    linux命令进数据库?

    linux命令进数据库?,地址,系统,名字,服务,密码,命令,读法,数据库,操作系统,

    linux服务端常用命令?

    linux服务端常用命令?,工作,地址,系统,网络,基础,命令,标准,工具,信息,管理,l

    linux禁用服务命令行?

    linux禁用服务命令行?,服务,系统,软件,管理,工具,信息,状态,平台,连续,技术,l

    linux清空表数据命令?

    linux清空表数据命令?,系统,数据,软件,名称,不了,命令,文件,电脑,地址,位置,L

    linux停服务常用命令?

    linux停服务常用命令?,地址,工作,系统,命令,服务,信息,标准,管理,代码,进程,l

    linux拷贝数据命令?

    linux拷贝数据命令?,系统,地址,文件,数据,命令,目录,服务,基本知识,项目,密

    linux服务器删除命令?

    linux服务器删除命令?,系统,服务,管理,情况,命令,工作,互动,地址,软件,较大,l

    linux开启服务命令?

    linux开启服务命令?,服务,标准,设备,工作,网络,系统,密码,命令,服务器,终端,

    linux服务器负荷命令?

    linux服务器负荷命令?,信息,电脑,中科,环境,工具,系统,平均,检测,情况,状态,l