This document discusses connecting to data from Windows Phone 8 applications. It covers using REST web services and the Open Data Protocol (OData) to access and query data from backend services. It demonstrates consuming OData services and Azure Mobile Services in Windows Phone apps. The document provides an overview of REST, OData, best practices for OData producers and consumers, and includes code demos of connecting Windows Phone apps to OData and Azure Mobile Services.
How to Troubleshoot Apps for the Modern Connected Worker
Connecting to Data from Windows Phone 8 with REST and OData
1. Connecting to Data from
Windows Phone 8
Chris Woodruff
Director, Perficient
Level: Intermediate to Advanced
2. Who I am?
Chris Woodruff
MVP, Visual C#
Director at Perficient
Co-host of Deep Fried Bytes Podcast
@cwoodruff / cwoodruff@live.com / Skype: cwoodruff
3. You will learn:
• Understand the benefits of using REST web services for
your mobile apps
• Have an understanding to develop solutions against
OData that will give better experiences for your users
• How to shape your data queries to give the best
performance for your mobile apps
• A glimpse into using Windows Azure Mobile Services to
also get to your data in the cloud.
5. • REST is an architectural style for distributed
hypermedia systems
• REpresentational State Transfer
• The term originated in 2000 by Roy Fielding for his
PhD thesis
• REST states that the existing protocols and principles
of the web are enough to create robust Web Services
– no SOAP is needed
What is REST?
6. What does REST consist of?
REST is a very simple architecture:
• Application state and functionality is divided into
resources.
• Every resource is uniquely addressable using a universal
syntax for hypermedia links
• All resources share a uniform interface for the transfer of
state between a client and a resource
7. What does REST consist of?
Characteristics of REST
• Client–server
• Stateless
• Cacheable
• Uniform Interface
• Named Resources
• Interconnected Resource
Representations
• Layered System
Operations of REST
• GET
• POST
• PUT
• DELETE
8. Example of REST
Query a Resource
http://www.parts-depot.com/parts/getPart?id=00345
http://www.parts-depot.com/parts/00345
http://restbucks.com/PlaceOrder?coffee={type}&size={size}&milk=
{milk}&location={location}
10. Open Data Protocol (OData)
• “RESTful” Web protocol
• Designed to work with data across HTTP
• Built on existing Web standards
• Uses popular formats to return data payloads to
consumer
• Uses self-describing metadata
• Has multiple options to build implementation based on
standard protocol
• Soon to be a full web standard
11. The Basics
• Feeds, which are Collections of typed Entries
• OData services can expose Service Operations
• OData services expose all these constructs via
URIs
• OData service may also expose a Service
Metadata Document
12. Full SQL like Query “Language”
HTTP Command
(Verb)
SQL
Command
GET SELECT
PUT UPDATE
POST INSERT
DELETE DELETE
14. OData Best Practices (Producer)
• Always design your OData feed will server-side paging if
your entity collections hold large amounts of data.
• Looks at server-side validation of queries and data
updates based on the user credentials sent through HTTP
18. OData Best Practices (Consumer)
• Use Query Projection to only bring back the entity
properties you or your app needs.
• Think about client-side paging even if their exists server-
side paging.
• Design and implement a client-side data caching function
in your app (unless sensitive data).
23. Contact Me
Chris “Woody” Woodruff
cwoodruff@live.com
Twitter @cwoodruff
Skype cwoodruff
http://chriswoodruff.com
http://deepfriedbytes.com
Editor's Notes
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.
Client-Server: a pull-based interaction style: consuming components pull representations.Stateless: each request from client to server must contain all the information necessary to understand the request, and cannot take advantage of any stored context on the server.Cache: to improve network efficiency responses must be capable of being labeled as cacheable or non-cacheable.Uniform interface: all resources are accessed with a generic interface (e.g., HTTP GET, POST, PUT, DELETE).Named resources - the system is comprised of resources which are named using a URL.Interconnected resource representations - the representations of the resources are interconnected using URLs, thereby enabling a client to progress from one state to another.Layered components - intermediaries, such as proxy servers, cache servers, gateways, etc, can be inserted between clients and resources to support performance, security, etc.