WCF Data Services 基础

把最近使用的WCF Data Service和WCF RIA Service的使用例子发布在站点http://dskit.codeplex.com , 本系列文章就把WCF Data Service和WCF RIA Service涉及的主要方面描述一下,希望通过这些内容,可以比较顺畅的把这些框架使用起来,以提高开发的效率。

 

WCF Data Services中几个基础的概念

Tenets of REST

  • HTTP method

 Method information is kept in the HTTP header, not in the body of the request.

  • Resource based

 Resources are expressed as “services” that clients consume.

  • Addressability

The scoping information is kept in the URL.  Operations such as $filter $top $skip

  • Relationships

How the data relates to each other is expressed in ADO.NET Data Services by resource links according to the CSDL [ specified in the Entity Data Model (EDM)]. A relationship link element such as <link href=”Customers(‘ALFKI’)/Orders

  • Statelessness

No stateful messages are exchanged between resources

MIME类型

承载的服务可以以JSON和ATOM返回【请求时说明MIME类型】用的返回类型如下:

MIME

MIME Type

应用程序类型

JSON

application/json

ASP.NET, AJAX, Silverlight

 

Atom

application/atom+xml

.NET Clients, Silverlight, ASP.NET mashups

HTTP Operation Success Return Codes

根据REST的定义对于不同的操作定义的服务端返回值情况:

Operation Success Code

GET 200 OK

POST 201 Created

PUT 204  No- Content

DELETE 204  No- Content

MERGE 204  No- Content

简单例子

VS2010中新建一个WEB工程,按如下步骤建立一个例子项目

 

建立微软SQL例子数据库NorthWind

1、  添加 Ado.net Entity: 选择SQL最初的例子NorthWind数据库

2、  添加WCF Data Services:WcfDataService.svc

3、  在WcfDataService.svc.cs配置访问规则:

            config.SetEntitySetAccessRule("*", EntitySetRights.AllRead);

            config.SetServiceOperationAccessRule("*", ServiceOperationRights.All);

            config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;

以上的部分是配置服务的可访问性和权限、行为等各种参数,具体参考MSDN,如果不对互联网公布的,默认配置也可

 

4、服务访问测试:Build解决方案后即可访问

下表是几个访问的实例

发布的服务描述

http://localhost:1206/WcfDataService.svc/

多个实体实例

http://localhost:1206/WcfDataService.svc/Suppliers

单个实体实例

http://localhost:1206/WcfDataService.svc/Suppliers(1)

对象关系导航

http://localhost:1206/WcfDataService.svc/Suppliers(1)/Products

【工程可从http://dskit.codeplex.com下载】

 

可以看到发布一个数据并进行查询等处理写的代码简直是很少了,而提供的功能却非常强大,后续对查询等继续进行说明。

posted @ 2010-10-15 20:41  2012  阅读(2295)  评论(0编辑  收藏  举报