Date post: | 27-Jan-2015 |
Category: |
Technology |
Upload: | ukdpe |
View: | 111 times |
Download: | 0 times |
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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