Поделиться через


WCF Data Services 5.6.0 Release

Recently we released updated NuGet packages for WCF Data Services 5.6.0. You will need the updated tooling (released today) to use the portable libraries feature mentioned below with code gen.

What is in the release:

Visual Studio 2013 Support

The WCF DS 5.6.0 tooling installer has support for Visual Studio 2013. If you are using Visual Studio 2013 and would like to consume OData services, you can use this tooling installer to get Add Service Reference support for OData. Should you need to use one of our prior runtimes, you can still do so using the normal NuGet package management commands (you will need to uninstall the installed WCF DS NuGet packages and install the older WCF DS NuGet packages).

Portable Libraries

All of our client-side libraries now have portable library support. This means that you can now use the new JSON format in Windows Phone and Windows Store apps. The core libraries have portable library support for .NET 4.0, Silverlight 5, Windows Phone 8 and Windows Store apps. The WCF DS client has portable library support for .NET 4.5, Silverlight 5, Windows Phone 8 and Windows Store apps. Please note that this version of the client does not have tombstoning, so if you need that feature for Windows Phone apps you will need to continue using the Windows Phone-specific tooling.

URI Parser Integration

The URI parser is now integrated into the WCF Data Services server bits, which means that the URI parser is capable of parsing any URL supported in WCF DS. We have also added support for parsing functions in the URI Parser.

Public Provider Improvements - Reverted

In the 5.5.0 release we started working on making our providers public. In this release we hoped to make it possible to override the behavior of included providers with respect to properties that don’t have native support in OData v3, for instance enum and spatial properties. Unfortunately we ran into some non-trivial bugs with $select and $orderby and needed to cut the feature for this release.

Public Transport Layer

In the 5.4.0 release we added the concept of a request and response pipeline to WCF Data Service Client. In this release we have made it possible for developers to directly handle the request and response streams themselves. This was built on top of ODataLib's IODataRequestMessage and IODataResponseMessage framework that specifies how requests and responses are sent and recieved. With this addition developers are able to tweak the request and response streams or even completely replace the HTTP layer if they so desire. We are working on a blog post and sample documenting how to use this functionality.

Breaking Changes

In this release we took a couple of breaking changes. As these bugs are tremendously unlikely to affect anyone, we opted not to increment the major version number but we wanted everyone to be aware of what they were:

  • Developers using the reading/writing pipeline must write to Entry rather than Entity on the WritingEntryArgs
  • Developers should no longer expect to be able to modify the navigation property source in OnNavigationLinkStarting and OnNavigationLinkEnding
  • Developers making use of the DisablePrimitiveTypeConversion knob may see a minor change in their JSON payloads; the knob previously only worked for the ATOM format

Bug Fixes

  • Fixes a performance issue with models that have lots of navigation properties
  • Fixes a performance issue with the new JSON format when creating or deleting items
  • Fixes a bug where DisablePrimitiveTypeConversion would cause property type annotations to be ignored in the new JSON format
  • Fixes a bug where LoadProperty does not remove elements from a collection after deleting a link
  • Fixes an issue where the URI Parser would not properly bind an action to a collection of entities
  • Improves some error messages

Known Issues

The NuGet runtime in Visual Studio needs to be 2.0+ for Add Service Reference to work properly. If you are having issues with Add Service Reference in Visual Studio 2012, please ensure that NuGet is up-to-date.

Comments

  • Anonymous
    August 26, 2013
    When are you planning to add OData 4 support?

  • Anonymous
    August 27, 2013
    Does this release include EF 6 support?

  • Anonymous
    August 27, 2013
    When will tombstoning be added back into the mix? Or does it conflict with portable library support?

  • Anonymous
    August 27, 2013
    Does this release handle EF DbGeography types?  Previous releases used their own versions, which were incompatible with EF.

  • Anonymous
    September 07, 2013
    Support for geometry spatial of entity Framework? users are waiting this bug fix for Long time

  • Anonymous
    September 17, 2013
    When refreshing data that is persisted, the OnPropertyChanged event is raised for every property in every data object, this can cause a lot of slowdown. Would you be able to update the automatic code generated in Reference.cs, so the set methods check if the new value is the same as the old, before calling OnPropertyChanged? Is there any way I can change the code format generated in Reference.cs (other than manually of course!)?

  • Anonymous
    September 27, 2013
    When are you planning to add OData 4 support?

  • Anonymous
    October 01, 2013
    How do I activate it in the express editions after installtion?

  • Anonymous
    October 02, 2013
    The comment has been removed

  • Anonymous
    October 16, 2013
    When will be the Public Transport Layer example available? I have to use compression to my output, so I'd like to use gzip with that feature. Will I be able to do it?

  • Anonymous
    October 28, 2013
    The comment has been removed

  • Anonymous
    October 31, 2013
    I'm unable to install "WCF Data Services Client for Windows Store Apps" on my laptop running Windows 8.1 and has VS2013. Other mates from my team with same hw & sw configuration were able to install. Please help.

  • Anonymous
    November 13, 2013
    @Mark Stafford Hi Mark, actually I'm using code first and wcf data services. In order to handle gis data within ODATA, I had to converted all geometry (Shape Column) into wkt (ogc simple feature) using a column "ShapeWKT" [nvarchar max]. The editing from desktop (quantum gis) is made on geometry column, while the editing from browser is made on ShapeWKT using openlayers. In order to syncronize both data, I had to implement triggers. So It is not really good and stable solution but it works. Can You give the date when wcf data services can works with geometry native type? thanks Michele

  • Anonymous
    December 23, 2013
    decimal类型字段4位小数,保存时被截断为2位小数 public class NN {    decimal mValue { get;set; } } NN.mValue = 1.2312; db.UpdateObject(NN); db.SaveChanges; decimal  m = db.NN.Frist().mValue; m 为 1.23

  • Anonymous
    December 24, 2013
    Is IODataRequestMessage documenting? I need to replaced the stream to compress request stream, but i don't know what to do!

  • Anonymous
    December 25, 2013
    Is there any document shows how to use Public Transport Layer?

  • Anonymous
    January 29, 2014
    The OData Client for .NET 6.0.0 was released to support OData V4 on 2014-01-27. When will the WCF Data Services support OData Version 4? www.nuget.org/.../Microsoft.OData.Client Many thanks, Jim

  • Anonymous
    February 01, 2014
    This Tools update, as well as the 5.3.0 version, seems to break Lightswitch when pointing it to an OData data source. Lightswitch auto-generates a DataServiceContext proxy to the OData source (as what happens in other apps using 'Add Service Reference'), and after this Tools installer is run, the auto-generated proxy causes a runtime type constraint violation to be thrown from the AstoriaDataServiceImplementation class of Microsoft.LightSwitch.Base.Server, which expects a DataServiceContext instance, but apparently not the one that was generated. I've posted details in the Lightswitch forum: social.msdn.microsoft.com/.../0a07aca5-2aa0-4366-8bc7-06c63c93d4a2 .