Announcing ADO.NET Data Services v1.5 CTP1


It’s been a little while since we’ve written about the future direction of data services, so this post is intended to layout our thinking towards our next release.  The release described below isn’t yet available, but should be in the coming months, so stay tuned :).  The rest of this post will discuss the specifics of the release being announced and what to expect in terms of features in CTP1.


ADO.NET Data Services v1.5 CTP1 is a tech preview of the next release of ADO.NET Data Services.  This release (v1.5) will target the .NET Framework 3.5 SP1 & Silverlight 2 platforms and provide new client and server side features for data service developers. 


Why is v1.5 in the name?


V1 = The release of the ADO.NET Data Services runtime and client libraries included in the .NET Framework 3.5 SP1 and Silverlight 2


V1.5 (this release) = A standalone web release which includes a superset of the functionality shipped in V1.


How does this release relate to ADO.NET Data Services as shipped in the .NET Framework 3.5 SP1? 


This release (v1.5 CTP1) is a standalone release and represents our in progress work towards the next version of the ADO.NET Data Service technology we shipped in the .NET Framework 3.5 SP1.  Since this is a standalone release, it will NOT be an in-place update of the v1 assemblies (System.Data.Services.*.dll) in the .NET Framework 3.5 SP1.  Instead, this release will coexist with v1, allowing you the choice of building applications against either release.  Like v1, this release also targets the .NET Framework 3.5 SP1 so we can quickly iterate on a feature set which makes it easier to use data services in cloud services (e.g. Windows Azure Table Storage, etc) and to address the needs of web-focused applications which iterate on a relatively short cycle. 


How does this release relate to Silverlight 2?


This release (v1.5 CTP1) will include an updated client library for consuming data services from Silverlight 2.  The additional features included are described in the feature list below.  


How does this release relate to the next release of the .NET Framework (ie. .NET Framework 4.0)?


As noted above, ADO.NET Data Services v1.5 will initially target the .NET Framework 3.5 SP1 and Silverlight 2 platforms and will likely be released prior to the .NET Framework 4.0 platform.  A future version of this standalone release (v1.5) will be created to support the .NET Framework 4.0 platform. 


When will v1.5 CTP1 ship?


We aren’t yet ready to announce a release date, but we are in the close down phase of the feature set for CTP1, so we are hoping to have more to say here in the not too distant future :).


What’s coming in CTP1?


ADO.NET Data Services v1.5 CTP1 will include the following enhancements and features:


Data Binding: The data services client library for the .NET Framework 3.5 SP1 and Silverlight2 has been extended to support two-way data binding for WPF and Silverlight based applications.  


Row Count: One scenario we heard a ton of feedback on after shipping V1 of ADO.NET Data Services in the .NET Framework 3.5SP1 is the ability for the a client of a data service to determine the total number of entities in a set without having to retrieve them all.  To address this need, we have extended the data services addressing scheme to allow a client to obtain this type of information without having to download all the entities in a set.


Feed Customization (aka “Web Friendly Feeds”): A common ask we have received is to provide the ability to customize how entities are mapped into the various elements of an AtomPub feed.  This feature does just that by providing a data service author declarative control over how the data service runtime maps the properties of an entity (e.g. a Customer, Order, etc) to the elements of a feed.


Server Driven Paging: This one is best described by example.  If you had a data service that exposes photos, you likely want to limit the total number of photos a single request to the service can retrieve because the total collection of photos may be very large.  This feature allows a service author to set per collection limits on the total number of entities returned for each request.  In addition to limiting the number of photos returned per request, the server provides the client a “next link” which is simply a URI specifying how to continue retrieving the rest of the entities in the collection not returned by the first request.  For those familiar with AtomPub, this feature adds support for AtomPub <next ..> elements to the data service runtime.   For CTP1 we’ll include server side support for this feature only.  Client library support will likely come in a future CTP.


Enhanced BLOB Support: This feature enhances the BLOB support provided in V1 to enable data services to stream arbitrarily large BLOBs, store binary content separate from its metadata, easily defer the loading of BLOB content when its metadata is requested, etc.  For CTP1 we’ll include server side support for this feature only.  Client library support will likely come in a future CTP.


New “Data Service Provider” Interface for Custom Provider Writers: As the data services runtime has evolved, so has the number of ways people want to plug data into the data service framework.  In V1, two methods (Entity Framework and arbitrary .NET classes) were supported to enable a data service to interact with various diverse data sources.  To address another class of environments and data sources we have introduced a way to write a “custom” provider for those cases when the previous two provider models don’t meet your needs.   


Bug Fixes: This release builds on our existing (v1) code base and will incorporate all fixes we have made to this point.


We’ve already discussed some of the features above in our transparent design process notes on this blog (example: here and here).  This CTP release represents our take at addressing these areas, so when the release becomes available, please give these features a spin and let us know what you think.


As we get closer to having the CTP1 bits ready to make available on the download center, we’ll post additional documentation, samples, etc. as “getting started” material for the features.


-Mike Flasko


ADO.NET Data Services Program Manager

Comments (50)

  1. Congratulations; this is big news and very exciting. Great post.

  2. URL : http://blogs.msdn.com/astoriateam/archive/2009/… Mike Flasko announced today the availablility

  3. Mike Flasko, Program Manager ADO.NET Data Services рассказал о предстоящем выпус

  4. Alberto Acosta says:

    HI Mike

    Is this functionality the one presented on PDC as Alexandria Project ?

  5. JasonBSteele says:

    Does the "two-way" data binding for Silverlight mean that we will no longer have to explicitly call AddObject, UpdateObject, DeleteObject when a proxy object is modified?

    …Please say yes 🙂

  6. JohnPapa.net says:

    Mike Flasko announced over the weekend on The Project Astoria Team Blog that the timeframe for the ADO.NET Data Services v1.5 CTP1 to be released “should be in the coming months”. So what are they adding Details were not too specific as you might have

  7. Thank you for submitting this cool story – Trackback from DotNetShoutout

  8. Mike Flasko announced over the weekend on The Project Astoria Team Blog that the timeframe for the ADO

  9. pstatho says:

    Though not explicitly mentioned, does this release have anything to do with the incubation project for accessing SDS:

    http://www.microsoft.com/azure/SDSAstoria.mspx

    I would really like to see full support for SDS.

  10. mentas says:

    What about offline/sync support?

  11. Ontem foi anunciado que o CTP1 do ADO.NET Data Services v1.5 (antes conhecido como Astoria) está a caminho!

  12. Man vs Code says:

    Yesterday we announced that we will be releasing an update to ADO.NET Data Services that we are calling

  13. Mike Flasko says:

    >>>What about offline/sync support?

    we should have an update on where we are with Sync/Offline support posted in the near future.  This release (ADO.NET Data Services v.15) represents v.next of the production version of data services while "Astoria Offline" is still more in the exploration stage.  Given this, we wanted to keep our communication of the two releases mostly seperated…

    -Mike

  14. Seit letztem Jahr arbeiten wir an einem Projekt, welches die ADO.NET Data Services (aka Astoria) einsetzt, um auf die Daten einer Microsoft SQL 2008 Datenbank zuzugreifen. Der Einsatz der Technologie hat gezeigt, das die Theorie zu REST + SQL Server DB

  15. Great news, Mike.

    Any chance to get support for aggregate functions? e.g. I want to get total sales ( Sum(SalesOrder.Amount) ) for a particular customer.

  16. ross says:

    will support for DateTimeOffset be included in V1.5?

  17. ADO.Net Data Services Offline (“Astoria” Offline) – Alpha Preview While only a week ago, the Astoria

  18. Mike Flasko says:

    >> Any chance to get support for aggregate >>functions? e.g. I want to get total sales ( Sum

    >>(SalesOrder.Amount) ) for a particular customer

    [mike flasko] this currently isnt in our initial plan for 1.5, but is something that gets asked for a fair amount, so we’ll keep this on our radar.  For now you can use a service operation to expose a custom function.  

    >>Does the "two-way" data binding for Silverlight >>mean that we will no longer have to explicitly call >>AddObject, UpdateObject, DeleteObject when a >>proxy object is modified?

    [mike flasko] yes, that is the goal.  It allows you to work with ObservableCollections and then we map actions on the collection to actions on a DataServiceContext.  Our mapping of collection actions to context call is configurable if you dont like our default choices 🙂

    >> will 1.5 support datetimeoffset

    [mike flasko] we are considering it, but at this point it is currently not in scope for the release.  I’d be interested in hearing  more about your scenarios (please do send us a note via this blog)

  19. In October of last year we started to talk publicly about an exploration project we called &#8220;Astoria

  20. Steve says:

    Can you give an example of the two-way data binding.

    Helps to know more about these features

  21. We announced two releases this week, kind of usual but it worked out this way. The first one is the first

  22. Comme annonc&#233; mais non montr&#233; aux Techdays 2009 car la version n’&#233;tait malheureusement

  23. Como de esto me va a tocar probar alguna cosa, os cuento que ya tenemos disponible la primera versión

  24. unbornchikken says:

    Will EF Navigation Properties on Derived types (not present on the base type) be supported in ADO.NET Data Services V1.5?

  25. Last Week Mike Flasko from the ADO.NET Data Services (Astoria) Team blogged about what’s coming in V1.5

  26. lynn says:

    Now that you are offering a 1.5 out-of-band release, should we expect additional improvements (2.0?) in the 10.4 time or is that kind of discussion to early?

  27. Es Sábado en la noche y estoy aún en Seattle organizando mis cosas y haciendo investigación sobre toda

  28. Mike Flasko says:

    >>>Will EF Navigation Properties on Derived types >>>(not present on the base type) be supported in >>>ADO.NET Data Services V1.5?

    [mike flasko] I’m not sure yet if this support will make it into the release.  I’d be very interested to hear from anyone that would like to see this added.  

    >>>Now that you are offering a 1.5 out-of-band >>>release, should we expect additional >>>improvements (2.0?) in the 10.4 time or is that >>>kind of discussion to early?

    [mike flasko] we’re still working out those plans.  So, yes, its a bit early for those discussions

  29. leriksen71 says:

    Mike, I would love to see navigation properties supported on derived types in 1.5. I could really leverage this in an upcoming service that will  use the 1.5 release.

    Would really like joins and projections in the 2.0 release, when ever that is.

  30. The ADO.NET Data Services team has announced that ADO.NET Data Services 1.5 is will be made available

  31. unbornchikken says:

    >Will EF Navigation Properties on Derived types

    >(not present on the base type) be supported in >ADO.NET Data Services V1.5?

    >[mike flasko] I’m not sure yet if this support will >make it into the release.  I’d be very interested to >hear from anyone that would like to see this added.

    We’re using EF schemas with entity inheritance in our projects. Without support ADO.NET DS is totally useless for us. 🙁

  32. Very nice. This will further reduce any non-value added ‘baggage’ a developer must do to just make data services work (in general – cross technology) as that is how we are measured by the domain stakeholders.

  33. Two weeks ago we announced the ADO.NET Data Services v1.5 release.&#160; Today we’re very happy to say

  34. You’ve been kicked (a good thing) – Trackback from DotNetKicks.com

  35. Денис Холод уже написал , что на MIX был представлен ряд обновлений для Azure . Что еще было представлено

  36. Сейчас в Лас-Вегасе проходит ежегодная конференция MIX&#39;09 . На ней представлены новые релизы продуктов

  37. Steve says:

    Any samples showing these new features ?

    (I’m interested in the parts that effect Silverlight)

    Also – does this all work with Silverlight 3, or just 2 ?

    Thanks

  38. restdev says:

    How can we handle PUT and DELETE ?

  39. Frank says:

    I have three seperate tables loaded into my silverlight 2.0 c# program, using ADO.

    Table A is loaded first.

    Table B is loaded Second.

    Table C is loaded Third.

    I am using the exact logic for updating, inserting and deleteing that is found in the Silverlight 2 ADO Documentation.

    If I update Table C, everything works.

    If I update table A or B I get the tracking error.

    If I switch the order, loading table B last, which makes it the most current table,  the updating works just fine.

    Then, if I try to update table C, I get the tracking error.

    How do I establish the tracking, in the code, so I can update any or all three of the tables?

    Thank You

  40. leriksen71 says:

    Mike – any word on if you guys will be able to aim for navigation properties supported on derived types in 1.5? Having this sooner rather than later could be a big plus toward projecting complex EF models across the web.

  41. smwikipedia says:

    ApparentlySQLDataServices(SDS)wasn

  42. Jason says:

    Are there any plans for the generated .net client to have better support for service operations?

  43. dwhite says:

    In SQL 2008 we are using the DateTimeOffset type.  Initially I built out our EF model using DateTimeOffset only to find out that it doesn’t work correctly.  How should this be represented since Data Services doesn’t support it?  Do I need to change the EF model to a standard DateTime, and if so will the conversion work correctly when writing to SQL?

    Thanks for your help.

    -Damien

  44. Scott says:

    Same with the TIME data type – any chance of it being supported in 1.5?

  45. Mike Flasko says:

    we likely will not get new data type support in for 1.5. We will track it for future though.

  46. premagination says:

    Apparently derived navigation properties didn’t make it into the 1.5 release? Any timeline on this? Not having it causes big issues for us.

  47. premagination says:

    Correction: They didn’t make it into the CTP1 release. Any hints about the next release?