Mike Taulty OData (NxtGen User Group UK)

Post on 27-Jan-2015

111 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Slides from a talk I did on OData at the NxtGen User Group in the UK.

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