写点什么

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:462748
用户头像

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

关注

评论

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

小程序与H5适合的场景应用都有哪些

Speedoooo

ios开发 APP开发 容器安全 Andriod开发 容器应用

等保工作中常见导致测评结论为差的高风险项

行云管家

网络安全 等级保护 等保测评 等保结论

周边生态|RoP 重磅发布 0.2.0 版本: 架构全新升级,消息准确性达 100%

Apache Pulsar

Java 开源 架构 云原生 Apache Pulsar

如何在Flutter应用程序中创建不同的渐变 【Flutter专题14】

坚果

flutter 28天写作 12月日更

恒源云(GPUSHARE)_CIFAR-10数据集实战:构建ResNet18神经网络

恒源云

深度学习 算法

云智慧正式开源运维管理平台(OMP),加速AIOps社区生态建设

云智慧AIOps社区

运维 运维监控 开源软件 运维体系 运维系统

一场关于元宇宙公司之死的剧本杀

白洞计划

☕【并发技术系列】「多线程并发编程」技术体系和并发模型的基础探究(夯实基础)

码界西柚

Java 并发编程 多线程 多进程 12月日更

初识JVM的内存结构

Ayue、

技术专题合集

基于星环科技大数据平台 辽宁城市建设职业技术学院打造智慧校园

星环科技

大数据

Selenium之css怎么实现元素定位?

六十七点五

大前端 软件测试 自动化测试 接口测试 selenium

vCenter管理软件用什么牌子好?有哪些用处?

行云管家

虚拟化 vcenter

分享一个从源码快速构建应用的小工具

Draven Gorden

开发者工具 开发工具 开源项目

Java和ABAP中的几种引用类型的分析和比较

汪子熙

Java 引用 28天写作 abap 12月日更

带你了解Typescript的14个基础语法

华为云开发者联盟

typescript 数组 开发 js 语法

常用项目部署方案和区别

进击的梦清

DevOps 运维 项目 部署与维护

MySQL探秘(二):SQL语句执行过程详解

程序员历小冰

MySQL 28天写作 12月日更

Linux一学就会之Centos8用户管理

学神来啦

Linux centos 运维 linux云计算

PackML从会到不会——命令标签(4)

陈的错题集

标准化 PackML

短视频平台的风控系统设计

Bill Zhang

当我们谈论“远程开发”时,我们在谈论什么

Draven Gorden

云原生 开发者工具 开发工具 远程协作 开发环境

dart系列之:还在为编码解码而烦恼吗?用dart试试

程序那些事

flutter dart flutter 面向切面 aop 程序那些事 12月日更

我不用“996”,更不用“007”,可我赚的就是比你多

六十七点五

软件测试 自动化测试 接口测试 测试工程师 功能测试

Cordova插件中JavaScript代码与Java的交互细节介绍

汪子熙

Java JavaScript 移动应用 28天写作 12月日更

使用工具Source Monitor测量您Java代码的环复杂度

汪子熙

Java 软件工程 28天写作 12月日更 代码复杂度

模块5作业

覃飞

12 月亚马逊云科技培训与认证课程,精彩不容错过!

亚马逊云科技 (Amazon Web Services)

架构师 培训 认证

模块五作业

危险游戏

架构实战营

Sinfonia: a new paradigm for building scalable distributed systems--翻译理解【1】

Krysta

分布式 transaction Sinfonia DSM 两阶段提交改进

Camtasia视频剪辑功能详解

淋雨

Camtasia

架构实战营 - 模块五作业

随风King

「架构实战营」

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