ODataLib provides building blocks for the parts of the OData protocol that are hard to get right. You can combine some or all of these building blocks with your own code to let your application speak OData.
Its main features are:
- Use components independently or in conjunction with each other.
- Contains both server and client components.
- Use only what you need.
- Your application remains in charge. ODataLib only does stuff when you ask it to.
ODataLib consists of two parts: Core and Contrib. These are distributed as separate libraries and NuGet packages so that you can easily tell them apart.Core
(Microsoft.Data.OData, Microsoft.Data.Edm, and System.Spatial)
Contains stable components that are ready for you to use.
Use these for your project.
Contains experimental components. These are expected to be at the same quality level as components in Core. However, their API has not yet stabilized and they may not be fully scope-complete. Once all features are done and the API is solid, these components will move to core.
Use these if you want to experiment with future functionality and give feedback on the design.
Atom format reader & writer
Translates between a set of objects in memory and an Atom wire representation of those objects. These support high-performance, streaming reads & writes. See Working with OData Messages for more info.
Verbose Json format reader & writer
Translates between a set of objects in memory and a Json Verbose wire representation of those objects. These support high-performance, streaming reads & writes. See Working with OData Messages for more info.
Metadata reader & writer
(Core - packaged in EdmLib)
Translates between a set of objects in memory and a $metadata document.
Parses an OData request into an abstract syntax tree. Eventually, this will parse the whole request with knowledge of the model and create a model that represents that request.
More on its way. We need to provide getting started code samples, some simple how-tos, and reference documentation for the public API. We are in the process of writing that; some of it is already here. Sorry it is not yet finished. It will show up here as we write it.
Descriptive Documentation - Helping You Understand What's There
How-Tos / Getting Started
AKA, all those questions that Vitek has answered
. While this project has had no documentation, Vitek has done a great job answering peoples' questions. We are gathering those answers here.
Please report any bugs in the Issue Tracker. Bugs will be prioritized and then fixed in a future release. To get the bug fix, update to the latest version.
Backwards compatibility is a key concern with ODataLib Core. Upgrading to a new minor or incremental version should not break your system. Major version upgrades are not necessarily backwards compatible.
ODataLib Contrib offers no backwards compatibility support between versions. Even incremental versions may introduce breaking changes. We'd love to hear about bugs and awkward APIs so that we can fix them before anything gets to Core.