Session Title

Download Report

Transcript Session Title

REST with Silverlight 5, WCF ASP.NET
Web API, and a little MVC 4
(AKA: Let’s see how many product names will fit in a session title)
(or, the live version of part of chapters 21 and 22 of Silverlight 5 in Action)
Pete Brown
Developer Community Program Manager, Microsoft
http://10rem.net, Twitter: @pete_brown,
[email protected]
Where to find help
 Our Community Sites




silverlight.net
windowsclient.net
asp.net
dev.windows.com
 MSDN: msdn.microsoft.com
 My Blog: 10rem.net
 Will include any updated source/examples
REST in a Nutshell
 REpresentational State Transfer
 Relies on verbs
 Primarily GET, PUT, POST, DELETE
 The architecture of the web
The 6 REST Constraints
Client-Server
A clear separation of concerns
Stateless
The server should not store any client context information between requests.
Each request is autonomous
Cacheable
Server indicates which content is cacheable, just as we do with pages and
images today
Layered
Client is not concerned with whether or not it is connected to a specific server,
a proxy, or something else
Code on-demand
Server can send logic to the client to execute. For example, Java applets or
Silverlight apps
Uniform interface
URIs. Self-descriptive messages (media types, cacheability, etc.)
What RESTful Services get you
 Instantly accessible to any client which can make web
requests
 No need for client proxies, stubs, envelopes and the other stuff
we have to deal with
 Especially important with the proliferation of connected
microcontrollers
 Cacheable using normal web-aware mechanisms
 Scalable for the same reason
 Flexible if you go with a full hypermedia approach
WCF ASP.NET Web API
 An API that supports you in building RESTful APIs
 Does not impose REST constraints
 Does not get in your way
 Architected to rely on and exploit HTTP fully, not just as
a generic transport
 Written by the WCF Team at Microsoft.
 Now available as part of ASP.NET MVC 4
This Example
Serves
Silverlight
Client
Uses
ASP.NET MVC
Data
ASP.NET Web API
Primarily focus on the Silverlight client and Web API Server.
Project
 Internal corporate application
 Shared across many divisions
 Control some, but not all, clients
 Goals and constraints
 Use RESTful approaches to make API available to as many clients as possible
 No fat Soap envelope
 No proprietary WCF formats
 Make it really easy for Silverlight (or other owned clients) to use the
resources
 Don’t want to recreate entities
 For V1, don’t worry about security (Boy, was that convenient!)
Stuff with semicolons and curly braces
… and the occasional angle bracket
DEMO
Summary
 Web API for RESTful “services”
 Web API Now part of ASP.NET MVC
 Silverlight + MVC play together nicely
 Create a Razor helper for hosting Silverlight
 Linked files to share model definitions
 Conditional compilation or partial classes for platform-specific
features
 My book has awesome demos 
Where to find help
 Our Community Sites




silverlight.net
windowsclient.net
asp.net
dev.windows.com
 MSDN: msdn.microsoft.com
 My Blog: 10rem.net
 Will include any updated
source/examples
 Twitter: @pete_brown
 Mail
[email protected]