2024年6月8日发(作者:)
为什么微软要推 Data Services
微软在 .NET 3.5 SP1 平台上,推了一组新的数据访问 Framework,叫做 Data Services。微软怕程
序员太闲吗?为什么要创造 Data Services?Web Service 和 WCF 不就很好用了吗?本帖整理一些研讨
会及网络上大内高手的观点,并提供一个可在 VS 2008 SP1 上执行的示例给大家下载参考;但本帖不提供 step by
step 实作教学,因为网络上已经有一堆这种文章了 (参考本帖最下面的「参考文件」第 6、第 7 点的文章,照着
用 VS 2008 + SP1 操作,即可达成本帖提供下载的示例)。
.NET 的 WCF 3.5,有一个很重要的新功能,是对 REST (Representational State Transfer) 的支持。听说
一些知名大型网站,及 RoR 阵营,都开始逐渐抛弃 Web Service,改提供 REST 的服务。所以微软这边也不能闲
着,也搞了一套 Data Services 来支持 REST 的概念。
所谓的 REST,如同字面上的意思,是要让开发人员和应用程序 (当然也包括异质平台的应用程序),能以简单
到不能再简单的方式,去访问和撷取网络上的数据和资源。怎么个简单法?REST 用最单纯的 URL 网址,就让一般
客户、应用程序能直接访问、写入远程主机上的数据库。此外,微软实作 REST 的 Data Services,亦有
一套安全控管、存取权限控管的机制,不必担心安全性的问题。
相对于微软的 WCF Service 要做一些设定,以及过去大家常用的 Web Service,此二者和 REST、 Data
Services 比较起来,相对就显得较复杂、不够弹性,且 Web Service 还有最为人垢病的 performance 问题。
过去如果你是一间公司的 MIS,当 A 部门的员工需要某些数据,你可能会随手写一支 Web Service 开放这些
数据给别人使用;过不久 B 部门的主管又需要别的数据,你可能就再写另一支 Web Service,开放另一台主机数
据库中的数据给别人使用。日积月累下来,几十上百支的 Web Service 可能就难以维护和管理,如此做法就显得
不够弹性。而且别人在呼叫这些 Web Service 时,必须先知道主机的位置、函数的名称及功能、传入的参数及类
型,在引用上仍不够方便。
但若透过 REST、 Data Services,当你想公开某一台主机上的数据库 Northwind,给远程的一般 user、
开发人员或应用程序访问 (包括 SELECT、INSERT、UPDATE、DELETE 等 CRUD 动作) 时,只要提供下列的 URL,搭
配 HTTP Verbs (GET, POST, ...) 即可:www.网站名称.com/Northwind
若要让他们能访问 Northwind 数据库中的 Products 表时,只要提供下列的 URL 即可:www.网站名
称.com/Northwind/Products
亦即 Data Services 是一个远程主机数据访问的「中介服务」,可由客户端、客户端应用程序,自行
决定数据存取的内容和方式。
因此将来的 URL 指向的不再只是一个网址,而可能是某个数据库、数据来源、云端运算 [15,16,17];而且分
布式环境中的 AJAX、WCF、Silverlight 等客户端应用程序,要使用这个 REST-based 服务也相当简单,尤其是 AJAX
不用再手工搞一堆 JavaScript;将来要在异质系统之间交换数据,将会有比 Web Service 更方便、更好用的选择,
苦命的程序员将来或许真的能 REST 了 (虽然实际上只是梦想)。
在 .NET 平台方面,未来的 .NET Framework 4.0 及 Visual Studio 2010,仍有 Data Services
Framework 2.0 的版本,也有新的 4.0 版的 es 函式库,因此预估 Data Services 将
来应不至于被微软淘汰,程序员可放心学习。
(执行本示例,需要 VS 2008 + SP1,以及 SQL Server 的 Northwind 数据库。若无法执行,请在本帖留言
告知)
-------------------------------------------------
此一示例,是参考本帖最下方「参考文件」的第 6、第 7 这两篇文章的教学实作出来的,在此不再赘述过程。
下载代码后,直接双击 ,即会以 VS 2008 (SP1) 开启两个 project,如下图 1 所示。
图 1 鼠标指的 ,即为开放在 URL 中给所有客户引用的 Data Services 服务
图 1 下方的 ds_server 项目,即为提供服务的 Data Services,透过一个 O/R Mapping 的 EDM 档案 [2],
以和 Entity Framework 同样的做法,提供客户走访整个 SQL Server 2005 的 Northwind 数据库。
如同 WCF,在 Data Services 中也以 .svc 格式的档案提供网络上的服务。请您如上图 1,在 VS 2008
中,以鼠标右键,透过浏览器直接开启 档案,此时您应该会看到如下图 2 的画面,亦即列
出 Northwind 数据库中所有的表名称。
发布评论