ADO.NET Data Services Framework Beta 1 is Live!

ADO.NET Data Services Framework Beta 1 is Live!

Rate This
  • Comments 39

We are very excited to announce that .NET 3.5 SP1 Beta 1 and Visual Studio 2008  SP1 Beta 1 are now available! 

This beta marks the entry of the ADO.NET Data Services Framework as well as the ADO.NET Entity Framework as part of the overall .NET/Visual Studio product and will be the final beta before the RTM of both technologies.

The remainder of this post will cover the changes and additions to the ADO.NET Data Services Framework since the last CTP in Dec 07.  The

Since our last CTP in Dec 2007 along with the ASP.NET 3.5 Extensions Preview, there have been a number of changes and added features.  I'll try to summarize the changes and features below.  We'll follow up as we go with some more details on the changes and what to expect post Beta 1. 

Changes:

  • Assembly and namespace changes.  Now that we are part of the .NET Framework we have changed our assembly, namespace and API names to reflect the standard .NET naming conventions.  The main assembly and namespace changes are:
    • All Microsoft.Data.*.dll assemblies have been renamed to System.Data.Services.dll (server) and System.Data.Services.Client.dll (client)
    • Anything in Microsoft.Web.* namespaces have moved to System.Data.Services (server types) & System.Data.Services.Client(client types)
    • The assemblies are now installed to the standard location for .NET 3.5 assemblies
  • API Name Changes. The main API name changes are:
    • In general anything which was named WebData* has changed to DataService*
    • In general anything with was named ResourceSet* or Resource* was changed to EntitySet* and Entity*
    • WebDataService class changed to DataService
    • IWebDataServiceConfiguration changed to IDataServiceConfiguration
    • WebDataServiceContext class changed to DataServiceContext
    • WebDataQuery class changed to DataServiceQuery
    • ResourceActions enum changed to UpdateOperations 
  • Query Interceptor Changes.  We changed the syntax of query interceptors to take 0 arguments and return a predicate (return type = Expression<Func<[EntityType],bool>>.  An example interceptor that limits queries to all categories starting with the letter "B" now looks like:
   1:  [QueryInterceptor("ProductCategory")]
   2:  public Expression<Func<ProductCategory, bool>> 
                                    OnQueryProductCategory()
   3:  {
   4:      return (pc) => pc.Name.StartsWith("B");
   5:  }
  • Update Interceptor Changes.  The ResourceActions enum changed name to UpdateOperations
  • AJAX/Javascript Library. The Javascript library for data services which was part of the ASP.NET 3.5 Extensions preview is not part of this beta release.  Instead, we will iterate in short intervals on this library, making intermediate drops available on http://codeplex.  The first drop which works with this Beta 1 release is available here
  • Command line tool changes.  The command line tool to generate client side types for a data service (webdatagen.exe) has had a its name changed to datasvcutil.exe and its parameter list simplified.  You can now find this tool in the \Windows\Microsoft.Net\Framework\V3.5 directory
  • A bunch of bug fixes :)
  • Tweaks to the ATOM payload format.  We've made a few tweaks to the payload format based on feedback from the ATOM community.  We've got a bit more to do here so please expect a bit of churn to the payload formats post Beta 1.

Features: 

  • Batching: data services now support the ability to group a set of requests into a "batch" to be sent to the server in a single HTTP request.  The system supports the idea of an atomic group of operations as well as a loose group of operations without such guarantees.  This release doesn't quite have what we're thinking in terms of a final design for this feature, but is quite representative of our thinking. An early write up of the feature is here
  • Optimistic Concurrency: Data services now support the notion of optimistic concurrency by passing concurrency token values using HTTP ETags and making conditionals requests using HTTP If-* requests.  Some notes on how this works are here.  We'll also likely extend support post this Beta release to include use of the '*' character in conditional requests.
  • New IUpdatable interface.  As was the case in the last CTP, you can create a data service over relational databases using integration with the Entity Framework or you can expose any data source as a REST service that has an IQueryable provider.  In the last CTP we had defined an IUpdatable interface which could be implemented to make such data sources r/w at the service tier.  We have significantly changed this interface to make it easier to use.  I've put this "change" in the list of features as we redesigned the API based on our teams reviews and user feedback.  A write up of the new interface is here.

We look forward to your feedback... 

-Mike Flasko

Program Manager, ADO.NET Data Service Framework

Leave a Comment
  • Please add 6 and 5 and type the answer here:
  • Post
  • So I guess there still aren't any options for getting total record count when doing paging, eh?  Doesnt seem like that functionality is going to make it into 1.0 at all.  I just really cant understand how something that seems like such a core requirement to me isnt going to be addressed for the 1.0 release.  Maybe I'm the only one that thinks its required and everyone else is OK with doing next / prev paging solutions.  Ah well.

  • Eric: you can be sure we had long serious conversations about this...however, our focus is on ship soon, ship often. There will be always more features that we'd like to add. We prefered to deliver this version of Astoria as part of SP1, and then in the next iteration we'll include a number of the things that didn't make this time around. For this case we thought that next/prev was "good enough"...I understand that it's not perfect for everybody.

    -pablo

  • The news are out. The ADO.NET Data Services Framework (Astoria) and the ADO.NET Entity Framework will

  • Quick question - is there any reason why Astoria won't work with AdventureWorks 2008 sample database?  I can get it to recognize some tables (Person.EmailAddress, Production.Product), but not others (Person.Person, etc.)  I haven't found a pattern yet - am I missing something?  Thanks.

  • Mike: do you see any messages in the VS errors/warnings/messages window when you point the Entity Data Model wizard to the database and click finish?

    -pablo

  • I can't locate the Entity Data Model wizard in VS 2008.  I tried adding a LINQ to SQL classes object and it picks up varying tables.  How do I access the wizard?  Thanks for the help

  • Ahh... Don't you love the smell of fresh software in the morning? Yes, this is why I've gone silent for

  • Mike: assuming you installed SP1 beta 1, the EDM wizard pops-up when you do File -> Add New Item and choose the "ADO.NET Entity Data Model" item template. The wizard will guide you through the rest of the process.

    As for the LINQ to SQL case, one thing that might be happening is that not all the tables may result in CLR types that follow the Astoria default convention for key properties, so you may need to use the DataServiceKey attribute to indicate which properties should be treated as keys on each table (at least each table that didn't show up). DataServiceKey is a class-level attributes to enable these scenarios, you can use a partial class to put the attribute and pass the name(s) of the key property.

    -pablo

  • Thanks Pablo, there's currently no "ADO.NET Entity Data Model" item template showing up.  I do have .NET 3.5 SP 1 beta 1 and VS 2008 SP 1 beta 1. I'm uninstalling and reinstalling both now. I'll have a look at the data types for the tables it's not pulling via LINQ to SQL Classes, but the tables I'm pulling don't appear to have any of the new 2008 data types in them.  I'll have a closer look and get back to you. BTW, the LINQ to SQL Classes method appears to work great against SQL 2005.  Thanks again for the help.

  • Microsoft .NET framework 3.5 Service Pack 1 and Visual Studio 2008 Service Pack 1 now have public BETAs

  • Hi Pabloc, it looks like uninstalling and reinstalling the SP betas did the trick.  Now I have the "ADO.NET Entity Data Model" template in the File > New > File ... menu option.  Thanks for the help!

  • こんにちは、こだかです。 以前から、お話していました、Visual Studio 2008 &amp; ,NET Framewoork3.5 SP1 Beta1がリリースされました。 ( http://msdn.microsoft.com/ja-jp/vstudio/cc533448(en-us).aspx

  • Hi!

    Thanx for the new stuff! Is entity polymorphism scenario supported in this release? I've noticed that the .OfType<T>() query operator isn't. I hope this will be a v1 feature because my entity models heavily relies on inheritance.

  • Visual Studio 2008 &amp; .NET Framework3.5 SP1 Beta1がリリースされました ということで、SP1のベータ版がリリースされてます。 これにはいろいろな機能拡張が含まれてますね。...

  • Re: polymorphism, yes, Data Services can include schemas that use inheritance. OfType<T> should work if used within the limitations of queries translatable to URLs. What is your scenario? What error do you get?

    -pablo

Page 1 of 3 (39 items) 123