14
Implementing OData: Create a User Group Event Feed Chris Dufour, ASP MVP Software Architect, Compuware [email protected] Twitter: chrduf

Implementing OData: Create a UG Event Feed

Embed Size (px)

DESCRIPTION

The Open Data Protocol (OData) is a Web protocol for querying and updating data that provides a way to unlock your data and free it from silos that exist in applications today. OData does this by applying and building upon Web technologies such as HTTP, Atom Publishing Protocol (AtomPub) and JSON to provide access to information from a variety of applications, services, and stores. The protocol emerged from experiences implementing AtomPub clients and servers in a variety of products over the past several years. OData is being used to expose and access information from a variety of sources including, but not limited to, relational databases, file systems, content management systems and traditional Web sites. In this session we will build out a basic OData feed for the East of Toronto .NET User Group events that will be utilized in our future website. In the coming months we will build upon these services to expose our events in various ways.

Citation preview

Page 1: Implementing OData: Create a UG Event Feed

Implementing OData:Create a User Group Event Feed

Chris Dufour, ASP MVPSoftware Architect, Compuware

[email protected]: chrduf

Page 2: Implementing OData: Create a UG Event Feed

Agenda

What is “Open Data”?What is the “Open Data Protocol”?How is any of this useful/interesting?Build an OData serviceConsume OData using Jquery and code

behind

Page 3: Implementing OData: Create a UG Event Feed

What is Open Data

“Open Data” is data that is made available to anyone*, in a standard, easily consumable way

Page 4: Implementing OData: Create a UG Event Feed

Why is this useful?

1. Great ideas require great data2. Data in non-open forms can (and most

likely will) create more friction than good

Page 5: Implementing OData: Create a UG Event Feed

1. Great ideas require great data

The Top 5 iPhone Apps of 2009 need data…1. Tweetie 22. Yelp3. Slacker (video streaming)4. FlightTrack Pro5. Mint

Page 6: Implementing OData: Create a UG Event Feed
Page 7: Implementing OData: Create a UG Event Feed

Windows

iPhone

Browser

Windows Phone

Services powering Experiences

Silverlight

Web Site

Web API

webOS

Page 8: Implementing OData: Create a UG Event Feed

2. Data in non-open forms can (and most likely will) create more friction than good

“…good data management can generate good science, and bad data management can inhibit the process of scientific discovery.” - Ray P. Norris

Page 9: Implementing OData: Create a UG Event Feed

How does this encourage productivity?

Page 10: Implementing OData: Create a UG Event Feed

Why the Web Works

Simple and open◦Addressing scheme – URI◦Application protocol – HTTP◦Representation Format – (X)HTML◦Response codes – HTTP status

Scales best when ◦Stateless◦Cached

It works because people find value in it

Page 11: Implementing OData: Create a UG Event Feed

The Web of Services should work the way the Web of Pages works

Page 12: Implementing OData: Create a UG Event Feed

OData Just HTTP

◦ Data as resources, HTTP methods to act on it

◦ Leverage caching, proxies, authentication, …

Uniform way of representing structured data◦ Atom (full AtomPub protocol support), JSON

Uniform URL conventions◦ Navigation, filtering, sorting, paging, etc.

Uniform operations◦ Every piece of information is

addressable◦ GET, POST, PUT, DELETE always mean

the same

Page 13: Implementing OData: Create a UG Event Feed

Demo

Expose UG Event Data

Page 14: Implementing OData: Create a UG Event Feed

ResourcesOpen data protocol – OData

◦ http://www.odata.org/OData Explorer

◦ http://silverlight.net/ODataExplorer/LinQPad

◦ http://www.linqpad.net/Beta.aspxJSONP and URL-controlled format support

◦ http://code.msdn.microsoft.com/DataServicesJSONPjQuery Templates plugin (jquery-tmpl)

◦ http://weblogs.asp.net/scottgu/archive/2010/10/04/jquery-templates-data-link-and-globalization-accepted-as-official-jquery-plugins.aspx

◦ http://api.jquery.com/category/plugins/templates/