OData for iOS developers
Upcoming SlideShare
Loading in...5

Like this? Share it with your network


OData for iOS developers



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



Total Views
Views on SlideShare
Embed Views



3 Embeds 458

http://blogs.msdn.com 455
http://www.7388.info 2
http://7388.info 1



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment
  • 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.

OData for iOS developers Presentation Transcript

  • 1. OData: A primer for iOS developers
    Glen Gordon
    Developer Evangelist
    Microsoft Corporation
  • 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
  • 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
    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.
  • 13. http://services.odata.org/OData/OData.svc
    service root URI
    _______________________________________/ __________________/ _________________/
    | | |
    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
    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"
    } }
  • 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
    Build your own
  • 24. OData Services
    Windows Live
    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
    Windows Phone 7
    iOS (Objective C)
  • 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
    • 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
    • Excel + PowerPivot
    • 41. LINQPad
    • 42. OData Explorer
    Client libraries
    • .NET
    • 43. Silverlight
    • 44. Windows Phone 7 Series
    • 45. Javascript
    • 46. Java
    • 47. Objective-C
    • 48. PHP
  • 49. OData and iOS
  • 50. OData and iOS
    http requests
    Parse XML or JSON
    Use the OData Client for Objective-C
  • 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.