rest json and rss with windows communication foundation 3 5
Download
Skip this Video
Download Presentation
REST, JSON and RSS with Windows Communication Foundation 3.5

Loading in 2 Seconds...

play fullscreen
1 / 29

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


  • 51 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' REST, JSON and RSS with Windows Communication Foundation 3.5' - melvin-nichols


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
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
slide3
WCF Overview

JSON Services

HTTP Programming Model

Syndication

Agenda

slide4
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)

slide8
WCF Overview

JSON Services

HTTP Programming Model

Syndication

Agenda

slide9
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);

slide10
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

slide12
WCF Overview

JSON Services

HTTP Programming Model

Syndication

Agenda

slide13
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)

slide14

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}

slide15
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

slide16

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”];

slide17
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);

slide18
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);

slide19
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

slide20
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;

}

slide21
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

slide23
Level-set

JSON Services

HTTP Programming Model

Syndication

Agenda

slide24
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

slide25
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

slide26

Syndication Contracts in WCF

[ServiceKnownType(typeof(Atom10FeedFormatter))]

[ServiceKnownType(typeof(Rss20FeedFormatter))]

[ServiceContract]

interface IAlbumSyndication {

[OperationContract]

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

SyndicationFeedFormatter<SyndicationFeed>

Feed(String format);

}

slide28
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
ad