Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 ADO.NET Data Services Mike Taulty Developer & Platform Group Microsoft Ltd

Similar presentations


Presentation on theme: "1 ADO.NET Data Services Mike Taulty Developer & Platform Group Microsoft Ltd"— Presentation transcript:

1 1 ADO.NET Data Services Mike Taulty Developer & Platform Group Microsoft Ltd Mike.Taulty@microsoft.com http://www.mtaulty.com

2 Agenda OverviewExposing data sourcesBuilding clientsServer-side interception

3 Data Services – Overview Provides new functionality CRUD access to data over RESTful web services Built-in URI-based query syntax Client-side libraries for.NET, Silverlight and AJAX Builds on top of Windows Communication Foundation V3.5 Status In VS 2008 Service Pack 1,.NET Framework 3.5 Sp1 Shipped in 2008

4 RESTful Web Services? Resources Res 1 Res 2 Res 3 Res 4 HTTP Request URL VERB Payload HTTP Response Status GET POST PUT DELETE XMLJSON Payload XMLJSON

5 RESTful? REpresentational State Transfer Server-side resources identified by a URI Access is over HTTP, verb tied to action GET to read the value of a resource POST to create a new resource PUT to update an existing resource DELETE to delete a resource Returned data is “plain” – XML or JSON Is this “the death of SOAP”?

6 Data? What Kind of Data? Provide a type with public properties which are IQueryable Some rules about how T has to be formed Remember the extension method AsQueryable() Only get write access if your type implements IUpdatable Works well with generated code from; ADO.NET Entity Framework (ObjectContext) LINQ to SQL (DataContext*)

7 7 Exposing Data

8 ADO.NET Entity Framework ? SQL Provider Oracle Provider... Entity Provider Conceptual Model Store Model Map ADO.NET API ORM API

9 9 Using Entity Framework Data

10 Querying with Data Services URI based query mechanism http://myservice.svc/MyEntitySet Supports the notion of navigating by primary key MyEntitySet ( Col1=Value1, Col2=Value2,... ) Supports various operators $orderby, $top, $skip, $expand, $filter, $value

11 Operators for $filter

12 12 Querying with the URI

13 Building Clients Services offer metadata MyService.svc/$metadata.NET clients made easier through a proxy generation tool Visual Studio or datasvcutil.exe Useful for both regular.NET clients & Silverlight AJAX clients made easier through a script library “ASP.NET AJAX 4.0 Preview 4” Available as a download on CodeplexCodeplex

14 14 Building Clients

15 Interception & Operations Possible to hook code into the framework For queries we can write Query interceptors For modifications we can write Change interceptors Can also expose custom functionality Service Operations Useful for providing “canned” functionality, can be parameterised

16 16 Interception, Operations

17 Batching of Operations “INSERT” Customer 1 POST Order 1 POST Order 2 POST Order N POST

18 Batching of Operations “INSERT” Customer 1 Order 1 Order 2 Order N POST

19 Batching of Operations Provides a mechanism to process a batch 0 or more Query operations 0 or more [Create/Update/Delete] operations Uses multipart/mixed MIME type sent to a $batch endpoint Use SaveChanges(SaveChangesOptions.Batch) ExecuteBatch()

20 20 Batching

21 Managing Concurrency GET Customer: ALFKI Country: Spain Customer: ALFKI Country: Spain Customer: ALFKI Country: Spain Customer: ALFKI Country: Spain

22 Managing Concurrency PUT Customer: ALFKI Country: UK Customer: ALFKI Country: UK PUT Customer: ALFKI Country: Germany Customer: ALFKI Country: Germany

23 Managing Concurrency Optimistic concurrency Attribute (ETag) used to specify properties to be checked for concurrency violations Not necessary for Entity Framework data Standard HTTP protocol used eTags used to send to client ( in XML if necessary ) HTTP If-match headers used to check when PUT/DELETE occurs ( 412 returned for failure )

24 24 Concurrency

25 “Coming Soon” ADO.NET Data Services V1.5 Sits on top of.NET Framework V3.5 Sp1 Feature and bug release Data binding, row counts, paging, BLOB support, interface for provider writers Download ADO.NET Data Services Offline, Alpha Preview Local SQL Compact DB Accessed via the same RESTful services Kept in sync via the Sync Framework Download

26 Resources Other topics to consider Batching of queries, updates Optimistic concurrency model etc Data Services (“Astoria”) Team Blog http://blogs.msdn.com/astoriateam My website http://www.mtaulty.comhttp://www.mtaulty.com ( search Data Services )

27 © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.


Download ppt "1 ADO.NET Data Services Mike Taulty Developer & Platform Group Microsoft Ltd"

Similar presentations


Ads by Google