OData Updates in Windows Phone “Mango”
Today, the Windows Phone team announced the next version of Windows Phone, code-named “Mango.” You can read more about Mango in this morning’s blog post from the Windows Phone team. There is also a developer tools update for this Mango beta release, which now includes the OData client library for Windows Phone; you can get it from here.
Here’s a list of new OData client library functionality in Mango:
- OData Client Library for Windows Phone Is Included in the Windows Phone SDK
In this release, the OData client library for Windows Phone is included in the Windows Phone Developer SDK. It no longer requires a separate download. - Add Service Reference Integration
You can now generate the client data classes used to access an OData service simply by using the Add Service Reference tool in Visual Studio. For more information, see How to: Consume an OData Service for Windows Phone. - Support for LINQ
You can now compose Language Integrated Query (LINQ) queries to access OData resources instead of having to determine and compose the URI of the resource yourself. (URIs are still supported for queries.) - Tombstoning Improvements
New methods have been added to the DataServiceState class that improve performance and functionality when storing client state. You can now serialize nested binding collections as well as any media resource streams that have not yet been sent to the data service. - Client Authentication
You can now provide credentials, in the form of a login and password, that are used by the client to authenticate to an OData service.
For more information on these new OData library behaviors, see the topic Open Data Protocol (OData) Overview for Windows Phone in the Mango beta release documentation.
Note: These enhancements essentially makes the OData client library for Windows Phone functionally equivalent to the WCF Data Services library for Silverlight, which is nice for folks porting Silverlight apps to Windows Phone.
Glenn Gailey
Comments
Anonymous
May 30, 2011
Hi Glenn, I am trying to upgrade an WP7 appliction to Mango. In the original code I hade the following: Dim theDataServiceState As DataServiceState = DataServiceState.Save(App.ViewModel.Context, theCollections) PhoneApplicationService.Current.State("DataServiceState") = theDataServiceState With Mango, I am getting an error stating that the "Save" method on DataServiceState is not valid. Can you point me to a solution for this issue? Thanks ... bill burrows, VB MVPAnonymous
May 30, 2011
Hey Bill, Basically Save() has been replaced with Serialize(). We are still working on getting the tombstoning how to topic written (it will probably be more of a walkthrough). But in the meantime, I discuss this new behavior in my new blog post blogs.msdn.com/.../new-odata-tombstoning-behavior-in-mango.aspx Glenn.