[Announcement] ODataLib 6.5.0 Release


We are happy to announce that the ODL 6.5.0 is released and available on nuget along with the source code oncodeplex (please read the git history for the v6.5.0 code info and all previous version). Detailed release notes are listed below.

Bug Fix

  • Fix a bug for supporting “Core.OptimisticConcurrency” annotation.
  • Fix bugs for enum  1) ODataUriParser should support nullable Enum as a function parameter. 2) Dynamic enum property should have @odata.type annotation.

New Features

  • EdmLib & ODataLib now support TypeDefinition

A type definition defines a specialization of one of the primitive types. for details please refer to here

  • EdmLib & ODataLib now support serializing and deserializing unsigned integers

A shared model that contains type defs for unsigned integers is defined. we will have a blog post on this website soon about how to use it in your service.  

  • ODataLib now supports $count on collection of Primitive or complex type
$count is used to request only the number of items of a collection of entities or items of a collection-valued property.
  • Support Capabilities.ChangeTracking annotation
Services advertise their change-tracking capabilities by annotating entity sets with the Capabilities.ChangeTracking. see spec at here
  • OData Client for .Net now supports changing http method in BuildingRequest event handler

 

  • OData Client for .Net & ODataLib now support Windows Phone 8.1 project.

 

  •  Provide a new (API/flag) to enhance the writer performance by disable validation

    In ODataMessageWriterSettings and ODataMessageReaderSettings, an flag “EnableFullValidation” is added to turn on/off full validation to improve perf.

     public class Microsoft.OData.Core.ODataMessageWriterSettings    {     public bool EnableFullValidation{get;set;}

     public class Microsoft.OData.Core.ODataMessageReaderSettings  {     public bool EnableFullValidation{get;set;} 

MISC

  • Rename client portable dll from “Microsoft.Data.Services.Client.Portable” to “Microsoft.Data.Services.Client” 

Call to Action

You and your team are highly welcomed to try out this new version if you are interested in the new features and fixes above. For any feature request, issue or idea please feel free to reach out to us atodatafeedback@microsoft.com.


Comments (12)

  1. anchorsmith says:

    The portable version of Microsoft.OData.Client 6.5.0 seems to have dropped support for Silverlight 5 projects. Can this support be added back in?

    Microsoft.OData.Client.6.4.0

    portable-net45+sl5+wp8+win8

    Microsoft.OData.Client.6.5.0

    portable-net45+wp8+win8+wpa

    The corresponding 6.5.0 versions of Microsoft.OData.Core and Microsoft.OData.Edm do still have the SL5 target:

    Microsoft.OData.Core.6.5.0

    portable-net40+sl5+wp8+win8+wpa

    Microsoft.OData.Edm.6.5.0

    portable-net40+sl5+wp8+win8+wpa

  2. OnurG says:

    I favor dropping the SL support. The annoying thing is any library targets SL, uses mscorlib 2.0.5 which is a library that doesn't play nicely with many other things. It is a source of many problems.

  3. anchorsmith says:

    @OnurG that's a reasonable point, although a preferable time to do this would be at a major revision with some prior warning – e.g. during the previous 6.0 branding switch or for some future 7.0 release of the OData client.  

    I guess this is more of a bug with the VS NuGet extension, but attempting to update the OData Client package to latest at the solution level will now blowup any SL5-enabled PCL project as the 6.4.0 references are removed and the 6.5.0 references fail to get added.  Not the end of the world to rollback the affected .csproj from source control or manually reinstall -version 6.4.0 from the package manager console, but it's a very distracting "surprise" and I'm probably not the only person that's going to have this problem.

  4. AceHack says:

    I can't take the update it says

    Updating 'Microsoft.OData.Core 6.4.0' to 'Microsoft.OData.Core 6.5.0' failed. Unable to find a version of 'Microsoft.AspNet.OData' that is compatible with 'Microsoft.OData.Core 6.5.0'.

  5. YahorS says:

    Something wrong with NuGet ((((

    Attempting to resolve dependency 'Microsoft.Spatial (= 6.5.0)'.

    Attempting to resolve dependency 'Microsoft.OData.Edm (= 6.5.0)'.

    Installing 'Microsoft.Spatial 6.5.0'.

    Successfully installed 'Microsoft.Spatial 6.5.0'.

    Installing 'Microsoft.OData.Edm 6.5.0'.

    Successfully installed 'Microsoft.OData.Edm 6.5.0'.

    Installing 'Microsoft.OData.Core 6.5.0'.

    Successfully installed 'Microsoft.OData.Core 6.5.0'.

    Updating 'Microsoft.OData.Core' to version '6.5.0' in project 'Confirmit.CATI.Backend'.

    Install failed. Rolling back…

    Updating 'Microsoft.OData.Core 6.4.0' to 'Microsoft.OData.Core 6.5.0' failed. Unable to find a version of 'Microsoft.AspNet.OData' that is compatible with 'Microsoft.OData.Core 6.5.0'.

    Any ideas how to solve?

  6. Stephen says:

    Any update on the open sourcing of WCF Data Services?

    Please don't leave us hanging.  If you have changed your mind and are not going to open source it or if you are working on getting it ready, let us know….

    Web API works for "Apps" but its current version is not a good choice for any kind of real enterprise application.

    Please let us know what is going on….

  7. FabioP says:

    I have the same problem.

    Updating 'Microsoft.OData.Core 6.4.0' to 'Microsoft.OData.Core 6.5.0' failed. Unable to find a version of 'Microsoft.AspNet.OData' that is compatible with 'Microsoft.OData.Core 6.5.0'.

  8. ta.speot.is says:

    I think changing the PCL target was a mistake, I have an existing PCL with third party libraries that all work with the Microsoft.OData.Client 6.4.0 PCL profile (portable-net45+sl5+wp8+win8) but don't work with Microsoft.OData.Client 6.5.0 PCL profile (portable-net45+wp8+win8+wpa).

    I change the PCL target and NuGet tells me I need to reinstall my packages. But I can't reinstall the packages (because I'm now on the "wrong" profile for them).

  9. PotatoB says:

    I have the same problem as well.

    Updating 'Microsoft.OData.Core 6.4.0' to 'Microsoft.OData.Core 6.5.0' failed. Unable to find a version of 'Microsoft.AspNet.OData' that is compatible with 'Microsoft.OData.Core 6.5.0'.

    Is this a package conflict – or do I have something wrong which the packages my app is consuming?

  10. MemeDeveloper says:

    I have a problem with the nullable enum support. I am trying to use a nullable enum as a parameter in a function. If I declare it as nullable – then it's always null !

    var functionTest = builder.Function("Test")

    .Returns<bool>();

    functionTest.Parameter<PastVisitState?>("PastState");

    and

     [HttpGet]

           [ODataRoute("Test(PastState={pastState})")]

           [EnableQuery]

           public bool Test([FromODataUri] int? pastState)

           {

               if(pastState != null)

               {

                   return true;

               }

               else

               {

                   return false;

               }

           }

    visits.backend/…/Test(PastState=Data.Entities.PastVisitState&

    always returning false.

    So seems like there IS NOT support for nullable enums?

    Am I missing something, I can get a nullable int to work just fine.

  11. MemeDeveloper says:

    Sorry posted wrong function, should have been PastVisitState? pastState in the controller obviously.

  12. MemeDeveloper says:

    I just updated to 6.8.1 via nuget and still getting same problem, can anyone help please?