Mike Taulty OData (NxtGen User Group UK)
Post on 27-Jan-2015
111 Views
Preview:
DESCRIPTION
Transcript
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
top related