ODataLib

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.

Libraries

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.
Contrib (Microsoft.Data.OData.Contrib)
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.

Available Components

Atom format reader & writer (Core)
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 (Core)
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.
Request Parsing (Contrib)
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.

Documentation

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

Reference Documentation

FAQ

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.

Servicing

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.

Last edited Aug 1, 2012 at 5:37 PM by ArloBelshee, version 9

Comments

syedhaiderabbas Feb 27 at 11:36 AM 
Can you please answer my OData related question?
http://social.msdn.microsoft.com/Forums/windowsazure/en-US/927e94cc-e304-4d0c-9b0c-a016e60441ef/odata-serialization-and-deserialization?forum=windowsazureconnectivity

ArloBelshee Jul 24, 2012 at 6:27 PM 
@DavidThi808 We're writing it. I know that's about the lamest answer we could possibly give you. Unfortunately, it is also the only answer I can give you right now. The documentation will be linked to from this page as it is written.

ArloBelshee Jul 24, 2012 at 6:25 PM 
@JoePro code for ODataLib is available, as of 7/3. Code for WCF Data Services Client hasn't been posted for a while. We're working through the release process. It will take some time, but I'm pretty confident that it will happen.

JoePro Jul 24, 2012 at 5:10 PM 
Will the source code for version 5.XX ever be published here? There hasn't been a drop in a long time.

DavidThi808 Jul 23, 2012 at 2:58 PM 
Where is the documentation?