Your SlideShare is downloading. ×
0
OData for iOS developers
OData for iOS developers
OData for iOS developers
OData for iOS developers
OData for iOS developers
OData for iOS developers
OData for iOS developers
OData for iOS developers
OData for iOS developers
OData for iOS developers
OData for iOS developers
OData for iOS developers
OData for iOS developers
OData for iOS developers
OData for iOS developers
OData for iOS developers
OData for iOS developers
OData for iOS developers
OData for iOS developers
OData for iOS developers
OData for iOS developers
OData for iOS developers
OData for iOS developers
OData for iOS developers
OData for iOS developers
OData for iOS developers
OData for iOS developers
OData for iOS developers
OData for iOS developers
OData for iOS developers
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

OData for iOS developers

4,741

Published on

An overview of OData delivered at the Atlanta iOS meetup 3/15/2011

An overview of OData delivered at the Atlanta iOS meetup 3/15/2011

Published in: Technology
0 Comments
7 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,741
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
81
Comments
0
Likes
7
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Representational State Transfer (REST) is defined as an architectural style, which means that it is not a concrete systems architecture, but instead a set of constraints that are applied when designing a systems architecture. We briefly discuss these constraints, but then focus on explaining how the Web is one such systems architecture that implements REST. In particular, the mechanisms of the Uniform Resource Identifiers (URIs), the Hypertext Transfer Protocol (HTTP), media types, and markup languages such as the Hypertext Markup Language (HTML) and the Extensible Markup Language (XML). We also introduce Atom and the Atom Publishing Protocol (AtomPub) as two established ways on how RESTful services are already provided and used on today's Web.
  • JSON (an acronym for JavaScript Object Notation) is a lightweight text-based open standard designed for human-readable data interchange. It is derived from the JavaScript programming language for representing simple data structures and associative arrays, called objects. Despite its relationship to JavaScript, it is language-independent, with parsers available for virtually every programming language.
  • Transcript

    • 1. OData: A primer for iOS developers
      Glen Gordon
      Developer Evangelist
      Microsoft Corporation
      http://glengordon.name
      @glengordon
    • 2. Who is this Microsoft guy?
      I support developer communities in GA, AL, MS
      I work with developers from all roles: enterprise, consultants, ISVs, students, startups, designers
      Lots of ways to interface with something Microsoft related
      .NET, PHP, JavaScript
      Silverlight, Windows Phone, iOS
      My goal is to make members of the community successful by introducing new technology or connecting people
    • 3. Agenda
      The case for OData
      A look at the format
      Producers, services and consumers
      Resources and tips
    • 4. why data services?
    • 5. break data silos
    • 6. == data sharing & integration
    • 7. Requirements for Web Data Services
      Web friendly, just plain HTTP
      Uniform patterns
      Focus on data, not on formats
      Stay high level, abstract the store
    • 8. data service != gateway to database
      service interface
      business logic
      store
    • 9. odata in 1 slide…
    • 10. OData
      Uniform way of representing structured data
      Atom, JSON formats
      Uniform URI conventions
      Navigation, filtering, sorting, paging, etc.
      Uniform operations
      Addressability
      GET, POST, PUT, DELETE always mean the same
    • 11. REST: 3 definitions
      An architectural style for building loosely coupled systems
      defined by a set of very general constraints (principles)
      the Web (URI/HTTP/HTML/XML) is an instance of this style
      The Web used correctly (i.e., not using the Web as transport)
      HTTP is built according to RESTful principles
      services are built on top of Web standards without misusing them
      most importantly, HTTP is an application protocol (not a transport protocol)
      Anything that uses HTTP and XML (XML without SOAP)
      XML-RPC was the first approach for this
      violates REST because there is no uniform interface
    • 12. The name Atom applies to a pair of related standards. The Atom Syndication Format is an XML language used for web feeds, while the Atom Publishing Protocol (AtomPub) is a simple HTTP-based protocol for creating and updating web resources.
      ATOMPub
    • 13. http://services.odata.org/OData/OData.svc
      _______________________________________/
      |
      service root URI
      http://services.odata.org/OData/OData.svc/Category(1)/Products?$top=2&$orderby=name
      _______________________________________/ __________________/ _________________/
      | | |
      service root URI resource path query options
      What is a URI?
    • 14. Full SQL like Query “Language”
    • 15. Addressing entities and sets
    • 16. Presentation options
    • 17. Query Options
    • 18. Filter Expressions
    • 19. Filter Methods
    • 20. Examples
      http://services.odata.org/OData.svc/GetProductsByRating?rating=5
      Identifies the "GetProductsByRating" Service Operation and specifies a value of 5 for the "rating" input parameter.
      Service Operations(Functions)
    • 21. { "d" : {
      "results": [
      {
      "__metadata": {
      "uri": "http://services.odata.org/OData/OData.svc/Categories(0)",
      "type": "DataServiceProviderDemo.Category"
      },
      "ID": 0,
      "Name": "Food",
      "Products": {
      "__deferred": {
      "uri": "http://services.odata.org/OData/OData.svc/Categories(0)/Products"
      }
      }
      },
      { /* another Category Entry */ },
      { /* another Category Entry */ },
      { /* another Category Entry */ }
      ],
      "__count": "3",
      "__next": "http://services.odata.org/OData/OData.svc$skiptoken=12"
      } }
      JSON
    • 22. Producers and Consumers
    • 23. OData Producers
      Windows Communication Foundation (WCF)
      SharePoint 2010
      IBM WebSphere
      SQL Azure
      Windows Azure Table Storage
      SQL Server Reporting Services
      Microsoft Dynamics CRM 2011
      GeoREST
      Build your own
    • 24. OData Services
      ebay
      Netflix
      Twitpic
      Windows Live
      NerdDinner
      Open Government Data Initiative
      Open Science Data Initiative
      Windows Azure Marketplace DataMarket
    • 25. OData Consumers – End Users
      Web Browsers
      Excel 2010
      OData Explorer
    • 26. OData Consumers – Client Libraries
      .NET
      Javascript
      PHP
      Java
      Windows Phone 7
      iOS (Objective C)
      Ruby
      Joomla
      Drupal
    • 27. Servers
      • WCF Data Services
      • 28. SharePoint 2010
      • 29. SQL Server Reporting Services 2008 R2
      • 30. SQL Azure
      • 31. IBM WebSphereeXtremeScale
      • 32. Microsoft Media Room
      • 33. WCF RIA Services
      Services
      • Netflix
      • 34. Mix 2010
      • 35. Nerd Dinner
      • 36. Vancouver’s vanGuide
      • 37. Open Government Data Initiative
      • 38. Open Science Data Initiative
      • 39. Microsoft Codename “Dallas”
      • 40. City of Edmonton
      http://odata.org/producers
      Clients
      Client libraries
      http://odata.org/consumers
    • 49. OData and iOS
    • 50. OData and iOS
      http requests
      Parse XML or JSON
      OR
      Use the OData Client for Objective-C
      http://odataobjc.codeplex.com/
    • 51. demos
    • 52. Resources
      All things OData: http://odata.org
      Email: glen.gordon@microsoft.com
      Blog: http://glengordon.name
      Data @ MSDN: http://msdn.com/data
    • 53. © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
      The 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.

    ×