我曾经在我的网站上创建普通的网络服务,并通过javascript调用这些服务来进行ajax调用。
现在我正在学习Ado Data Services, 我的问题是: 这个Ado Data Services是否可以替换我将创建的新网站中的常规Web服务?
如果是,
我可以将这些Ado数据服务放在一个单独的项目“同一服务器上的本地”并且只是从我的网站引用吗? “为我的网站内部使用提供相同的服务,并为其他网站或服务提供相同的服务,例如与推特相同”
答案 0 :(得分:1)
取决于你想做什么,我建议你阅读我与Ado.Net数据服务架构师Pablo Castro的对话
这基本上是巴勃罗的话。
我同意其中一些非常不方便,我们正在考虑修复它们(例如,除了在输入模型中定义的类型之外,还要使用自定义类型来生成自定义结果集)。但是,其他一些只是数据服务本质所固有的。
数据服务框架不是数据库的网关,一般而言,如果您需要类似的东西,那么数据服务就会受到阻碍。数据服务的目标是从输入数据模型中创建资源模型,并使用暴露统一接口的RESTful接口公开它,以便底层模型中的每个数据单元(“实体”)成为可寻址资源可以用标准动词操纵。
RESTful接口的实际实现通常包括更复杂的行为,而不仅仅是对封底下的数据进行CRUD,这需要以不破坏统一接口的方式进行定义。这就是数据服务服务器运行时以查询/更改拦截器等形式为业务逻辑和验证挂钩的原因。我们也承认,使用标准动词操作资源绝对不可能或者可行实际建模,因此我们将服务操作作为逃生舱。
像加入这样的东西会淡化我们试图创造的抽象。我并不是说它们是坏的或任何东西(没有它们的关系型数据库都不会那么有用),只是如果给定的应用程序场景需要的是关系数据库的完整查询表达能力在服务边界,然后你可以简单地通过网络交换查询(并管理其安全含义)。对于可以建模为关联遍历的连接,数据服务已经支持它们。
我想这是一个很长的路要说数据服务不是解决涉及向网络公开数据的每个问题的解决方案。如果您希望资源模型上的RESTful接口与我们的基础数据模型匹配,那么它通常可以很好地工作,它将为您节省大量的工作。如果您需要自定义界面或直接访问数据库,那么数据服务通常不是正确的工具,其他框架组件(如WCF的SOAP和REST支持)在这方面做得很好。