ADO.NET Data Services - PowerPoint PPT Presentation

1 / 28
About This Presentation
Title:

ADO.NET Data Services

Description:

POST to create a new resource. PUT to update an existing resource. DELETE to delete a resource ... Provide a type with public properties which are IQueryable T ... – PowerPoint PPT presentation

Number of Views:49
Avg rating:3.0/5.0
Slides: 29
Provided by: paulienv
Category:
Tags: ado | net | data | services

less

Transcript and Presenter's Notes

Title: ADO.NET Data Services


1
(No Transcript)
2
ADO.NET Data Services
  • Mike Taulty
  • Developer Platform Group
  • Microsoft UK
  • Mike.Taulty_at_microsoft.com
  • http//www.miketaulty.com

3
Agenda
  • Overview of ADO.NET Data Services
  • Exposing Data Sources
  • Custom data sources, LINQ to SQL, LINQ to
    Entities
  • Building Clients
  • .NET Clients, AJAX based clients
  • More advanced topics
  • Interception
  • Service Operations
  • Batching of operations
  • Dealing with concurrency

4
Data Services Overview
  • Builds on top of WCF V3.5
  • Provides new functionality
  • CRUD access to data over RESTful web services
  • Built-in URI-based query syntax
  • Client-side libraries for .NET, AJAX and
    Silverlight
  • Status
  • In VS 2008 Service Pack 1, Ships Summer 2008
  • Current version is in Sp1 Beta 1 but has been
    through various previews

5
RESTful Web Services?
HTTP Request
URL
VERB
Payload
6
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?

7
Data? What Kind of Data?
  • Provide a type with public properties which are
    IQueryableltTgt
  • 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)

8
DEMO
  • Exposing Data with ADO.NET Data Services

9
ADO.NET Entity Framework????
10
DEMO
  • Exposing EF Data with ADO.NET Data Services

11
Querying with ADO.NET Data Services
  • URI based query mechanism
  • http//myservice.svc/MyEntitySet
  • Supports the notion of navigating by primary key
  • MyEntitySet ( MyPrimaryKeyCol1, Col2, ... )
  • Supports various operators
  • orderby, top, skip, expand, filter, value

12
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
13
DEMO
  • Querying Data with the URI

14
Building Clients
  • Services offer metadata
  • MyService.svc/metadata
  • .NET clients made easier through a proxy
    generation tool
  • datasvcutil.exe
  • AJAX clients made easier through a script library
  • Data Service AJAX Client Library
  • Available as a download on Codeplex

15
DEMO
  • Building .NET and AJAX clients

16
Interception Operations
  • Possible to hook code into the dispatch mechanism
  • 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

17
DEMO
  • Interception and Service Operations

18
Batching of Operations
INSERT
Customer 1
Order 1
Order 2
Order N
19
Batching of Operations
INSERT
Customer 1
Order 1
Order 2
Order N
20
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()

21
DEMO
  • Batching of Operations

22
Managing Concurrency
Customer ALFKI Country Spain
Customer ALFKI Country Spain
23
Managing Concurrency
Customer ALFKI Country Germany
Customer ALFKI Country UK
24
Managing Concurrency
  • Optimistic concurrency
  • Attribute used to specify properties
  • 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 )

25
DEMO
  • Managing Concurrency

26
Resources
  • New Data Developer Site
  • http//www.datadeveloper.net
  • Data Services (Astoria) Team Blog
  • http//blogs.msdn.com/astoriateam
  • My website ?
  • http//www.miketaulty.com ( search Data Services )

27
ado.net data services
  • Mike Taulty
  • Developer Platform Group
  • Microsoft UK
  • Mike.Taulty_at_microsoft.com
  • http//www.miketaulty.com

28
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com