BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

ASP.NET Web API已支持OData v4.0,但WCF不会

| 作者 Roopesh Shenoy 关注 0 他的粉丝 ,译者 马德奎 关注 0 他的粉丝 发布于 2014年3月29日. 估计阅读时间: 3 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

ASP.NET Web API 2.2 for OData v4.0每日构建版现已发布。团队还在nuget上发布了OData核心库6.1版,其中包含数项Bug修复和新功能,尤其是增加了对OData v4规范的支持。不过,微软的团队表示,WCF将不会获得OData v4的特有功能。

最近,OData v4.0和OData JSON Format v4.0被采纳为一项OASIS标准。读者可以查看OData v4.0有哪些新功能

以下是ASP.NET Web API 2.2和OData核心库的改进——

  • 协议和格式从V3变到V4
  • OData属性路由
  • 支持在OData模型中定义函数并绑定到控制器动作
  • 模型别名——允许OData模型和CLR Types的类型或属性有不同的名称
  • 可以定义模型的哪些属性能够过滤、排序、扩展或导航
  • 支持ETags
  • 支持枚举
  • 支持$format查询字符串选项,因此客户端可以指定格式
  • 支持单例
  • 支持包含

已知的局限性——

  • 还有许多OData v4功能不支持——此次发布的重点是与早期版本同等的功能以及少数几项新功能
  • OData核心库能够序列化OData v4 Atom格式,但由于Atom规范还没有进入CS2阶段,所以这不是官方支持。

在客户端方面,有一个新程序包,但只支持OData v4.0——如果客户端需要使用V1-3以及V4的服务,那么开发人员不得不在应用程序中同时使用新旧程序包。

一个有些争议的决定是,在使WCF成为一个构建OData服务的技术栈方面减少投资。OData Services团队是这样说的——

……对于作为创建OData服务技术栈的WCF Data Services,我们确实计划减少对它的投资。为了减轻由此造成的不便,我们正努力清理代码,以便使它与OData v4兼容,而之后,我们会将该技术栈开源。我们不计划在将V4的特有功能添加到WCF DS技术栈方面进行任何重大的投资。

不过,社区仍然希望WCF能支持OData 4.0。Adam说——

由于我们的业务层是用WCF DS编写的,所以对于这个决定,我觉得我们被扔在了车轮下。我们已经花费了这么多精力来克服WCF DS的弱点(变更跟踪支持、性能、包含、客户端代理的可怜的T4支持、糟糕的EF6 alpha质量提供程序等),愉快地等待新的v4版本的发布,想不到事到如今你们竟然放弃了它。这时候切换到Web API,看来是我们为你们的每个决定买单。我们可是微软的黄金合作伙伴。

还有其他人要求在WCF中支持OData v4.0。我们只能等等看,微软是否会改变这项决定。

读者可以从编写一个OData v4.0服务入手,并使用OData客户端代码生成器来生成客户端代理类。

查看英文原文:ASP.NET Web API Gets OData v4.0 Support, WCF Will Not

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT