Rest json and rss with windows communication foundation 3 5
This presentation is the property of its rightful owner.
Sponsored Links
1 / 29

REST, JSON and RSS with Windows Communication Foundation 3.5 PowerPoint PPT Presentation


  • 36 Views
  • Uploaded on
  • Presentation posted in: General

REST, JSON and RSS with Windows Communication Foundation 3.5. Rob Windsor ObjectSharp Consulting [email protected] Me.About. Visual Basic MVP Senior Consultant with ObjectSharp Consulting President of the Toronto Visual Basic User Group Member of the MSDN Canada Speakers Bureau

Download Presentation

REST, JSON and RSS with Windows Communication Foundation 3.5

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Rest json and rss with windows communication foundation 3 5

REST, JSON and RSS with Windows Communication Foundation 3.5

Rob Windsor

ObjectSharp Consulting

[email protected]


Me about

Me.About

  • Visual Basic MVP

  • Senior Consultant with ObjectSharp Consulting

  • President of the Toronto Visual Basic User Group

  • Member of the MSDN Canada Speakers Bureau

  • Contact me via my blog

    • http://msmvps.com/windsor


Rest json and rss with windows communication foundation 3 5

WCF Overview

JSON Services

HTTP Programming Model

Syndication

Agenda


Rest json and rss with windows communication foundation 3 5

One-stop-shop for services

Consistent object model

First released with .NET Framework 3.0

Focus on the functionality, WCF takes care of the plumbing

Windows Communication Foundation


The abcs of wcf

C

C

C

B

B

B

A

A

A

The ABCs of WCF

Client

Service

Message

Address

Binding

Contract

(Where)

(How)

(What)


Wcf standard bindings

WCF Standard Bindings


Wcf services

WCF Services


Rest json and rss with windows communication foundation 3 5

WCF Overview

JSON Services

HTTP Programming Model

Syndication

Agenda


Rest json and rss with windows communication foundation 3 5

JavaScript Object Notation

Format for bridging JavaScript and objects

Easier for browsers than XML

ASP.NET AJAX & other AJAX toolkits use it

Other web-aware clients also (Silverlight, etc.)

What is JSON?

var data = {“temp” : 59, “descr” : “cloudy”};

document.write (“The weather is “ + data.descr);


Rest json and rss with windows communication foundation 3 5

WCF AJAX support in Visual Studio

Script manager, VS Project Templates

WCF automatically generates JS proxy

Usage pattern similar to existing one:

Add service to Script Manager control

Write JavaScript code to work with proxy

Configuration not required

Via the WebScriptServiceHostFactory (.svc file)

Works in ASP.NET Medium Trust!

WCF / AJAX Integration


Json services

JSON Services


Rest json and rss with windows communication foundation 3 5

WCF Overview

JSON Services

HTTP Programming Model

Syndication

Agenda


Rest json and rss with windows communication foundation 3 5

Embrace the URI

Segments map to application logic

HTTP GET is special

GET is idempotent (View It)

Multiple GETs to a URI should produce the same (or similar) results

PUT / POST / DELETE do “stuff” (Do It)

Content-type header is the data model

Image, XML, JSON, etc.

Web Concepts (REST)


Rest json and rss with windows communication foundation 3 5

The Web, the URI, and Apps

objectsharp.com/artists/Flaming+Hammer/HitMe

objectsharp.com/artists/Northwind/Overdone

objectsharp.com/artists/{artist}/{album}

objectsharp.com/artists/Flaming+Hammer?album=HitMe

objectsharp.com/artists/Northwind?album=Overdone

objectsharp.com/astists/{artist}?album={album}


Rest json and rss with windows communication foundation 3 5

System.UriTemplate

Type for modeling URI to application semantics

Can “bind” data to a template, output a URI

Can “match” a URI to a template, retrieve data

System.UriTemplateMatch

Returned from UriTemplate “match” operations

Can get relative paths and wildcard segments

System.UriTemplateTable

For “binding” a URI to a group of UriTemplates

Modeling a URI in .NET 3.5


Rest json and rss with windows communication foundation 3 5

Roundtrip Data in a URI

Uri address = new Uri(“http://localhost:2000”);

UriTemplate template =

new UriTemplate(“{artist}/{album}”);

Uri boundUri =

template.BindByPosition(address,

“Northwind”, “Overdone”);

UriTemplateMatch match = template.Match(address,

boundUri);

String bandName = match.BoundVariables[“artist”];


Rest json and rss with windows communication foundation 3 5

Simple URI-to-application mapping

URIs in WCF Contracts

[OperationContract]

[WebGet(UriTemplate=“/Image/{artist}/{album}”)]

Stream GetAlbumImage(String artist, String album);

[OperationContract]

[WebGet(UriTemplate=“/Image?name={artist})]

Stream GetMainImage(String artist);


Rest json and rss with windows communication foundation 3 5

All HTTP verbs are first class citizens

GET, POST, PUT, etc.

“View It” vs “Do It” separation mimics web

HTTP Verbs in WCF Contracts

[OperationContract]

[WebGet(UriTemplate=“/Image/{bandName}/{album}”)]

Stream GetAlbumImage(String bandName, String album);

[OperationContract]

[WebInvoke(METHOD=“PUT”)] // {PUT, POST, DELETE}

void AddAlbum(AlbumInfoalbumInfo);


Rest json and rss with windows communication foundation 3 5

HTTP headers can indicate

Accepted data formats (Request)

The format of the returned data (Response)

Common header names:

Accept (Request), Content-Type (Response)

Small sampling of varieties:

text/html, text/css,

image/gif, image/jpeg,

application/atom+xml, application/json,

video/mp4

Data Formats and the Web


Rest json and rss with windows communication foundation 3 5

WebOperationContext.Current provides access to incoming request headers

Can also set outgoing response headers

Some are shortcut for easier use

Specifying Data Format in WCF

Stream GetAlbumImage(String bandName, String album){

Stream stream; // get the image from somewhere

WebOperationContext.Current.OutgoingResponse.ContentType =

“image/jpeg”;

return stream;

}


Rest json and rss with windows communication foundation 3 5

WebHttpBinding endpoint on a ServiceHost

Add WebHttpBehavior to the endpoint

UseWebServiceHost/Factory in most cases

Web endpoints do not support WSDL

Works in ASP.NET Medium Trust!

Hosting / Binding


View it and do it

View It and Do It


Rest json and rss with windows communication foundation 3 5

Level-set

JSON Services

HTTP Programming Model

Syndication

Agenda


Rest json and rss with windows communication foundation 3 5

Syndications are more than news and blogs

Representation of any set of data

Usually slowly changing

Unified object model for RSS and Atom

SyndicationFeed / SyndicationItem

Feeds are service operations

Consume as a service or as document

Syndication Goals in .NET 3.5


Rest json and rss with windows communication foundation 3 5

Single stop for syndications

Create and Consume with or without WCF

Easy to use object model

Transport Agnostic

Supports syndication extensions

Format Agnostic

RSS 2.0 & ATOM 1.0, others possible

Works in ASP.NET Medium Trust!

Syndication in .NET Fx 3.5


Rest json and rss with windows communication foundation 3 5

Syndication Contracts in WCF

[ServiceKnownType(typeof(Atom10FeedFormatter))]

[ServiceKnownType(typeof(Rss20FeedFormatter))]

[ServiceContract]

interface IAlbumSyndication {

[OperationContract]

[WebGet(UriTemplate=“Images/{format}")]

SyndicationFeedFormatter<SyndicationFeed>

Feed(String format);

}


Syndication with pictureservices

Syndication with PictureServices


Rest json and rss with windows communication foundation 3 5

Simple HTTP service development

SOAP and POX from the same contract

JSON messaging capability

Simple syndication – really!

Web Centric Features in WCF 3.5

Built on WCF extensibility points from .NET 3.0


Resources

Resources

  • Microsoft WCF Community Site

    • http://wcf.netfx3.com/

  • PictureServices Samples

    • http://www.cloudsamples.net/pictureservices/

  • The EndPoint on Channel 9

    • http://channel9.msdn.com/shows/The_EndPoint

  • Justin Smith’s Blog

    • http://blogs.msdn.com/justinjsmith/

  • Steve Maine’s Blog

    • http://hyperthink.net/blog/

  • Getting Started with WCF

    • http://msdn2.microsoft.com/en-us/vbasic/bb736015.aspx


  • Login