+ All Categories
Home > Technology > Mike Taulty OData (NxtGen User Group UK)

Mike Taulty OData (NxtGen User Group UK)

Date post: 27-Jan-2015
Category:
Upload: ukdpe
View: 111 times
Download: 0 times
Share this document with a friend
Description:
Slides from a talk I did on OData at the NxtGen User Group in the UK.
Popular Tags:
26
Mike Taulty Microsoft UK [email protected] mtaulty.com @mtaulty The Open Data Protocol (OData)
Transcript
Page 1: Mike Taulty OData (NxtGen User Group UK)

Mike TaultyMicrosoft UKmtaultymicrosoftcommtaultycommtaulty

The Open Data Protocol(OData)

RESTful services

client WLTM service for RESTful interactions

client service

31

resources

2

client WLTM service for RESTful interactions

client service

HTTP Server StackHTTP Client Stack

XML Server StackXML Client Stack

Application Code Application Code

URI = httpserviceid=2

BODY = ltcustomergt

VERB = POST

Customer ID = 2

URI = httpserviceid=2

BODY = ltcustomergt

VERB = POST

Customer ID = 2

2

STATUS = OKSTATUS = OK

key points involved here

1 HTTP as the transport2 URI indicates

resource3 VERB indicates action4 STATUS CODE indicates

outcome5 XML as the

payload(s)

Whatrsquos so great about that

1) Simplicity2) Low barrier to entry3) Standardised

technologies already proven on the internet

ready to build

serviceclient

IISWebClient

WCF(REST)

WCF(REST)

ASPNET(MVC)

LINQ to XML

before you get to technologies

1) URI scheme for addressing resources

2) Can client compose additional queries

3) XML payload format JSON as well

4) Sharing payload format with clients

5) Includinglinking to related data

6) Concurrency control7) Paging8) Server round-trips

someone must have done this already

OData is a specification

OData

to provide an open specification for exposing an abstract data model by adding

URI addressing schemepayload using AtomPub Atom and JSONmetadata using the Entity Data Modelbatching mechanism for requests

HTTP XML JSON

builds on the RESTful fundamentals

itrsquos the usual ldquobuild or buyrdquo trade-off

standardbull productivitybull existing frameworkslibrariesbull tooling supportbull existing skillsets

custom bull full controlbull does what you want and

no more

OData Basics

service

feed

feed

feed

operation

operation

property

property

property

typed Entry

typed Entry

typed Entry

link

link

media link BLOB

service must publish a service documentin AtomPub or JSON listing top level feeds

all links are URIrsquos

entries need to have aprimary key

demoquick exploration of an OData service

OData URIs and Querying

httpodatanetflixcomCatalog Genres(lsquoAction Classicsrsquo)Titles $orderby=ReleaseYear

resource path query options

Collection Genres

Entry Genres(lsquoAction Classicsrsquo)

Entry Property Genres(lsquoAction Classicsrsquo)Name

Entry Property (text) Genres(lsquoAction Classicsrsquo)Name$value

Cardinality Genres$count

Navigation Genres(lsquoAction Classicsrsquo)Titles

Navigation Links Genres(lsquoAction Classicsrsquo)$linksTitles

Service Operation ServiceOpparam1=lsquoval1rsquo

$orderby (asc desc )

$top

$skip

$filter

$expand

$format ()

$select

$inlinecount

$ - some custom option

filters

Logiceqnegtgteqltlteqandornot

Arithmeticaddsubmuldivmodroundfloorceiling

Stringcontainsendswithstartswithlengthindexofinsertremove x 2replacesubstringtolowertouppertrimconcat

DateTimesecondhourminutedaymonthyear

Typeisofcast

demoquerying OData services

service metadata

an odata service can offer metadata describing the service

greatly facilitates building clients

service description is represented using the Entity Data Model (EDM)

fully docmented in the specification

Visual Studio (eg) supports this metadata format via ldquoAdd Service Referencerdquo

demoaccessing service metadata( including httpbitlyodataVisualizer )

operations

specification also deals with

client service

GET

including MIME types for ATOMJSONincluding partial lists

including protocol versioning

client service

POST

including creating links

client service

PUT

maintaining linksMERGE also applicable here

concurrency checking via ETagstunnelling over POST

client service

DELETE

maintaining linksconcurrency checking via ETags

tunnelling over POST

client service

INVOKE

batching

optimise round trips to the serverbe more ldquotransactionalrdquo

client service

GET Titles

GET People

POST People(lsquoTom Cruisersquo)

$BatchPOST

(multipart MIME)

RESPONSE(multipart MIME)

specification -gt implementation

OData on the serverCustom via WCF Data ServicesSharePoint 2010SQL AzureAzure Table StorageSQL Reporting ServicesIBM WebSphere

Host (IIS or self-hosted)

WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )

configbull AcceptCountRequestsbull AcceptProjectionRequestsbull MaxProtocolVersionbull MaxBatchCountbull MaxChangesetCountbull MaxExpandDepthbull MaxObjectCountOnInsertbull MaxResultsPerCollectionbull EntitySetAccessRulebull EntitySetPageSizebull ServiceOperationAccessRule

WCF DataService

Serv

ice

Ope

ratio

ns

Inte

rcep

tors

Que

ryU

pdat

e

Custom Data( dynamically defined )

CustomProvider

Entity FrameworkModel

Entity Framework

Provider

LINQ to SQLModel

Custom ObjectModelReflection

Provider + IUpdatable

Entit

y Se

ts

IDataServiceMetadataProvider

IDataServiceQueryProvider

IDataServiceUpdateProvider

IDataServiceStreamProvider

IDataServicePagingProvider

demobuilding an OData service

OData on the clientNET ndash desktop server Silverlight Windows Phone 7JavascriptiPhone (Objective C)JavaPHPRuby

demobuilding an OData client

more

wwwodataorg or to see the website in odataservicesodataorgwebsiteodatasvc

copy 2010 Microsoft Corporation All rights reserved Microsoft Windows Windows Vista and other product names are or may be registered trademarks andor trademarks in the US andor other countriesThe 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

  • The Open Data Protocol (OData)
  • Slide 2
  • client WLTM service for RESTful interactions
  • client WLTM service for RESTful interactions (2)
  • key points involved here
  • ready to build
  • Slide 7
  • OData
  • itrsquos the usual ldquobuild or buyrdquo trade-off
  • OData Basics
  • quick exploration of an OData service
  • OData URIs and Querying
  • filters
  • querying OData services
  • service metadata
  • accessing service metadata ( including httpbitlyodataVisua
  • operations
  • batching
  • Slide 19
  • Slide 20
  • WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )
  • building an OData service
  • Slide 23
  • building an OData client
  • more
  • Slide 26
Page 2: Mike Taulty OData (NxtGen User Group UK)

RESTful services

client WLTM service for RESTful interactions

client service

31

resources

2

client WLTM service for RESTful interactions

client service

HTTP Server StackHTTP Client Stack

XML Server StackXML Client Stack

Application Code Application Code

URI = httpserviceid=2

BODY = ltcustomergt

VERB = POST

Customer ID = 2

URI = httpserviceid=2

BODY = ltcustomergt

VERB = POST

Customer ID = 2

2

STATUS = OKSTATUS = OK

key points involved here

1 HTTP as the transport2 URI indicates

resource3 VERB indicates action4 STATUS CODE indicates

outcome5 XML as the

payload(s)

Whatrsquos so great about that

1) Simplicity2) Low barrier to entry3) Standardised

technologies already proven on the internet

ready to build

serviceclient

IISWebClient

WCF(REST)

WCF(REST)

ASPNET(MVC)

LINQ to XML

before you get to technologies

1) URI scheme for addressing resources

2) Can client compose additional queries

3) XML payload format JSON as well

4) Sharing payload format with clients

5) Includinglinking to related data

6) Concurrency control7) Paging8) Server round-trips

someone must have done this already

OData is a specification

OData

to provide an open specification for exposing an abstract data model by adding

URI addressing schemepayload using AtomPub Atom and JSONmetadata using the Entity Data Modelbatching mechanism for requests

HTTP XML JSON

builds on the RESTful fundamentals

itrsquos the usual ldquobuild or buyrdquo trade-off

standardbull productivitybull existing frameworkslibrariesbull tooling supportbull existing skillsets

custom bull full controlbull does what you want and

no more

OData Basics

service

feed

feed

feed

operation

operation

property

property

property

typed Entry

typed Entry

typed Entry

link

link

media link BLOB

service must publish a service documentin AtomPub or JSON listing top level feeds

all links are URIrsquos

entries need to have aprimary key

demoquick exploration of an OData service

OData URIs and Querying

httpodatanetflixcomCatalog Genres(lsquoAction Classicsrsquo)Titles $orderby=ReleaseYear

resource path query options

Collection Genres

Entry Genres(lsquoAction Classicsrsquo)

Entry Property Genres(lsquoAction Classicsrsquo)Name

Entry Property (text) Genres(lsquoAction Classicsrsquo)Name$value

Cardinality Genres$count

Navigation Genres(lsquoAction Classicsrsquo)Titles

Navigation Links Genres(lsquoAction Classicsrsquo)$linksTitles

Service Operation ServiceOpparam1=lsquoval1rsquo

$orderby (asc desc )

$top

$skip

$filter

$expand

$format ()

$select

$inlinecount

$ - some custom option

filters

Logiceqnegtgteqltlteqandornot

Arithmeticaddsubmuldivmodroundfloorceiling

Stringcontainsendswithstartswithlengthindexofinsertremove x 2replacesubstringtolowertouppertrimconcat

DateTimesecondhourminutedaymonthyear

Typeisofcast

demoquerying OData services

service metadata

an odata service can offer metadata describing the service

greatly facilitates building clients

service description is represented using the Entity Data Model (EDM)

fully docmented in the specification

Visual Studio (eg) supports this metadata format via ldquoAdd Service Referencerdquo

demoaccessing service metadata( including httpbitlyodataVisualizer )

operations

specification also deals with

client service

GET

including MIME types for ATOMJSONincluding partial lists

including protocol versioning

client service

POST

including creating links

client service

PUT

maintaining linksMERGE also applicable here

concurrency checking via ETagstunnelling over POST

client service

DELETE

maintaining linksconcurrency checking via ETags

tunnelling over POST

client service

INVOKE

batching

optimise round trips to the serverbe more ldquotransactionalrdquo

client service

GET Titles

GET People

POST People(lsquoTom Cruisersquo)

$BatchPOST

(multipart MIME)

RESPONSE(multipart MIME)

specification -gt implementation

OData on the serverCustom via WCF Data ServicesSharePoint 2010SQL AzureAzure Table StorageSQL Reporting ServicesIBM WebSphere

Host (IIS or self-hosted)

WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )

configbull AcceptCountRequestsbull AcceptProjectionRequestsbull MaxProtocolVersionbull MaxBatchCountbull MaxChangesetCountbull MaxExpandDepthbull MaxObjectCountOnInsertbull MaxResultsPerCollectionbull EntitySetAccessRulebull EntitySetPageSizebull ServiceOperationAccessRule

WCF DataService

Serv

ice

Ope

ratio

ns

Inte

rcep

tors

Que

ryU

pdat

e

Custom Data( dynamically defined )

CustomProvider

Entity FrameworkModel

Entity Framework

Provider

LINQ to SQLModel

Custom ObjectModelReflection

Provider + IUpdatable

Entit

y Se

ts

IDataServiceMetadataProvider

IDataServiceQueryProvider

IDataServiceUpdateProvider

IDataServiceStreamProvider

IDataServicePagingProvider

demobuilding an OData service

OData on the clientNET ndash desktop server Silverlight Windows Phone 7JavascriptiPhone (Objective C)JavaPHPRuby

demobuilding an OData client

more

wwwodataorg or to see the website in odataservicesodataorgwebsiteodatasvc

copy 2010 Microsoft Corporation All rights reserved Microsoft Windows Windows Vista and other product names are or may be registered trademarks andor trademarks in the US andor other countriesThe 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

  • The Open Data Protocol (OData)
  • Slide 2
  • client WLTM service for RESTful interactions
  • client WLTM service for RESTful interactions (2)
  • key points involved here
  • ready to build
  • Slide 7
  • OData
  • itrsquos the usual ldquobuild or buyrdquo trade-off
  • OData Basics
  • quick exploration of an OData service
  • OData URIs and Querying
  • filters
  • querying OData services
  • service metadata
  • accessing service metadata ( including httpbitlyodataVisua
  • operations
  • batching
  • Slide 19
  • Slide 20
  • WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )
  • building an OData service
  • Slide 23
  • building an OData client
  • more
  • Slide 26
Page 3: Mike Taulty OData (NxtGen User Group UK)

client WLTM service for RESTful interactions

client service

31

resources

2

client WLTM service for RESTful interactions

client service

HTTP Server StackHTTP Client Stack

XML Server StackXML Client Stack

Application Code Application Code

URI = httpserviceid=2

BODY = ltcustomergt

VERB = POST

Customer ID = 2

URI = httpserviceid=2

BODY = ltcustomergt

VERB = POST

Customer ID = 2

2

STATUS = OKSTATUS = OK

key points involved here

1 HTTP as the transport2 URI indicates

resource3 VERB indicates action4 STATUS CODE indicates

outcome5 XML as the

payload(s)

Whatrsquos so great about that

1) Simplicity2) Low barrier to entry3) Standardised

technologies already proven on the internet

ready to build

serviceclient

IISWebClient

WCF(REST)

WCF(REST)

ASPNET(MVC)

LINQ to XML

before you get to technologies

1) URI scheme for addressing resources

2) Can client compose additional queries

3) XML payload format JSON as well

4) Sharing payload format with clients

5) Includinglinking to related data

6) Concurrency control7) Paging8) Server round-trips

someone must have done this already

OData is a specification

OData

to provide an open specification for exposing an abstract data model by adding

URI addressing schemepayload using AtomPub Atom and JSONmetadata using the Entity Data Modelbatching mechanism for requests

HTTP XML JSON

builds on the RESTful fundamentals

itrsquos the usual ldquobuild or buyrdquo trade-off

standardbull productivitybull existing frameworkslibrariesbull tooling supportbull existing skillsets

custom bull full controlbull does what you want and

no more

OData Basics

service

feed

feed

feed

operation

operation

property

property

property

typed Entry

typed Entry

typed Entry

link

link

media link BLOB

service must publish a service documentin AtomPub or JSON listing top level feeds

all links are URIrsquos

entries need to have aprimary key

demoquick exploration of an OData service

OData URIs and Querying

httpodatanetflixcomCatalog Genres(lsquoAction Classicsrsquo)Titles $orderby=ReleaseYear

resource path query options

Collection Genres

Entry Genres(lsquoAction Classicsrsquo)

Entry Property Genres(lsquoAction Classicsrsquo)Name

Entry Property (text) Genres(lsquoAction Classicsrsquo)Name$value

Cardinality Genres$count

Navigation Genres(lsquoAction Classicsrsquo)Titles

Navigation Links Genres(lsquoAction Classicsrsquo)$linksTitles

Service Operation ServiceOpparam1=lsquoval1rsquo

$orderby (asc desc )

$top

$skip

$filter

$expand

$format ()

$select

$inlinecount

$ - some custom option

filters

Logiceqnegtgteqltlteqandornot

Arithmeticaddsubmuldivmodroundfloorceiling

Stringcontainsendswithstartswithlengthindexofinsertremove x 2replacesubstringtolowertouppertrimconcat

DateTimesecondhourminutedaymonthyear

Typeisofcast

demoquerying OData services

service metadata

an odata service can offer metadata describing the service

greatly facilitates building clients

service description is represented using the Entity Data Model (EDM)

fully docmented in the specification

Visual Studio (eg) supports this metadata format via ldquoAdd Service Referencerdquo

demoaccessing service metadata( including httpbitlyodataVisualizer )

operations

specification also deals with

client service

GET

including MIME types for ATOMJSONincluding partial lists

including protocol versioning

client service

POST

including creating links

client service

PUT

maintaining linksMERGE also applicable here

concurrency checking via ETagstunnelling over POST

client service

DELETE

maintaining linksconcurrency checking via ETags

tunnelling over POST

client service

INVOKE

batching

optimise round trips to the serverbe more ldquotransactionalrdquo

client service

GET Titles

GET People

POST People(lsquoTom Cruisersquo)

$BatchPOST

(multipart MIME)

RESPONSE(multipart MIME)

specification -gt implementation

OData on the serverCustom via WCF Data ServicesSharePoint 2010SQL AzureAzure Table StorageSQL Reporting ServicesIBM WebSphere

Host (IIS or self-hosted)

WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )

configbull AcceptCountRequestsbull AcceptProjectionRequestsbull MaxProtocolVersionbull MaxBatchCountbull MaxChangesetCountbull MaxExpandDepthbull MaxObjectCountOnInsertbull MaxResultsPerCollectionbull EntitySetAccessRulebull EntitySetPageSizebull ServiceOperationAccessRule

WCF DataService

Serv

ice

Ope

ratio

ns

Inte

rcep

tors

Que

ryU

pdat

e

Custom Data( dynamically defined )

CustomProvider

Entity FrameworkModel

Entity Framework

Provider

LINQ to SQLModel

Custom ObjectModelReflection

Provider + IUpdatable

Entit

y Se

ts

IDataServiceMetadataProvider

IDataServiceQueryProvider

IDataServiceUpdateProvider

IDataServiceStreamProvider

IDataServicePagingProvider

demobuilding an OData service

OData on the clientNET ndash desktop server Silverlight Windows Phone 7JavascriptiPhone (Objective C)JavaPHPRuby

demobuilding an OData client

more

wwwodataorg or to see the website in odataservicesodataorgwebsiteodatasvc

copy 2010 Microsoft Corporation All rights reserved Microsoft Windows Windows Vista and other product names are or may be registered trademarks andor trademarks in the US andor other countriesThe 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

  • The Open Data Protocol (OData)
  • Slide 2
  • client WLTM service for RESTful interactions
  • client WLTM service for RESTful interactions (2)
  • key points involved here
  • ready to build
  • Slide 7
  • OData
  • itrsquos the usual ldquobuild or buyrdquo trade-off
  • OData Basics
  • quick exploration of an OData service
  • OData URIs and Querying
  • filters
  • querying OData services
  • service metadata
  • accessing service metadata ( including httpbitlyodataVisua
  • operations
  • batching
  • Slide 19
  • Slide 20
  • WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )
  • building an OData service
  • Slide 23
  • building an OData client
  • more
  • Slide 26
Page 4: Mike Taulty OData (NxtGen User Group UK)

client WLTM service for RESTful interactions

client service

HTTP Server StackHTTP Client Stack

XML Server StackXML Client Stack

Application Code Application Code

URI = httpserviceid=2

BODY = ltcustomergt

VERB = POST

Customer ID = 2

URI = httpserviceid=2

BODY = ltcustomergt

VERB = POST

Customer ID = 2

2

STATUS = OKSTATUS = OK

key points involved here

1 HTTP as the transport2 URI indicates

resource3 VERB indicates action4 STATUS CODE indicates

outcome5 XML as the

payload(s)

Whatrsquos so great about that

1) Simplicity2) Low barrier to entry3) Standardised

technologies already proven on the internet

ready to build

serviceclient

IISWebClient

WCF(REST)

WCF(REST)

ASPNET(MVC)

LINQ to XML

before you get to technologies

1) URI scheme for addressing resources

2) Can client compose additional queries

3) XML payload format JSON as well

4) Sharing payload format with clients

5) Includinglinking to related data

6) Concurrency control7) Paging8) Server round-trips

someone must have done this already

OData is a specification

OData

to provide an open specification for exposing an abstract data model by adding

URI addressing schemepayload using AtomPub Atom and JSONmetadata using the Entity Data Modelbatching mechanism for requests

HTTP XML JSON

builds on the RESTful fundamentals

itrsquos the usual ldquobuild or buyrdquo trade-off

standardbull productivitybull existing frameworkslibrariesbull tooling supportbull existing skillsets

custom bull full controlbull does what you want and

no more

OData Basics

service

feed

feed

feed

operation

operation

property

property

property

typed Entry

typed Entry

typed Entry

link

link

media link BLOB

service must publish a service documentin AtomPub or JSON listing top level feeds

all links are URIrsquos

entries need to have aprimary key

demoquick exploration of an OData service

OData URIs and Querying

httpodatanetflixcomCatalog Genres(lsquoAction Classicsrsquo)Titles $orderby=ReleaseYear

resource path query options

Collection Genres

Entry Genres(lsquoAction Classicsrsquo)

Entry Property Genres(lsquoAction Classicsrsquo)Name

Entry Property (text) Genres(lsquoAction Classicsrsquo)Name$value

Cardinality Genres$count

Navigation Genres(lsquoAction Classicsrsquo)Titles

Navigation Links Genres(lsquoAction Classicsrsquo)$linksTitles

Service Operation ServiceOpparam1=lsquoval1rsquo

$orderby (asc desc )

$top

$skip

$filter

$expand

$format ()

$select

$inlinecount

$ - some custom option

filters

Logiceqnegtgteqltlteqandornot

Arithmeticaddsubmuldivmodroundfloorceiling

Stringcontainsendswithstartswithlengthindexofinsertremove x 2replacesubstringtolowertouppertrimconcat

DateTimesecondhourminutedaymonthyear

Typeisofcast

demoquerying OData services

service metadata

an odata service can offer metadata describing the service

greatly facilitates building clients

service description is represented using the Entity Data Model (EDM)

fully docmented in the specification

Visual Studio (eg) supports this metadata format via ldquoAdd Service Referencerdquo

demoaccessing service metadata( including httpbitlyodataVisualizer )

operations

specification also deals with

client service

GET

including MIME types for ATOMJSONincluding partial lists

including protocol versioning

client service

POST

including creating links

client service

PUT

maintaining linksMERGE also applicable here

concurrency checking via ETagstunnelling over POST

client service

DELETE

maintaining linksconcurrency checking via ETags

tunnelling over POST

client service

INVOKE

batching

optimise round trips to the serverbe more ldquotransactionalrdquo

client service

GET Titles

GET People

POST People(lsquoTom Cruisersquo)

$BatchPOST

(multipart MIME)

RESPONSE(multipart MIME)

specification -gt implementation

OData on the serverCustom via WCF Data ServicesSharePoint 2010SQL AzureAzure Table StorageSQL Reporting ServicesIBM WebSphere

Host (IIS or self-hosted)

WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )

configbull AcceptCountRequestsbull AcceptProjectionRequestsbull MaxProtocolVersionbull MaxBatchCountbull MaxChangesetCountbull MaxExpandDepthbull MaxObjectCountOnInsertbull MaxResultsPerCollectionbull EntitySetAccessRulebull EntitySetPageSizebull ServiceOperationAccessRule

WCF DataService

Serv

ice

Ope

ratio

ns

Inte

rcep

tors

Que

ryU

pdat

e

Custom Data( dynamically defined )

CustomProvider

Entity FrameworkModel

Entity Framework

Provider

LINQ to SQLModel

Custom ObjectModelReflection

Provider + IUpdatable

Entit

y Se

ts

IDataServiceMetadataProvider

IDataServiceQueryProvider

IDataServiceUpdateProvider

IDataServiceStreamProvider

IDataServicePagingProvider

demobuilding an OData service

OData on the clientNET ndash desktop server Silverlight Windows Phone 7JavascriptiPhone (Objective C)JavaPHPRuby

demobuilding an OData client

more

wwwodataorg or to see the website in odataservicesodataorgwebsiteodatasvc

copy 2010 Microsoft Corporation All rights reserved Microsoft Windows Windows Vista and other product names are or may be registered trademarks andor trademarks in the US andor other countriesThe 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

  • The Open Data Protocol (OData)
  • Slide 2
  • client WLTM service for RESTful interactions
  • client WLTM service for RESTful interactions (2)
  • key points involved here
  • ready to build
  • Slide 7
  • OData
  • itrsquos the usual ldquobuild or buyrdquo trade-off
  • OData Basics
  • quick exploration of an OData service
  • OData URIs and Querying
  • filters
  • querying OData services
  • service metadata
  • accessing service metadata ( including httpbitlyodataVisua
  • operations
  • batching
  • Slide 19
  • Slide 20
  • WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )
  • building an OData service
  • Slide 23
  • building an OData client
  • more
  • Slide 26
Page 5: Mike Taulty OData (NxtGen User Group UK)

key points involved here

1 HTTP as the transport2 URI indicates

resource3 VERB indicates action4 STATUS CODE indicates

outcome5 XML as the

payload(s)

Whatrsquos so great about that

1) Simplicity2) Low barrier to entry3) Standardised

technologies already proven on the internet

ready to build

serviceclient

IISWebClient

WCF(REST)

WCF(REST)

ASPNET(MVC)

LINQ to XML

before you get to technologies

1) URI scheme for addressing resources

2) Can client compose additional queries

3) XML payload format JSON as well

4) Sharing payload format with clients

5) Includinglinking to related data

6) Concurrency control7) Paging8) Server round-trips

someone must have done this already

OData is a specification

OData

to provide an open specification for exposing an abstract data model by adding

URI addressing schemepayload using AtomPub Atom and JSONmetadata using the Entity Data Modelbatching mechanism for requests

HTTP XML JSON

builds on the RESTful fundamentals

itrsquos the usual ldquobuild or buyrdquo trade-off

standardbull productivitybull existing frameworkslibrariesbull tooling supportbull existing skillsets

custom bull full controlbull does what you want and

no more

OData Basics

service

feed

feed

feed

operation

operation

property

property

property

typed Entry

typed Entry

typed Entry

link

link

media link BLOB

service must publish a service documentin AtomPub or JSON listing top level feeds

all links are URIrsquos

entries need to have aprimary key

demoquick exploration of an OData service

OData URIs and Querying

httpodatanetflixcomCatalog Genres(lsquoAction Classicsrsquo)Titles $orderby=ReleaseYear

resource path query options

Collection Genres

Entry Genres(lsquoAction Classicsrsquo)

Entry Property Genres(lsquoAction Classicsrsquo)Name

Entry Property (text) Genres(lsquoAction Classicsrsquo)Name$value

Cardinality Genres$count

Navigation Genres(lsquoAction Classicsrsquo)Titles

Navigation Links Genres(lsquoAction Classicsrsquo)$linksTitles

Service Operation ServiceOpparam1=lsquoval1rsquo

$orderby (asc desc )

$top

$skip

$filter

$expand

$format ()

$select

$inlinecount

$ - some custom option

filters

Logiceqnegtgteqltlteqandornot

Arithmeticaddsubmuldivmodroundfloorceiling

Stringcontainsendswithstartswithlengthindexofinsertremove x 2replacesubstringtolowertouppertrimconcat

DateTimesecondhourminutedaymonthyear

Typeisofcast

demoquerying OData services

service metadata

an odata service can offer metadata describing the service

greatly facilitates building clients

service description is represented using the Entity Data Model (EDM)

fully docmented in the specification

Visual Studio (eg) supports this metadata format via ldquoAdd Service Referencerdquo

demoaccessing service metadata( including httpbitlyodataVisualizer )

operations

specification also deals with

client service

GET

including MIME types for ATOMJSONincluding partial lists

including protocol versioning

client service

POST

including creating links

client service

PUT

maintaining linksMERGE also applicable here

concurrency checking via ETagstunnelling over POST

client service

DELETE

maintaining linksconcurrency checking via ETags

tunnelling over POST

client service

INVOKE

batching

optimise round trips to the serverbe more ldquotransactionalrdquo

client service

GET Titles

GET People

POST People(lsquoTom Cruisersquo)

$BatchPOST

(multipart MIME)

RESPONSE(multipart MIME)

specification -gt implementation

OData on the serverCustom via WCF Data ServicesSharePoint 2010SQL AzureAzure Table StorageSQL Reporting ServicesIBM WebSphere

Host (IIS or self-hosted)

WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )

configbull AcceptCountRequestsbull AcceptProjectionRequestsbull MaxProtocolVersionbull MaxBatchCountbull MaxChangesetCountbull MaxExpandDepthbull MaxObjectCountOnInsertbull MaxResultsPerCollectionbull EntitySetAccessRulebull EntitySetPageSizebull ServiceOperationAccessRule

WCF DataService

Serv

ice

Ope

ratio

ns

Inte

rcep

tors

Que

ryU

pdat

e

Custom Data( dynamically defined )

CustomProvider

Entity FrameworkModel

Entity Framework

Provider

LINQ to SQLModel

Custom ObjectModelReflection

Provider + IUpdatable

Entit

y Se

ts

IDataServiceMetadataProvider

IDataServiceQueryProvider

IDataServiceUpdateProvider

IDataServiceStreamProvider

IDataServicePagingProvider

demobuilding an OData service

OData on the clientNET ndash desktop server Silverlight Windows Phone 7JavascriptiPhone (Objective C)JavaPHPRuby

demobuilding an OData client

more

wwwodataorg or to see the website in odataservicesodataorgwebsiteodatasvc

copy 2010 Microsoft Corporation All rights reserved Microsoft Windows Windows Vista and other product names are or may be registered trademarks andor trademarks in the US andor other countriesThe 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

  • The Open Data Protocol (OData)
  • Slide 2
  • client WLTM service for RESTful interactions
  • client WLTM service for RESTful interactions (2)
  • key points involved here
  • ready to build
  • Slide 7
  • OData
  • itrsquos the usual ldquobuild or buyrdquo trade-off
  • OData Basics
  • quick exploration of an OData service
  • OData URIs and Querying
  • filters
  • querying OData services
  • service metadata
  • accessing service metadata ( including httpbitlyodataVisua
  • operations
  • batching
  • Slide 19
  • Slide 20
  • WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )
  • building an OData service
  • Slide 23
  • building an OData client
  • more
  • Slide 26
Page 6: Mike Taulty OData (NxtGen User Group UK)

ready to build

serviceclient

IISWebClient

WCF(REST)

WCF(REST)

ASPNET(MVC)

LINQ to XML

before you get to technologies

1) URI scheme for addressing resources

2) Can client compose additional queries

3) XML payload format JSON as well

4) Sharing payload format with clients

5) Includinglinking to related data

6) Concurrency control7) Paging8) Server round-trips

someone must have done this already

OData is a specification

OData

to provide an open specification for exposing an abstract data model by adding

URI addressing schemepayload using AtomPub Atom and JSONmetadata using the Entity Data Modelbatching mechanism for requests

HTTP XML JSON

builds on the RESTful fundamentals

itrsquos the usual ldquobuild or buyrdquo trade-off

standardbull productivitybull existing frameworkslibrariesbull tooling supportbull existing skillsets

custom bull full controlbull does what you want and

no more

OData Basics

service

feed

feed

feed

operation

operation

property

property

property

typed Entry

typed Entry

typed Entry

link

link

media link BLOB

service must publish a service documentin AtomPub or JSON listing top level feeds

all links are URIrsquos

entries need to have aprimary key

demoquick exploration of an OData service

OData URIs and Querying

httpodatanetflixcomCatalog Genres(lsquoAction Classicsrsquo)Titles $orderby=ReleaseYear

resource path query options

Collection Genres

Entry Genres(lsquoAction Classicsrsquo)

Entry Property Genres(lsquoAction Classicsrsquo)Name

Entry Property (text) Genres(lsquoAction Classicsrsquo)Name$value

Cardinality Genres$count

Navigation Genres(lsquoAction Classicsrsquo)Titles

Navigation Links Genres(lsquoAction Classicsrsquo)$linksTitles

Service Operation ServiceOpparam1=lsquoval1rsquo

$orderby (asc desc )

$top

$skip

$filter

$expand

$format ()

$select

$inlinecount

$ - some custom option

filters

Logiceqnegtgteqltlteqandornot

Arithmeticaddsubmuldivmodroundfloorceiling

Stringcontainsendswithstartswithlengthindexofinsertremove x 2replacesubstringtolowertouppertrimconcat

DateTimesecondhourminutedaymonthyear

Typeisofcast

demoquerying OData services

service metadata

an odata service can offer metadata describing the service

greatly facilitates building clients

service description is represented using the Entity Data Model (EDM)

fully docmented in the specification

Visual Studio (eg) supports this metadata format via ldquoAdd Service Referencerdquo

demoaccessing service metadata( including httpbitlyodataVisualizer )

operations

specification also deals with

client service

GET

including MIME types for ATOMJSONincluding partial lists

including protocol versioning

client service

POST

including creating links

client service

PUT

maintaining linksMERGE also applicable here

concurrency checking via ETagstunnelling over POST

client service

DELETE

maintaining linksconcurrency checking via ETags

tunnelling over POST

client service

INVOKE

batching

optimise round trips to the serverbe more ldquotransactionalrdquo

client service

GET Titles

GET People

POST People(lsquoTom Cruisersquo)

$BatchPOST

(multipart MIME)

RESPONSE(multipart MIME)

specification -gt implementation

OData on the serverCustom via WCF Data ServicesSharePoint 2010SQL AzureAzure Table StorageSQL Reporting ServicesIBM WebSphere

Host (IIS or self-hosted)

WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )

configbull AcceptCountRequestsbull AcceptProjectionRequestsbull MaxProtocolVersionbull MaxBatchCountbull MaxChangesetCountbull MaxExpandDepthbull MaxObjectCountOnInsertbull MaxResultsPerCollectionbull EntitySetAccessRulebull EntitySetPageSizebull ServiceOperationAccessRule

WCF DataService

Serv

ice

Ope

ratio

ns

Inte

rcep

tors

Que

ryU

pdat

e

Custom Data( dynamically defined )

CustomProvider

Entity FrameworkModel

Entity Framework

Provider

LINQ to SQLModel

Custom ObjectModelReflection

Provider + IUpdatable

Entit

y Se

ts

IDataServiceMetadataProvider

IDataServiceQueryProvider

IDataServiceUpdateProvider

IDataServiceStreamProvider

IDataServicePagingProvider

demobuilding an OData service

OData on the clientNET ndash desktop server Silverlight Windows Phone 7JavascriptiPhone (Objective C)JavaPHPRuby

demobuilding an OData client

more

wwwodataorg or to see the website in odataservicesodataorgwebsiteodatasvc

copy 2010 Microsoft Corporation All rights reserved Microsoft Windows Windows Vista and other product names are or may be registered trademarks andor trademarks in the US andor other countriesThe 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

  • The Open Data Protocol (OData)
  • Slide 2
  • client WLTM service for RESTful interactions
  • client WLTM service for RESTful interactions (2)
  • key points involved here
  • ready to build
  • Slide 7
  • OData
  • itrsquos the usual ldquobuild or buyrdquo trade-off
  • OData Basics
  • quick exploration of an OData service
  • OData URIs and Querying
  • filters
  • querying OData services
  • service metadata
  • accessing service metadata ( including httpbitlyodataVisua
  • operations
  • batching
  • Slide 19
  • Slide 20
  • WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )
  • building an OData service
  • Slide 23
  • building an OData client
  • more
  • Slide 26
Page 7: Mike Taulty OData (NxtGen User Group UK)

OData is a specification

OData

to provide an open specification for exposing an abstract data model by adding

URI addressing schemepayload using AtomPub Atom and JSONmetadata using the Entity Data Modelbatching mechanism for requests

HTTP XML JSON

builds on the RESTful fundamentals

itrsquos the usual ldquobuild or buyrdquo trade-off

standardbull productivitybull existing frameworkslibrariesbull tooling supportbull existing skillsets

custom bull full controlbull does what you want and

no more

OData Basics

service

feed

feed

feed

operation

operation

property

property

property

typed Entry

typed Entry

typed Entry

link

link

media link BLOB

service must publish a service documentin AtomPub or JSON listing top level feeds

all links are URIrsquos

entries need to have aprimary key

demoquick exploration of an OData service

OData URIs and Querying

httpodatanetflixcomCatalog Genres(lsquoAction Classicsrsquo)Titles $orderby=ReleaseYear

resource path query options

Collection Genres

Entry Genres(lsquoAction Classicsrsquo)

Entry Property Genres(lsquoAction Classicsrsquo)Name

Entry Property (text) Genres(lsquoAction Classicsrsquo)Name$value

Cardinality Genres$count

Navigation Genres(lsquoAction Classicsrsquo)Titles

Navigation Links Genres(lsquoAction Classicsrsquo)$linksTitles

Service Operation ServiceOpparam1=lsquoval1rsquo

$orderby (asc desc )

$top

$skip

$filter

$expand

$format ()

$select

$inlinecount

$ - some custom option

filters

Logiceqnegtgteqltlteqandornot

Arithmeticaddsubmuldivmodroundfloorceiling

Stringcontainsendswithstartswithlengthindexofinsertremove x 2replacesubstringtolowertouppertrimconcat

DateTimesecondhourminutedaymonthyear

Typeisofcast

demoquerying OData services

service metadata

an odata service can offer metadata describing the service

greatly facilitates building clients

service description is represented using the Entity Data Model (EDM)

fully docmented in the specification

Visual Studio (eg) supports this metadata format via ldquoAdd Service Referencerdquo

demoaccessing service metadata( including httpbitlyodataVisualizer )

operations

specification also deals with

client service

GET

including MIME types for ATOMJSONincluding partial lists

including protocol versioning

client service

POST

including creating links

client service

PUT

maintaining linksMERGE also applicable here

concurrency checking via ETagstunnelling over POST

client service

DELETE

maintaining linksconcurrency checking via ETags

tunnelling over POST

client service

INVOKE

batching

optimise round trips to the serverbe more ldquotransactionalrdquo

client service

GET Titles

GET People

POST People(lsquoTom Cruisersquo)

$BatchPOST

(multipart MIME)

RESPONSE(multipart MIME)

specification -gt implementation

OData on the serverCustom via WCF Data ServicesSharePoint 2010SQL AzureAzure Table StorageSQL Reporting ServicesIBM WebSphere

Host (IIS or self-hosted)

WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )

configbull AcceptCountRequestsbull AcceptProjectionRequestsbull MaxProtocolVersionbull MaxBatchCountbull MaxChangesetCountbull MaxExpandDepthbull MaxObjectCountOnInsertbull MaxResultsPerCollectionbull EntitySetAccessRulebull EntitySetPageSizebull ServiceOperationAccessRule

WCF DataService

Serv

ice

Ope

ratio

ns

Inte

rcep

tors

Que

ryU

pdat

e

Custom Data( dynamically defined )

CustomProvider

Entity FrameworkModel

Entity Framework

Provider

LINQ to SQLModel

Custom ObjectModelReflection

Provider + IUpdatable

Entit

y Se

ts

IDataServiceMetadataProvider

IDataServiceQueryProvider

IDataServiceUpdateProvider

IDataServiceStreamProvider

IDataServicePagingProvider

demobuilding an OData service

OData on the clientNET ndash desktop server Silverlight Windows Phone 7JavascriptiPhone (Objective C)JavaPHPRuby

demobuilding an OData client

more

wwwodataorg or to see the website in odataservicesodataorgwebsiteodatasvc

copy 2010 Microsoft Corporation All rights reserved Microsoft Windows Windows Vista and other product names are or may be registered trademarks andor trademarks in the US andor other countriesThe 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

  • The Open Data Protocol (OData)
  • Slide 2
  • client WLTM service for RESTful interactions
  • client WLTM service for RESTful interactions (2)
  • key points involved here
  • ready to build
  • Slide 7
  • OData
  • itrsquos the usual ldquobuild or buyrdquo trade-off
  • OData Basics
  • quick exploration of an OData service
  • OData URIs and Querying
  • filters
  • querying OData services
  • service metadata
  • accessing service metadata ( including httpbitlyodataVisua
  • operations
  • batching
  • Slide 19
  • Slide 20
  • WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )
  • building an OData service
  • Slide 23
  • building an OData client
  • more
  • Slide 26
Page 8: Mike Taulty OData (NxtGen User Group UK)

OData

to provide an open specification for exposing an abstract data model by adding

URI addressing schemepayload using AtomPub Atom and JSONmetadata using the Entity Data Modelbatching mechanism for requests

HTTP XML JSON

builds on the RESTful fundamentals

itrsquos the usual ldquobuild or buyrdquo trade-off

standardbull productivitybull existing frameworkslibrariesbull tooling supportbull existing skillsets

custom bull full controlbull does what you want and

no more

OData Basics

service

feed

feed

feed

operation

operation

property

property

property

typed Entry

typed Entry

typed Entry

link

link

media link BLOB

service must publish a service documentin AtomPub or JSON listing top level feeds

all links are URIrsquos

entries need to have aprimary key

demoquick exploration of an OData service

OData URIs and Querying

httpodatanetflixcomCatalog Genres(lsquoAction Classicsrsquo)Titles $orderby=ReleaseYear

resource path query options

Collection Genres

Entry Genres(lsquoAction Classicsrsquo)

Entry Property Genres(lsquoAction Classicsrsquo)Name

Entry Property (text) Genres(lsquoAction Classicsrsquo)Name$value

Cardinality Genres$count

Navigation Genres(lsquoAction Classicsrsquo)Titles

Navigation Links Genres(lsquoAction Classicsrsquo)$linksTitles

Service Operation ServiceOpparam1=lsquoval1rsquo

$orderby (asc desc )

$top

$skip

$filter

$expand

$format ()

$select

$inlinecount

$ - some custom option

filters

Logiceqnegtgteqltlteqandornot

Arithmeticaddsubmuldivmodroundfloorceiling

Stringcontainsendswithstartswithlengthindexofinsertremove x 2replacesubstringtolowertouppertrimconcat

DateTimesecondhourminutedaymonthyear

Typeisofcast

demoquerying OData services

service metadata

an odata service can offer metadata describing the service

greatly facilitates building clients

service description is represented using the Entity Data Model (EDM)

fully docmented in the specification

Visual Studio (eg) supports this metadata format via ldquoAdd Service Referencerdquo

demoaccessing service metadata( including httpbitlyodataVisualizer )

operations

specification also deals with

client service

GET

including MIME types for ATOMJSONincluding partial lists

including protocol versioning

client service

POST

including creating links

client service

PUT

maintaining linksMERGE also applicable here

concurrency checking via ETagstunnelling over POST

client service

DELETE

maintaining linksconcurrency checking via ETags

tunnelling over POST

client service

INVOKE

batching

optimise round trips to the serverbe more ldquotransactionalrdquo

client service

GET Titles

GET People

POST People(lsquoTom Cruisersquo)

$BatchPOST

(multipart MIME)

RESPONSE(multipart MIME)

specification -gt implementation

OData on the serverCustom via WCF Data ServicesSharePoint 2010SQL AzureAzure Table StorageSQL Reporting ServicesIBM WebSphere

Host (IIS or self-hosted)

WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )

configbull AcceptCountRequestsbull AcceptProjectionRequestsbull MaxProtocolVersionbull MaxBatchCountbull MaxChangesetCountbull MaxExpandDepthbull MaxObjectCountOnInsertbull MaxResultsPerCollectionbull EntitySetAccessRulebull EntitySetPageSizebull ServiceOperationAccessRule

WCF DataService

Serv

ice

Ope

ratio

ns

Inte

rcep

tors

Que

ryU

pdat

e

Custom Data( dynamically defined )

CustomProvider

Entity FrameworkModel

Entity Framework

Provider

LINQ to SQLModel

Custom ObjectModelReflection

Provider + IUpdatable

Entit

y Se

ts

IDataServiceMetadataProvider

IDataServiceQueryProvider

IDataServiceUpdateProvider

IDataServiceStreamProvider

IDataServicePagingProvider

demobuilding an OData service

OData on the clientNET ndash desktop server Silverlight Windows Phone 7JavascriptiPhone (Objective C)JavaPHPRuby

demobuilding an OData client

more

wwwodataorg or to see the website in odataservicesodataorgwebsiteodatasvc

copy 2010 Microsoft Corporation All rights reserved Microsoft Windows Windows Vista and other product names are or may be registered trademarks andor trademarks in the US andor other countriesThe 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

  • The Open Data Protocol (OData)
  • Slide 2
  • client WLTM service for RESTful interactions
  • client WLTM service for RESTful interactions (2)
  • key points involved here
  • ready to build
  • Slide 7
  • OData
  • itrsquos the usual ldquobuild or buyrdquo trade-off
  • OData Basics
  • quick exploration of an OData service
  • OData URIs and Querying
  • filters
  • querying OData services
  • service metadata
  • accessing service metadata ( including httpbitlyodataVisua
  • operations
  • batching
  • Slide 19
  • Slide 20
  • WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )
  • building an OData service
  • Slide 23
  • building an OData client
  • more
  • Slide 26
Page 9: Mike Taulty OData (NxtGen User Group UK)

itrsquos the usual ldquobuild or buyrdquo trade-off

standardbull productivitybull existing frameworkslibrariesbull tooling supportbull existing skillsets

custom bull full controlbull does what you want and

no more

OData Basics

service

feed

feed

feed

operation

operation

property

property

property

typed Entry

typed Entry

typed Entry

link

link

media link BLOB

service must publish a service documentin AtomPub or JSON listing top level feeds

all links are URIrsquos

entries need to have aprimary key

demoquick exploration of an OData service

OData URIs and Querying

httpodatanetflixcomCatalog Genres(lsquoAction Classicsrsquo)Titles $orderby=ReleaseYear

resource path query options

Collection Genres

Entry Genres(lsquoAction Classicsrsquo)

Entry Property Genres(lsquoAction Classicsrsquo)Name

Entry Property (text) Genres(lsquoAction Classicsrsquo)Name$value

Cardinality Genres$count

Navigation Genres(lsquoAction Classicsrsquo)Titles

Navigation Links Genres(lsquoAction Classicsrsquo)$linksTitles

Service Operation ServiceOpparam1=lsquoval1rsquo

$orderby (asc desc )

$top

$skip

$filter

$expand

$format ()

$select

$inlinecount

$ - some custom option

filters

Logiceqnegtgteqltlteqandornot

Arithmeticaddsubmuldivmodroundfloorceiling

Stringcontainsendswithstartswithlengthindexofinsertremove x 2replacesubstringtolowertouppertrimconcat

DateTimesecondhourminutedaymonthyear

Typeisofcast

demoquerying OData services

service metadata

an odata service can offer metadata describing the service

greatly facilitates building clients

service description is represented using the Entity Data Model (EDM)

fully docmented in the specification

Visual Studio (eg) supports this metadata format via ldquoAdd Service Referencerdquo

demoaccessing service metadata( including httpbitlyodataVisualizer )

operations

specification also deals with

client service

GET

including MIME types for ATOMJSONincluding partial lists

including protocol versioning

client service

POST

including creating links

client service

PUT

maintaining linksMERGE also applicable here

concurrency checking via ETagstunnelling over POST

client service

DELETE

maintaining linksconcurrency checking via ETags

tunnelling over POST

client service

INVOKE

batching

optimise round trips to the serverbe more ldquotransactionalrdquo

client service

GET Titles

GET People

POST People(lsquoTom Cruisersquo)

$BatchPOST

(multipart MIME)

RESPONSE(multipart MIME)

specification -gt implementation

OData on the serverCustom via WCF Data ServicesSharePoint 2010SQL AzureAzure Table StorageSQL Reporting ServicesIBM WebSphere

Host (IIS or self-hosted)

WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )

configbull AcceptCountRequestsbull AcceptProjectionRequestsbull MaxProtocolVersionbull MaxBatchCountbull MaxChangesetCountbull MaxExpandDepthbull MaxObjectCountOnInsertbull MaxResultsPerCollectionbull EntitySetAccessRulebull EntitySetPageSizebull ServiceOperationAccessRule

WCF DataService

Serv

ice

Ope

ratio

ns

Inte

rcep

tors

Que

ryU

pdat

e

Custom Data( dynamically defined )

CustomProvider

Entity FrameworkModel

Entity Framework

Provider

LINQ to SQLModel

Custom ObjectModelReflection

Provider + IUpdatable

Entit

y Se

ts

IDataServiceMetadataProvider

IDataServiceQueryProvider

IDataServiceUpdateProvider

IDataServiceStreamProvider

IDataServicePagingProvider

demobuilding an OData service

OData on the clientNET ndash desktop server Silverlight Windows Phone 7JavascriptiPhone (Objective C)JavaPHPRuby

demobuilding an OData client

more

wwwodataorg or to see the website in odataservicesodataorgwebsiteodatasvc

copy 2010 Microsoft Corporation All rights reserved Microsoft Windows Windows Vista and other product names are or may be registered trademarks andor trademarks in the US andor other countriesThe 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

  • The Open Data Protocol (OData)
  • Slide 2
  • client WLTM service for RESTful interactions
  • client WLTM service for RESTful interactions (2)
  • key points involved here
  • ready to build
  • Slide 7
  • OData
  • itrsquos the usual ldquobuild or buyrdquo trade-off
  • OData Basics
  • quick exploration of an OData service
  • OData URIs and Querying
  • filters
  • querying OData services
  • service metadata
  • accessing service metadata ( including httpbitlyodataVisua
  • operations
  • batching
  • Slide 19
  • Slide 20
  • WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )
  • building an OData service
  • Slide 23
  • building an OData client
  • more
  • Slide 26
Page 10: Mike Taulty OData (NxtGen User Group UK)

OData Basics

service

feed

feed

feed

operation

operation

property

property

property

typed Entry

typed Entry

typed Entry

link

link

media link BLOB

service must publish a service documentin AtomPub or JSON listing top level feeds

all links are URIrsquos

entries need to have aprimary key

demoquick exploration of an OData service

OData URIs and Querying

httpodatanetflixcomCatalog Genres(lsquoAction Classicsrsquo)Titles $orderby=ReleaseYear

resource path query options

Collection Genres

Entry Genres(lsquoAction Classicsrsquo)

Entry Property Genres(lsquoAction Classicsrsquo)Name

Entry Property (text) Genres(lsquoAction Classicsrsquo)Name$value

Cardinality Genres$count

Navigation Genres(lsquoAction Classicsrsquo)Titles

Navigation Links Genres(lsquoAction Classicsrsquo)$linksTitles

Service Operation ServiceOpparam1=lsquoval1rsquo

$orderby (asc desc )

$top

$skip

$filter

$expand

$format ()

$select

$inlinecount

$ - some custom option

filters

Logiceqnegtgteqltlteqandornot

Arithmeticaddsubmuldivmodroundfloorceiling

Stringcontainsendswithstartswithlengthindexofinsertremove x 2replacesubstringtolowertouppertrimconcat

DateTimesecondhourminutedaymonthyear

Typeisofcast

demoquerying OData services

service metadata

an odata service can offer metadata describing the service

greatly facilitates building clients

service description is represented using the Entity Data Model (EDM)

fully docmented in the specification

Visual Studio (eg) supports this metadata format via ldquoAdd Service Referencerdquo

demoaccessing service metadata( including httpbitlyodataVisualizer )

operations

specification also deals with

client service

GET

including MIME types for ATOMJSONincluding partial lists

including protocol versioning

client service

POST

including creating links

client service

PUT

maintaining linksMERGE also applicable here

concurrency checking via ETagstunnelling over POST

client service

DELETE

maintaining linksconcurrency checking via ETags

tunnelling over POST

client service

INVOKE

batching

optimise round trips to the serverbe more ldquotransactionalrdquo

client service

GET Titles

GET People

POST People(lsquoTom Cruisersquo)

$BatchPOST

(multipart MIME)

RESPONSE(multipart MIME)

specification -gt implementation

OData on the serverCustom via WCF Data ServicesSharePoint 2010SQL AzureAzure Table StorageSQL Reporting ServicesIBM WebSphere

Host (IIS or self-hosted)

WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )

configbull AcceptCountRequestsbull AcceptProjectionRequestsbull MaxProtocolVersionbull MaxBatchCountbull MaxChangesetCountbull MaxExpandDepthbull MaxObjectCountOnInsertbull MaxResultsPerCollectionbull EntitySetAccessRulebull EntitySetPageSizebull ServiceOperationAccessRule

WCF DataService

Serv

ice

Ope

ratio

ns

Inte

rcep

tors

Que

ryU

pdat

e

Custom Data( dynamically defined )

CustomProvider

Entity FrameworkModel

Entity Framework

Provider

LINQ to SQLModel

Custom ObjectModelReflection

Provider + IUpdatable

Entit

y Se

ts

IDataServiceMetadataProvider

IDataServiceQueryProvider

IDataServiceUpdateProvider

IDataServiceStreamProvider

IDataServicePagingProvider

demobuilding an OData service

OData on the clientNET ndash desktop server Silverlight Windows Phone 7JavascriptiPhone (Objective C)JavaPHPRuby

demobuilding an OData client

more

wwwodataorg or to see the website in odataservicesodataorgwebsiteodatasvc

copy 2010 Microsoft Corporation All rights reserved Microsoft Windows Windows Vista and other product names are or may be registered trademarks andor trademarks in the US andor other countriesThe 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

  • The Open Data Protocol (OData)
  • Slide 2
  • client WLTM service for RESTful interactions
  • client WLTM service for RESTful interactions (2)
  • key points involved here
  • ready to build
  • Slide 7
  • OData
  • itrsquos the usual ldquobuild or buyrdquo trade-off
  • OData Basics
  • quick exploration of an OData service
  • OData URIs and Querying
  • filters
  • querying OData services
  • service metadata
  • accessing service metadata ( including httpbitlyodataVisua
  • operations
  • batching
  • Slide 19
  • Slide 20
  • WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )
  • building an OData service
  • Slide 23
  • building an OData client
  • more
  • Slide 26
Page 11: Mike Taulty OData (NxtGen User Group UK)

demoquick exploration of an OData service

OData URIs and Querying

httpodatanetflixcomCatalog Genres(lsquoAction Classicsrsquo)Titles $orderby=ReleaseYear

resource path query options

Collection Genres

Entry Genres(lsquoAction Classicsrsquo)

Entry Property Genres(lsquoAction Classicsrsquo)Name

Entry Property (text) Genres(lsquoAction Classicsrsquo)Name$value

Cardinality Genres$count

Navigation Genres(lsquoAction Classicsrsquo)Titles

Navigation Links Genres(lsquoAction Classicsrsquo)$linksTitles

Service Operation ServiceOpparam1=lsquoval1rsquo

$orderby (asc desc )

$top

$skip

$filter

$expand

$format ()

$select

$inlinecount

$ - some custom option

filters

Logiceqnegtgteqltlteqandornot

Arithmeticaddsubmuldivmodroundfloorceiling

Stringcontainsendswithstartswithlengthindexofinsertremove x 2replacesubstringtolowertouppertrimconcat

DateTimesecondhourminutedaymonthyear

Typeisofcast

demoquerying OData services

service metadata

an odata service can offer metadata describing the service

greatly facilitates building clients

service description is represented using the Entity Data Model (EDM)

fully docmented in the specification

Visual Studio (eg) supports this metadata format via ldquoAdd Service Referencerdquo

demoaccessing service metadata( including httpbitlyodataVisualizer )

operations

specification also deals with

client service

GET

including MIME types for ATOMJSONincluding partial lists

including protocol versioning

client service

POST

including creating links

client service

PUT

maintaining linksMERGE also applicable here

concurrency checking via ETagstunnelling over POST

client service

DELETE

maintaining linksconcurrency checking via ETags

tunnelling over POST

client service

INVOKE

batching

optimise round trips to the serverbe more ldquotransactionalrdquo

client service

GET Titles

GET People

POST People(lsquoTom Cruisersquo)

$BatchPOST

(multipart MIME)

RESPONSE(multipart MIME)

specification -gt implementation

OData on the serverCustom via WCF Data ServicesSharePoint 2010SQL AzureAzure Table StorageSQL Reporting ServicesIBM WebSphere

Host (IIS or self-hosted)

WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )

configbull AcceptCountRequestsbull AcceptProjectionRequestsbull MaxProtocolVersionbull MaxBatchCountbull MaxChangesetCountbull MaxExpandDepthbull MaxObjectCountOnInsertbull MaxResultsPerCollectionbull EntitySetAccessRulebull EntitySetPageSizebull ServiceOperationAccessRule

WCF DataService

Serv

ice

Ope

ratio

ns

Inte

rcep

tors

Que

ryU

pdat

e

Custom Data( dynamically defined )

CustomProvider

Entity FrameworkModel

Entity Framework

Provider

LINQ to SQLModel

Custom ObjectModelReflection

Provider + IUpdatable

Entit

y Se

ts

IDataServiceMetadataProvider

IDataServiceQueryProvider

IDataServiceUpdateProvider

IDataServiceStreamProvider

IDataServicePagingProvider

demobuilding an OData service

OData on the clientNET ndash desktop server Silverlight Windows Phone 7JavascriptiPhone (Objective C)JavaPHPRuby

demobuilding an OData client

more

wwwodataorg or to see the website in odataservicesodataorgwebsiteodatasvc

copy 2010 Microsoft Corporation All rights reserved Microsoft Windows Windows Vista and other product names are or may be registered trademarks andor trademarks in the US andor other countriesThe 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

  • The Open Data Protocol (OData)
  • Slide 2
  • client WLTM service for RESTful interactions
  • client WLTM service for RESTful interactions (2)
  • key points involved here
  • ready to build
  • Slide 7
  • OData
  • itrsquos the usual ldquobuild or buyrdquo trade-off
  • OData Basics
  • quick exploration of an OData service
  • OData URIs and Querying
  • filters
  • querying OData services
  • service metadata
  • accessing service metadata ( including httpbitlyodataVisua
  • operations
  • batching
  • Slide 19
  • Slide 20
  • WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )
  • building an OData service
  • Slide 23
  • building an OData client
  • more
  • Slide 26
Page 12: Mike Taulty OData (NxtGen User Group UK)

OData URIs and Querying

httpodatanetflixcomCatalog Genres(lsquoAction Classicsrsquo)Titles $orderby=ReleaseYear

resource path query options

Collection Genres

Entry Genres(lsquoAction Classicsrsquo)

Entry Property Genres(lsquoAction Classicsrsquo)Name

Entry Property (text) Genres(lsquoAction Classicsrsquo)Name$value

Cardinality Genres$count

Navigation Genres(lsquoAction Classicsrsquo)Titles

Navigation Links Genres(lsquoAction Classicsrsquo)$linksTitles

Service Operation ServiceOpparam1=lsquoval1rsquo

$orderby (asc desc )

$top

$skip

$filter

$expand

$format ()

$select

$inlinecount

$ - some custom option

filters

Logiceqnegtgteqltlteqandornot

Arithmeticaddsubmuldivmodroundfloorceiling

Stringcontainsendswithstartswithlengthindexofinsertremove x 2replacesubstringtolowertouppertrimconcat

DateTimesecondhourminutedaymonthyear

Typeisofcast

demoquerying OData services

service metadata

an odata service can offer metadata describing the service

greatly facilitates building clients

service description is represented using the Entity Data Model (EDM)

fully docmented in the specification

Visual Studio (eg) supports this metadata format via ldquoAdd Service Referencerdquo

demoaccessing service metadata( including httpbitlyodataVisualizer )

operations

specification also deals with

client service

GET

including MIME types for ATOMJSONincluding partial lists

including protocol versioning

client service

POST

including creating links

client service

PUT

maintaining linksMERGE also applicable here

concurrency checking via ETagstunnelling over POST

client service

DELETE

maintaining linksconcurrency checking via ETags

tunnelling over POST

client service

INVOKE

batching

optimise round trips to the serverbe more ldquotransactionalrdquo

client service

GET Titles

GET People

POST People(lsquoTom Cruisersquo)

$BatchPOST

(multipart MIME)

RESPONSE(multipart MIME)

specification -gt implementation

OData on the serverCustom via WCF Data ServicesSharePoint 2010SQL AzureAzure Table StorageSQL Reporting ServicesIBM WebSphere

Host (IIS or self-hosted)

WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )

configbull AcceptCountRequestsbull AcceptProjectionRequestsbull MaxProtocolVersionbull MaxBatchCountbull MaxChangesetCountbull MaxExpandDepthbull MaxObjectCountOnInsertbull MaxResultsPerCollectionbull EntitySetAccessRulebull EntitySetPageSizebull ServiceOperationAccessRule

WCF DataService

Serv

ice

Ope

ratio

ns

Inte

rcep

tors

Que

ryU

pdat

e

Custom Data( dynamically defined )

CustomProvider

Entity FrameworkModel

Entity Framework

Provider

LINQ to SQLModel

Custom ObjectModelReflection

Provider + IUpdatable

Entit

y Se

ts

IDataServiceMetadataProvider

IDataServiceQueryProvider

IDataServiceUpdateProvider

IDataServiceStreamProvider

IDataServicePagingProvider

demobuilding an OData service

OData on the clientNET ndash desktop server Silverlight Windows Phone 7JavascriptiPhone (Objective C)JavaPHPRuby

demobuilding an OData client

more

wwwodataorg or to see the website in odataservicesodataorgwebsiteodatasvc

copy 2010 Microsoft Corporation All rights reserved Microsoft Windows Windows Vista and other product names are or may be registered trademarks andor trademarks in the US andor other countriesThe 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

  • The Open Data Protocol (OData)
  • Slide 2
  • client WLTM service for RESTful interactions
  • client WLTM service for RESTful interactions (2)
  • key points involved here
  • ready to build
  • Slide 7
  • OData
  • itrsquos the usual ldquobuild or buyrdquo trade-off
  • OData Basics
  • quick exploration of an OData service
  • OData URIs and Querying
  • filters
  • querying OData services
  • service metadata
  • accessing service metadata ( including httpbitlyodataVisua
  • operations
  • batching
  • Slide 19
  • Slide 20
  • WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )
  • building an OData service
  • Slide 23
  • building an OData client
  • more
  • Slide 26
Page 13: Mike Taulty OData (NxtGen User Group UK)

filters

Logiceqnegtgteqltlteqandornot

Arithmeticaddsubmuldivmodroundfloorceiling

Stringcontainsendswithstartswithlengthindexofinsertremove x 2replacesubstringtolowertouppertrimconcat

DateTimesecondhourminutedaymonthyear

Typeisofcast

demoquerying OData services

service metadata

an odata service can offer metadata describing the service

greatly facilitates building clients

service description is represented using the Entity Data Model (EDM)

fully docmented in the specification

Visual Studio (eg) supports this metadata format via ldquoAdd Service Referencerdquo

demoaccessing service metadata( including httpbitlyodataVisualizer )

operations

specification also deals with

client service

GET

including MIME types for ATOMJSONincluding partial lists

including protocol versioning

client service

POST

including creating links

client service

PUT

maintaining linksMERGE also applicable here

concurrency checking via ETagstunnelling over POST

client service

DELETE

maintaining linksconcurrency checking via ETags

tunnelling over POST

client service

INVOKE

batching

optimise round trips to the serverbe more ldquotransactionalrdquo

client service

GET Titles

GET People

POST People(lsquoTom Cruisersquo)

$BatchPOST

(multipart MIME)

RESPONSE(multipart MIME)

specification -gt implementation

OData on the serverCustom via WCF Data ServicesSharePoint 2010SQL AzureAzure Table StorageSQL Reporting ServicesIBM WebSphere

Host (IIS or self-hosted)

WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )

configbull AcceptCountRequestsbull AcceptProjectionRequestsbull MaxProtocolVersionbull MaxBatchCountbull MaxChangesetCountbull MaxExpandDepthbull MaxObjectCountOnInsertbull MaxResultsPerCollectionbull EntitySetAccessRulebull EntitySetPageSizebull ServiceOperationAccessRule

WCF DataService

Serv

ice

Ope

ratio

ns

Inte

rcep

tors

Que

ryU

pdat

e

Custom Data( dynamically defined )

CustomProvider

Entity FrameworkModel

Entity Framework

Provider

LINQ to SQLModel

Custom ObjectModelReflection

Provider + IUpdatable

Entit

y Se

ts

IDataServiceMetadataProvider

IDataServiceQueryProvider

IDataServiceUpdateProvider

IDataServiceStreamProvider

IDataServicePagingProvider

demobuilding an OData service

OData on the clientNET ndash desktop server Silverlight Windows Phone 7JavascriptiPhone (Objective C)JavaPHPRuby

demobuilding an OData client

more

wwwodataorg or to see the website in odataservicesodataorgwebsiteodatasvc

copy 2010 Microsoft Corporation All rights reserved Microsoft Windows Windows Vista and other product names are or may be registered trademarks andor trademarks in the US andor other countriesThe 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

  • The Open Data Protocol (OData)
  • Slide 2
  • client WLTM service for RESTful interactions
  • client WLTM service for RESTful interactions (2)
  • key points involved here
  • ready to build
  • Slide 7
  • OData
  • itrsquos the usual ldquobuild or buyrdquo trade-off
  • OData Basics
  • quick exploration of an OData service
  • OData URIs and Querying
  • filters
  • querying OData services
  • service metadata
  • accessing service metadata ( including httpbitlyodataVisua
  • operations
  • batching
  • Slide 19
  • Slide 20
  • WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )
  • building an OData service
  • Slide 23
  • building an OData client
  • more
  • Slide 26
Page 14: Mike Taulty OData (NxtGen User Group UK)

demoquerying OData services

service metadata

an odata service can offer metadata describing the service

greatly facilitates building clients

service description is represented using the Entity Data Model (EDM)

fully docmented in the specification

Visual Studio (eg) supports this metadata format via ldquoAdd Service Referencerdquo

demoaccessing service metadata( including httpbitlyodataVisualizer )

operations

specification also deals with

client service

GET

including MIME types for ATOMJSONincluding partial lists

including protocol versioning

client service

POST

including creating links

client service

PUT

maintaining linksMERGE also applicable here

concurrency checking via ETagstunnelling over POST

client service

DELETE

maintaining linksconcurrency checking via ETags

tunnelling over POST

client service

INVOKE

batching

optimise round trips to the serverbe more ldquotransactionalrdquo

client service

GET Titles

GET People

POST People(lsquoTom Cruisersquo)

$BatchPOST

(multipart MIME)

RESPONSE(multipart MIME)

specification -gt implementation

OData on the serverCustom via WCF Data ServicesSharePoint 2010SQL AzureAzure Table StorageSQL Reporting ServicesIBM WebSphere

Host (IIS or self-hosted)

WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )

configbull AcceptCountRequestsbull AcceptProjectionRequestsbull MaxProtocolVersionbull MaxBatchCountbull MaxChangesetCountbull MaxExpandDepthbull MaxObjectCountOnInsertbull MaxResultsPerCollectionbull EntitySetAccessRulebull EntitySetPageSizebull ServiceOperationAccessRule

WCF DataService

Serv

ice

Ope

ratio

ns

Inte

rcep

tors

Que

ryU

pdat

e

Custom Data( dynamically defined )

CustomProvider

Entity FrameworkModel

Entity Framework

Provider

LINQ to SQLModel

Custom ObjectModelReflection

Provider + IUpdatable

Entit

y Se

ts

IDataServiceMetadataProvider

IDataServiceQueryProvider

IDataServiceUpdateProvider

IDataServiceStreamProvider

IDataServicePagingProvider

demobuilding an OData service

OData on the clientNET ndash desktop server Silverlight Windows Phone 7JavascriptiPhone (Objective C)JavaPHPRuby

demobuilding an OData client

more

wwwodataorg or to see the website in odataservicesodataorgwebsiteodatasvc

copy 2010 Microsoft Corporation All rights reserved Microsoft Windows Windows Vista and other product names are or may be registered trademarks andor trademarks in the US andor other countriesThe 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

  • The Open Data Protocol (OData)
  • Slide 2
  • client WLTM service for RESTful interactions
  • client WLTM service for RESTful interactions (2)
  • key points involved here
  • ready to build
  • Slide 7
  • OData
  • itrsquos the usual ldquobuild or buyrdquo trade-off
  • OData Basics
  • quick exploration of an OData service
  • OData URIs and Querying
  • filters
  • querying OData services
  • service metadata
  • accessing service metadata ( including httpbitlyodataVisua
  • operations
  • batching
  • Slide 19
  • Slide 20
  • WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )
  • building an OData service
  • Slide 23
  • building an OData client
  • more
  • Slide 26
Page 15: Mike Taulty OData (NxtGen User Group UK)

service metadata

an odata service can offer metadata describing the service

greatly facilitates building clients

service description is represented using the Entity Data Model (EDM)

fully docmented in the specification

Visual Studio (eg) supports this metadata format via ldquoAdd Service Referencerdquo

demoaccessing service metadata( including httpbitlyodataVisualizer )

operations

specification also deals with

client service

GET

including MIME types for ATOMJSONincluding partial lists

including protocol versioning

client service

POST

including creating links

client service

PUT

maintaining linksMERGE also applicable here

concurrency checking via ETagstunnelling over POST

client service

DELETE

maintaining linksconcurrency checking via ETags

tunnelling over POST

client service

INVOKE

batching

optimise round trips to the serverbe more ldquotransactionalrdquo

client service

GET Titles

GET People

POST People(lsquoTom Cruisersquo)

$BatchPOST

(multipart MIME)

RESPONSE(multipart MIME)

specification -gt implementation

OData on the serverCustom via WCF Data ServicesSharePoint 2010SQL AzureAzure Table StorageSQL Reporting ServicesIBM WebSphere

Host (IIS or self-hosted)

WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )

configbull AcceptCountRequestsbull AcceptProjectionRequestsbull MaxProtocolVersionbull MaxBatchCountbull MaxChangesetCountbull MaxExpandDepthbull MaxObjectCountOnInsertbull MaxResultsPerCollectionbull EntitySetAccessRulebull EntitySetPageSizebull ServiceOperationAccessRule

WCF DataService

Serv

ice

Ope

ratio

ns

Inte

rcep

tors

Que

ryU

pdat

e

Custom Data( dynamically defined )

CustomProvider

Entity FrameworkModel

Entity Framework

Provider

LINQ to SQLModel

Custom ObjectModelReflection

Provider + IUpdatable

Entit

y Se

ts

IDataServiceMetadataProvider

IDataServiceQueryProvider

IDataServiceUpdateProvider

IDataServiceStreamProvider

IDataServicePagingProvider

demobuilding an OData service

OData on the clientNET ndash desktop server Silverlight Windows Phone 7JavascriptiPhone (Objective C)JavaPHPRuby

demobuilding an OData client

more

wwwodataorg or to see the website in odataservicesodataorgwebsiteodatasvc

copy 2010 Microsoft Corporation All rights reserved Microsoft Windows Windows Vista and other product names are or may be registered trademarks andor trademarks in the US andor other countriesThe 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

  • The Open Data Protocol (OData)
  • Slide 2
  • client WLTM service for RESTful interactions
  • client WLTM service for RESTful interactions (2)
  • key points involved here
  • ready to build
  • Slide 7
  • OData
  • itrsquos the usual ldquobuild or buyrdquo trade-off
  • OData Basics
  • quick exploration of an OData service
  • OData URIs and Querying
  • filters
  • querying OData services
  • service metadata
  • accessing service metadata ( including httpbitlyodataVisua
  • operations
  • batching
  • Slide 19
  • Slide 20
  • WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )
  • building an OData service
  • Slide 23
  • building an OData client
  • more
  • Slide 26
Page 16: Mike Taulty OData (NxtGen User Group UK)

demoaccessing service metadata( including httpbitlyodataVisualizer )

operations

specification also deals with

client service

GET

including MIME types for ATOMJSONincluding partial lists

including protocol versioning

client service

POST

including creating links

client service

PUT

maintaining linksMERGE also applicable here

concurrency checking via ETagstunnelling over POST

client service

DELETE

maintaining linksconcurrency checking via ETags

tunnelling over POST

client service

INVOKE

batching

optimise round trips to the serverbe more ldquotransactionalrdquo

client service

GET Titles

GET People

POST People(lsquoTom Cruisersquo)

$BatchPOST

(multipart MIME)

RESPONSE(multipart MIME)

specification -gt implementation

OData on the serverCustom via WCF Data ServicesSharePoint 2010SQL AzureAzure Table StorageSQL Reporting ServicesIBM WebSphere

Host (IIS or self-hosted)

WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )

configbull AcceptCountRequestsbull AcceptProjectionRequestsbull MaxProtocolVersionbull MaxBatchCountbull MaxChangesetCountbull MaxExpandDepthbull MaxObjectCountOnInsertbull MaxResultsPerCollectionbull EntitySetAccessRulebull EntitySetPageSizebull ServiceOperationAccessRule

WCF DataService

Serv

ice

Ope

ratio

ns

Inte

rcep

tors

Que

ryU

pdat

e

Custom Data( dynamically defined )

CustomProvider

Entity FrameworkModel

Entity Framework

Provider

LINQ to SQLModel

Custom ObjectModelReflection

Provider + IUpdatable

Entit

y Se

ts

IDataServiceMetadataProvider

IDataServiceQueryProvider

IDataServiceUpdateProvider

IDataServiceStreamProvider

IDataServicePagingProvider

demobuilding an OData service

OData on the clientNET ndash desktop server Silverlight Windows Phone 7JavascriptiPhone (Objective C)JavaPHPRuby

demobuilding an OData client

more

wwwodataorg or to see the website in odataservicesodataorgwebsiteodatasvc

copy 2010 Microsoft Corporation All rights reserved Microsoft Windows Windows Vista and other product names are or may be registered trademarks andor trademarks in the US andor other countriesThe 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

  • The Open Data Protocol (OData)
  • Slide 2
  • client WLTM service for RESTful interactions
  • client WLTM service for RESTful interactions (2)
  • key points involved here
  • ready to build
  • Slide 7
  • OData
  • itrsquos the usual ldquobuild or buyrdquo trade-off
  • OData Basics
  • quick exploration of an OData service
  • OData URIs and Querying
  • filters
  • querying OData services
  • service metadata
  • accessing service metadata ( including httpbitlyodataVisua
  • operations
  • batching
  • Slide 19
  • Slide 20
  • WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )
  • building an OData service
  • Slide 23
  • building an OData client
  • more
  • Slide 26
Page 17: Mike Taulty OData (NxtGen User Group UK)

operations

specification also deals with

client service

GET

including MIME types for ATOMJSONincluding partial lists

including protocol versioning

client service

POST

including creating links

client service

PUT

maintaining linksMERGE also applicable here

concurrency checking via ETagstunnelling over POST

client service

DELETE

maintaining linksconcurrency checking via ETags

tunnelling over POST

client service

INVOKE

batching

optimise round trips to the serverbe more ldquotransactionalrdquo

client service

GET Titles

GET People

POST People(lsquoTom Cruisersquo)

$BatchPOST

(multipart MIME)

RESPONSE(multipart MIME)

specification -gt implementation

OData on the serverCustom via WCF Data ServicesSharePoint 2010SQL AzureAzure Table StorageSQL Reporting ServicesIBM WebSphere

Host (IIS or self-hosted)

WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )

configbull AcceptCountRequestsbull AcceptProjectionRequestsbull MaxProtocolVersionbull MaxBatchCountbull MaxChangesetCountbull MaxExpandDepthbull MaxObjectCountOnInsertbull MaxResultsPerCollectionbull EntitySetAccessRulebull EntitySetPageSizebull ServiceOperationAccessRule

WCF DataService

Serv

ice

Ope

ratio

ns

Inte

rcep

tors

Que

ryU

pdat

e

Custom Data( dynamically defined )

CustomProvider

Entity FrameworkModel

Entity Framework

Provider

LINQ to SQLModel

Custom ObjectModelReflection

Provider + IUpdatable

Entit

y Se

ts

IDataServiceMetadataProvider

IDataServiceQueryProvider

IDataServiceUpdateProvider

IDataServiceStreamProvider

IDataServicePagingProvider

demobuilding an OData service

OData on the clientNET ndash desktop server Silverlight Windows Phone 7JavascriptiPhone (Objective C)JavaPHPRuby

demobuilding an OData client

more

wwwodataorg or to see the website in odataservicesodataorgwebsiteodatasvc

copy 2010 Microsoft Corporation All rights reserved Microsoft Windows Windows Vista and other product names are or may be registered trademarks andor trademarks in the US andor other countriesThe 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

  • The Open Data Protocol (OData)
  • Slide 2
  • client WLTM service for RESTful interactions
  • client WLTM service for RESTful interactions (2)
  • key points involved here
  • ready to build
  • Slide 7
  • OData
  • itrsquos the usual ldquobuild or buyrdquo trade-off
  • OData Basics
  • quick exploration of an OData service
  • OData URIs and Querying
  • filters
  • querying OData services
  • service metadata
  • accessing service metadata ( including httpbitlyodataVisua
  • operations
  • batching
  • Slide 19
  • Slide 20
  • WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )
  • building an OData service
  • Slide 23
  • building an OData client
  • more
  • Slide 26
Page 18: Mike Taulty OData (NxtGen User Group UK)

batching

optimise round trips to the serverbe more ldquotransactionalrdquo

client service

GET Titles

GET People

POST People(lsquoTom Cruisersquo)

$BatchPOST

(multipart MIME)

RESPONSE(multipart MIME)

specification -gt implementation

OData on the serverCustom via WCF Data ServicesSharePoint 2010SQL AzureAzure Table StorageSQL Reporting ServicesIBM WebSphere

Host (IIS or self-hosted)

WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )

configbull AcceptCountRequestsbull AcceptProjectionRequestsbull MaxProtocolVersionbull MaxBatchCountbull MaxChangesetCountbull MaxExpandDepthbull MaxObjectCountOnInsertbull MaxResultsPerCollectionbull EntitySetAccessRulebull EntitySetPageSizebull ServiceOperationAccessRule

WCF DataService

Serv

ice

Ope

ratio

ns

Inte

rcep

tors

Que

ryU

pdat

e

Custom Data( dynamically defined )

CustomProvider

Entity FrameworkModel

Entity Framework

Provider

LINQ to SQLModel

Custom ObjectModelReflection

Provider + IUpdatable

Entit

y Se

ts

IDataServiceMetadataProvider

IDataServiceQueryProvider

IDataServiceUpdateProvider

IDataServiceStreamProvider

IDataServicePagingProvider

demobuilding an OData service

OData on the clientNET ndash desktop server Silverlight Windows Phone 7JavascriptiPhone (Objective C)JavaPHPRuby

demobuilding an OData client

more

wwwodataorg or to see the website in odataservicesodataorgwebsiteodatasvc

copy 2010 Microsoft Corporation All rights reserved Microsoft Windows Windows Vista and other product names are or may be registered trademarks andor trademarks in the US andor other countriesThe 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

  • The Open Data Protocol (OData)
  • Slide 2
  • client WLTM service for RESTful interactions
  • client WLTM service for RESTful interactions (2)
  • key points involved here
  • ready to build
  • Slide 7
  • OData
  • itrsquos the usual ldquobuild or buyrdquo trade-off
  • OData Basics
  • quick exploration of an OData service
  • OData URIs and Querying
  • filters
  • querying OData services
  • service metadata
  • accessing service metadata ( including httpbitlyodataVisua
  • operations
  • batching
  • Slide 19
  • Slide 20
  • WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )
  • building an OData service
  • Slide 23
  • building an OData client
  • more
  • Slide 26
Page 19: Mike Taulty OData (NxtGen User Group UK)

specification -gt implementation

OData on the serverCustom via WCF Data ServicesSharePoint 2010SQL AzureAzure Table StorageSQL Reporting ServicesIBM WebSphere

Host (IIS or self-hosted)

WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )

configbull AcceptCountRequestsbull AcceptProjectionRequestsbull MaxProtocolVersionbull MaxBatchCountbull MaxChangesetCountbull MaxExpandDepthbull MaxObjectCountOnInsertbull MaxResultsPerCollectionbull EntitySetAccessRulebull EntitySetPageSizebull ServiceOperationAccessRule

WCF DataService

Serv

ice

Ope

ratio

ns

Inte

rcep

tors

Que

ryU

pdat

e

Custom Data( dynamically defined )

CustomProvider

Entity FrameworkModel

Entity Framework

Provider

LINQ to SQLModel

Custom ObjectModelReflection

Provider + IUpdatable

Entit

y Se

ts

IDataServiceMetadataProvider

IDataServiceQueryProvider

IDataServiceUpdateProvider

IDataServiceStreamProvider

IDataServicePagingProvider

demobuilding an OData service

OData on the clientNET ndash desktop server Silverlight Windows Phone 7JavascriptiPhone (Objective C)JavaPHPRuby

demobuilding an OData client

more

wwwodataorg or to see the website in odataservicesodataorgwebsiteodatasvc

copy 2010 Microsoft Corporation All rights reserved Microsoft Windows Windows Vista and other product names are or may be registered trademarks andor trademarks in the US andor other countriesThe 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

  • The Open Data Protocol (OData)
  • Slide 2
  • client WLTM service for RESTful interactions
  • client WLTM service for RESTful interactions (2)
  • key points involved here
  • ready to build
  • Slide 7
  • OData
  • itrsquos the usual ldquobuild or buyrdquo trade-off
  • OData Basics
  • quick exploration of an OData service
  • OData URIs and Querying
  • filters
  • querying OData services
  • service metadata
  • accessing service metadata ( including httpbitlyodataVisua
  • operations
  • batching
  • Slide 19
  • Slide 20
  • WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )
  • building an OData service
  • Slide 23
  • building an OData client
  • more
  • Slide 26
Page 20: Mike Taulty OData (NxtGen User Group UK)

OData on the serverCustom via WCF Data ServicesSharePoint 2010SQL AzureAzure Table StorageSQL Reporting ServicesIBM WebSphere

Host (IIS or self-hosted)

WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )

configbull AcceptCountRequestsbull AcceptProjectionRequestsbull MaxProtocolVersionbull MaxBatchCountbull MaxChangesetCountbull MaxExpandDepthbull MaxObjectCountOnInsertbull MaxResultsPerCollectionbull EntitySetAccessRulebull EntitySetPageSizebull ServiceOperationAccessRule

WCF DataService

Serv

ice

Ope

ratio

ns

Inte

rcep

tors

Que

ryU

pdat

e

Custom Data( dynamically defined )

CustomProvider

Entity FrameworkModel

Entity Framework

Provider

LINQ to SQLModel

Custom ObjectModelReflection

Provider + IUpdatable

Entit

y Se

ts

IDataServiceMetadataProvider

IDataServiceQueryProvider

IDataServiceUpdateProvider

IDataServiceStreamProvider

IDataServicePagingProvider

demobuilding an OData service

OData on the clientNET ndash desktop server Silverlight Windows Phone 7JavascriptiPhone (Objective C)JavaPHPRuby

demobuilding an OData client

more

wwwodataorg or to see the website in odataservicesodataorgwebsiteodatasvc

copy 2010 Microsoft Corporation All rights reserved Microsoft Windows Windows Vista and other product names are or may be registered trademarks andor trademarks in the US andor other countriesThe 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

  • The Open Data Protocol (OData)
  • Slide 2
  • client WLTM service for RESTful interactions
  • client WLTM service for RESTful interactions (2)
  • key points involved here
  • ready to build
  • Slide 7
  • OData
  • itrsquos the usual ldquobuild or buyrdquo trade-off
  • OData Basics
  • quick exploration of an OData service
  • OData URIs and Querying
  • filters
  • querying OData services
  • service metadata
  • accessing service metadata ( including httpbitlyodataVisua
  • operations
  • batching
  • Slide 19
  • Slide 20
  • WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )
  • building an OData service
  • Slide 23
  • building an OData client
  • more
  • Slide 26
Page 21: Mike Taulty OData (NxtGen User Group UK)

Host (IIS or self-hosted)

WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )

configbull AcceptCountRequestsbull AcceptProjectionRequestsbull MaxProtocolVersionbull MaxBatchCountbull MaxChangesetCountbull MaxExpandDepthbull MaxObjectCountOnInsertbull MaxResultsPerCollectionbull EntitySetAccessRulebull EntitySetPageSizebull ServiceOperationAccessRule

WCF DataService

Serv

ice

Ope

ratio

ns

Inte

rcep

tors

Que

ryU

pdat

e

Custom Data( dynamically defined )

CustomProvider

Entity FrameworkModel

Entity Framework

Provider

LINQ to SQLModel

Custom ObjectModelReflection

Provider + IUpdatable

Entit

y Se

ts

IDataServiceMetadataProvider

IDataServiceQueryProvider

IDataServiceUpdateProvider

IDataServiceStreamProvider

IDataServicePagingProvider

demobuilding an OData service

OData on the clientNET ndash desktop server Silverlight Windows Phone 7JavascriptiPhone (Objective C)JavaPHPRuby

demobuilding an OData client

more

wwwodataorg or to see the website in odataservicesodataorgwebsiteodatasvc

copy 2010 Microsoft Corporation All rights reserved Microsoft Windows Windows Vista and other product names are or may be registered trademarks andor trademarks in the US andor other countriesThe 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

  • The Open Data Protocol (OData)
  • Slide 2
  • client WLTM service for RESTful interactions
  • client WLTM service for RESTful interactions (2)
  • key points involved here
  • ready to build
  • Slide 7
  • OData
  • itrsquos the usual ldquobuild or buyrdquo trade-off
  • OData Basics
  • quick exploration of an OData service
  • OData URIs and Querying
  • filters
  • querying OData services
  • service metadata
  • accessing service metadata ( including httpbitlyodataVisua
  • operations
  • batching
  • Slide 19
  • Slide 20
  • WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )
  • building an OData service
  • Slide 23
  • building an OData client
  • more
  • Slide 26
Page 22: Mike Taulty OData (NxtGen User Group UK)

demobuilding an OData service

OData on the clientNET ndash desktop server Silverlight Windows Phone 7JavascriptiPhone (Objective C)JavaPHPRuby

demobuilding an OData client

more

wwwodataorg or to see the website in odataservicesodataorgwebsiteodatasvc

copy 2010 Microsoft Corporation All rights reserved Microsoft Windows Windows Vista and other product names are or may be registered trademarks andor trademarks in the US andor other countriesThe 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

  • The Open Data Protocol (OData)
  • Slide 2
  • client WLTM service for RESTful interactions
  • client WLTM service for RESTful interactions (2)
  • key points involved here
  • ready to build
  • Slide 7
  • OData
  • itrsquos the usual ldquobuild or buyrdquo trade-off
  • OData Basics
  • quick exploration of an OData service
  • OData URIs and Querying
  • filters
  • querying OData services
  • service metadata
  • accessing service metadata ( including httpbitlyodataVisua
  • operations
  • batching
  • Slide 19
  • Slide 20
  • WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )
  • building an OData service
  • Slide 23
  • building an OData client
  • more
  • Slide 26
Page 23: Mike Taulty OData (NxtGen User Group UK)

OData on the clientNET ndash desktop server Silverlight Windows Phone 7JavascriptiPhone (Objective C)JavaPHPRuby

demobuilding an OData client

more

wwwodataorg or to see the website in odataservicesodataorgwebsiteodatasvc

copy 2010 Microsoft Corporation All rights reserved Microsoft Windows Windows Vista and other product names are or may be registered trademarks andor trademarks in the US andor other countriesThe 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

  • The Open Data Protocol (OData)
  • Slide 2
  • client WLTM service for RESTful interactions
  • client WLTM service for RESTful interactions (2)
  • key points involved here
  • ready to build
  • Slide 7
  • OData
  • itrsquos the usual ldquobuild or buyrdquo trade-off
  • OData Basics
  • quick exploration of an OData service
  • OData URIs and Querying
  • filters
  • querying OData services
  • service metadata
  • accessing service metadata ( including httpbitlyodataVisua
  • operations
  • batching
  • Slide 19
  • Slide 20
  • WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )
  • building an OData service
  • Slide 23
  • building an OData client
  • more
  • Slide 26
Page 24: Mike Taulty OData (NxtGen User Group UK)

demobuilding an OData client

more

wwwodataorg or to see the website in odataservicesodataorgwebsiteodatasvc

copy 2010 Microsoft Corporation All rights reserved Microsoft Windows Windows Vista and other product names are or may be registered trademarks andor trademarks in the US andor other countriesThe 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

  • The Open Data Protocol (OData)
  • Slide 2
  • client WLTM service for RESTful interactions
  • client WLTM service for RESTful interactions (2)
  • key points involved here
  • ready to build
  • Slide 7
  • OData
  • itrsquos the usual ldquobuild or buyrdquo trade-off
  • OData Basics
  • quick exploration of an OData service
  • OData URIs and Querying
  • filters
  • querying OData services
  • service metadata
  • accessing service metadata ( including httpbitlyodataVisua
  • operations
  • batching
  • Slide 19
  • Slide 20
  • WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )
  • building an OData service
  • Slide 23
  • building an OData client
  • more
  • Slide 26
Page 25: Mike Taulty OData (NxtGen User Group UK)

more

wwwodataorg or to see the website in odataservicesodataorgwebsiteodatasvc

copy 2010 Microsoft Corporation All rights reserved Microsoft Windows Windows Vista and other product names are or may be registered trademarks andor trademarks in the US andor other countriesThe 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

  • The Open Data Protocol (OData)
  • Slide 2
  • client WLTM service for RESTful interactions
  • client WLTM service for RESTful interactions (2)
  • key points involved here
  • ready to build
  • Slide 7
  • OData
  • itrsquos the usual ldquobuild or buyrdquo trade-off
  • OData Basics
  • quick exploration of an OData service
  • OData URIs and Querying
  • filters
  • querying OData services
  • service metadata
  • accessing service metadata ( including httpbitlyodataVisua
  • operations
  • batching
  • Slide 19
  • Slide 20
  • WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )
  • building an OData service
  • Slide 23
  • building an OData client
  • more
  • Slide 26
Page 26: Mike Taulty OData (NxtGen User Group UK)

copy 2010 Microsoft Corporation All rights reserved Microsoft Windows Windows Vista and other product names are or may be registered trademarks andor trademarks in the US andor other countriesThe 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

  • The Open Data Protocol (OData)
  • Slide 2
  • client WLTM service for RESTful interactions
  • client WLTM service for RESTful interactions (2)
  • key points involved here
  • ready to build
  • Slide 7
  • OData
  • itrsquos the usual ldquobuild or buyrdquo trade-off
  • OData Basics
  • quick exploration of an OData service
  • OData URIs and Querying
  • filters
  • querying OData services
  • service metadata
  • accessing service metadata ( including httpbitlyodataVisua
  • operations
  • batching
  • Slide 19
  • Slide 20
  • WCF Data Services ( ADONET Data Services or lsquoAstoriarsquo )
  • building an OData service
  • Slide 23
  • building an OData client
  • more
  • Slide 26

Recommended