ADO.NET Data Services Mike Taulty Developer & Platform Group Microsoft Ltd [email protected] http://www.mtaulty.com Agenda Overview Exposing data sources Building clients Server-side interception.

Download Report

Transcript ADO.NET Data Services Mike Taulty Developer & Platform Group Microsoft Ltd [email protected] http://www.mtaulty.com Agenda Overview Exposing data sources Building clients Server-side interception.

ADO.NET Data Services
Mike Taulty
Developer & Platform Group
Microsoft Ltd
[email protected]
http://www.mtaulty.com
1
Agenda
Overview
Exposing data sources
Building clients
Server-side interception
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
RESTful Web Services?
Resources
HTTP Request
URL
VERB
Payload
XML
Res 1
Res 2
GET
POST
PUT
JSON
DELETE
Res 3
Res 4
HTTP Response
Status
Payload
XML
JSON
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”?
Data? What Kind of Data?
Provide a type with public properties which are
IQueryable<T>
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*)
Exposing Data
7
ADO.NET Entity Framework ?
ADO.NET API
ORM API
Entity Provider
Conceptual Model
Map
Store Model
SQL Provider
Oracle Provider
...
Using Entity Framework Data
9
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
Operators for $filter
Logic
eq
ne
gt
gteq
lt
lteq
and
or
not
Arithmetic
add
sub
mul
div
mod
round
floor
ceiling
String
contains
endswith
startswith
length
indexof
insert
remove x 2
replace
substring
tolower
toupper
trim
concat
Date/Time
second
hour
minute
day
month
year
Type
isof
cast
Querying with the URI
12
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 Codeplex
Building Clients
14
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
Interception, Operations
16
“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
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.com ( search Data Services )
© 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.