[Announcement] OData core libraries now support OData v4
We are tremendously excited to announce that we have released version 6.0.0 of the OData core libraries to NuGet on Jan 27th. This release is particularly noteworthy as it is the first production-ready release
with support for OData v4, the newest version of the OData protocol. We had two primary goals for this release:
- Feature parity. The new stack supports everything that was supported before, but all payloads and other functionality are now compliant with the v4 protocol.
- Selected new features. This release adds support for enum types, singletons and containment.
We have achieved both of these goals and are now well positioned to continue adding support for v4 features.
Stack Prioritization & Strategy Adjustment
As you are probably aware, our team aligns with many teams inside and outside of Microsoft who are building OData services. This includes teams across every major division at Microsoft. Based on these engagements, we believe that Web API provides the right platform for OData services going forward and as such will be investing primarily in that platform for OData server stacks. We will of course continue to put significant resources into the OData core libraries and client, but we do plan to reduce investment in WCF Data Services as a stack for creating OData services. To mitigate the inconvenience this may cause, we are working on cleaning up the code and making it compatible with OData v4, and will then release that stack as open source. We do not plan to put any significant investment into adding v4-specific features to the WCF DS stack. Web API is actively working on adding support for OData v4 and nightly builds with OData v4 support will be available in February, with a public CTP to follow in March.
You might notice we have also made some branding changes to our client to align it more with the protocol. The client is and always has been an OData client (and not a WCF Data Services client), but now the name reflects the code more accurately. Also, we have adjusted our code generation strategy to use T4 rather than CodeDom. This means that if you want to have a customized code gen experience for your OData service, you can start from our T4 template and make whatever tweaks you wish.
Call to Action
If your team has an existing OData service or is considering adding an OData service, now is an excellent time to engage with us. In addition to building OData stacks, part of our charter is to help Microsoft align behind the OData protocol. If you need input on whether OData can do what your service needs to do, or input on what version of OData you should implement, please feel free to reach out to us at firstname.lastname@example.org.
The full release notes are as follows:
This release includes the core .NET libraries described below for implementing OData clients and services that comply with the Committee Specification 02 of the OASIS OData V4 Specification (http://docs.oasis-open.org/odata/odata/v4.0/cs02/part1-protocol/odata-v4.0-cs02-part1-protocol.doc). The libraries support the OData V4 JSON (http://docs.oasis-open.org/odata/odata-json-format/v4.0/cs02/odata-json-format-v4.0-cs02.doc) format; the Atom format is not supported in this release.
What is in the release?
- Feature parity: This release supports the same set of features that were supported in version 5.6.0 of the OData core libraries. This release supports OData v4 only and is not backwards compatible with OData versions 1-3.
- Enum support: The core libraries now have support for serializing and deserializing enum values in JSON payloads. The URI parser is able to parse enum values and operations including ‘has’.
- Singleton support: The core libraries now have support for serializing and deserializing singleton values in JSON payloads. The URI parser is now able to parse singletons in paths.
- Containment support : The core libraries now have support for serializing and deserializing contained values in JSON payloads. The URI parser is now able to parse contained paths.
- Function support: The URI parser is now able to parse functions and function parameters in URLs.
- OData v4 compatibility: The JSON format, $metadata format and URI parser have all been updated to support OData v4.
- This release of the OData core libraries targets functional equivalence with the 5.6.0 release as well as support for a few new features. This means that there are many new OData v4 features that are not supported yet in the core libraries.
- Although the OData core libraries are capable of serializing the OData v4 Atom format, this functionality is not officially supported since the Atom specification has not yet made it to the CS02 stage.
Again, please feel free to reach out if you have any questions.
The OData Team