写点什么

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

  • 2014-03-28
  • 本文字数:1010 字

    阅读完需:约 3 分钟

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

2014-03-28 20:462545
用户头像

发布了 256 篇内容, 共 92.2 次阅读, 收获喜欢 12 次。

关注

评论

发布
暂无评论
发现更多内容

基于vmware16 和 ubuntu20.04, 搭建单节点 kubernetes 1.22.2

琦彦

ubuntu Kubernetes

设计模式之禅(一)

青柚1943

设计模式 SOLID 设计原则

设计模式之禅(二)

青柚1943

设计模式 设计原则 策略模式 观察者模式 模板方法模式

JAVA编程规范之建表规约

源字节1号

后端开发

1000个Okaleido Tiger首发上线Binance NFT,引发抢购热潮

BlockChain先知

python干货——函数

Java学术趴

7月日更

微信朋友圈的高性能架构设计

张立奎

在openEuler社区开源的Embedded SIG,来聊聊它的多 OS 混合部署框架

openEuler

Linux 开源 操作系统 嵌入式 openEuler

strncat() strncmp()

謓泽

7月月更

1000个Okaleido Tiger首发上线Binance NFT,引发抢购热潮

鳄鱼视界

什么是 Rest 动词

宇宙之一粟

REST API 7月月更

1000个Okaleido Tiger首发上线Binance NFT,引发抢购热潮

股市老人

Android编码规范

沃德

android 程序员 7月月更

ES6箭头函数的使用

bo

JavaScript 前端 ES6 7月月更

汇编语言伪指令详解(附实例)

timerring

汇编语言 7月月更 伪指令

使用 Vue + Three.js 构建交互式 WEB 作品展示集(一)

devpoint

Vue three.js 7月月更

Qt | 设置部件大小 sizeHint、minimumSizeHint、sizePolicy、stretch factor

YOLO.

qt 7月月更

Qt|字符串生成二维码功能

中国好公民st

qt 7月月更

通过http请求启动jenkins任务

程序员欣宸

Java jenkins 7月月更

架构实战营模块二作业

zhihai.tu

数据中台:始于阿里,兴于DaaS

雨果

数据中台 数字化转型 数据共享 DaaS数据即服务

Redis管道技术/分区

恒山其若陋兮

7月月更

CentOS 7 常用的 11 个小技巧

耳东@Erdong

Linux 7月月更

openEuler 资源利用率提升之道 01:概论

openEuler

开源 openEuler 内核 资源管理

D1-H 开发板——哪吒 开发入门

贾献华

7月月更

视频号加强打击低俗内容:对违背公序良俗的内容必须赶尽杀绝

石头IT视角

计算机网络之初识网络

未见花闻

7月月更

Harbor2.2 精细化的权限控制

琦彦

Harbor

Idea:Git的常用菜单操作和常用命令

琦彦

IDEA git常用命令 git 学习

ASP.NET Web API已支持OData v4.0,但WCF不会_.NET_Roopesh Shenoy_InfoQ精选文章