Developing REST Applications with the .NET Framework Henrik Frystyk Nielsen, Principal Architect FT55
Feb 23, 2016
Developing REST Applications with the .NET FrameworkHenrik Frystyk Nielsen, Principal Architect
FT55
Do You Speak REST?> What is REST?> Why REST?> How does .NET support REST? > How do I get started?
Constrained Interactions
> Resource are identified by URIs
> Resources are exposed in terms of state
> Resources can only interact through exchange of state
> Resource behavior is hidden
Guiding Principles or Straight Jacket?> Loose coupling
> Resources only see each other as state> Scalability
> State is often cacheable and can be moved around> Composability
> State + State = State> Deployment
> State can be rendered in many different ways> Reuse and Interop
> State is easy to consume> Observability
> State shows what the system is doing
Going Beyond Retrieval> HTTP Vocabulary
> GET – get state> PUT – create/replace state> POST – insert/modify/process state> DELETE – delete state> OPTIONS – metadata
> Atom and AtomPub> Collections and link relationships
Open Data Protocol (OData)> A RESTful protocol for data sharing> It all started with Astoria, or “Data
Services”> A set of conventions on top of
AtomPub> Structured data, expanded hierarchies,
queries in URLs, batching> With many products following the
conventions, it was time for a name
From Browsing to App Model
> Move towards HTTP/REST across all tiers> Mash-ups, Cloud Services, User Interface> Computation and Business Logic> Databases and Files> Devices and hardware
Service alignment> WCF WebHttp Services (WCF REST)
> Building RESTful as well as Xml over HTTP services with control over URI/format/protocol
> WCF Data Services (ADO.Net Data Services)> Exposing data models through a RESTful interface
> WCF RIA Services (.NET RIA Services)> Building end-to-end Silverlight application
> WCF Core Services> Full flexibility for building operation-centric services with
industry standard interop, as well as channel and host plug-ability.
> WCF Workflow Services> Long running, durable operations or where the
specification and enforcement of operation sequencing is important
Windows Communication Foundation
Channel ModelFormats
(Atom, JSON, XML,…)
Transports(HTTP, TCP, …)
Protocols(SOAP, HTTP, Open Data Protocol,…)
Service ModelData Contract Service
ContractService Behavior
Programming ModelCore
ServicesWeb HTTP
ServicesData
ServicesRIA
ServicesWorkflo
w Services
DEMO
ServiceOperation style HTTP/REST services
Web HTTP Services
DEMO
Exposing RESTful data models
Data Services
DEMO
Rich end-to-end Silverlight apps
RIA Services
Demo Recap…> WCF WebHttp Services (WCF REST)
> Building RESTful as well as Xml over HTTP services with control over URI/format/protocol
> WCF Data Services (ADO.Net Data Services)> Exposing data models through a RESTful
interface> WCF RIA Services (.NET RIA
Services)> Building end-to-end Silverlight application
DEMO
Mixing HTTP, Data & RIA Services
>>FUTURE
DEMO
New generation HTTP API
Http Client
>>FUTURE
What’s Next?> What is REST?
> Architectural style for state-driven applications> Key is constrained interactions
> Why REST?> Interop between cloud, on-premise, cross-
domains> Move towards resource-based application model
> How do I get started?> .NET 4.0 Beta 2 and Silverlight 4.0 Preview
> http://blogs.msdn.com/endpoint> Blogs and announcements
Catch These PresentationsID Title
CL06 Networking and Web Services in SilverlightCL07 Mastering Microsoft .NET RIA Services
CL21 Building Amazing Business Applications with Microsoft Silverlight and Microsoft .NET RIA Services
FT10 Evolving ADO.NET Entity Framework in .NET 4 and Beyond
FT12 ADO.NET Data Services: What’s new with the RESTful data services framework
FT13 What’s New for Windows Communication Foundation 4PR02 Overview of SharePoint 2010 Programmability
PR12 It's All About the Services: Developing Custom Applications for Microsoft SharePoint Server 2010 Using Microsoft ASP.NET, WCF, and REST
SVC19 REST Services Security Using the Microsoft .NET Access Control Service
YOUR FEEDBACK IS IMPORTANT TO US! Please fill out session evaluation
forms online atMicrosoftPDC.com
Learn More On Channel 9> Expand your PDC experience through
Channel 9
> Explore videos, hands-on labs, sample code and demos through the new Channel 9 training courses
channel9.msdn.com/learnBuilt by Developers for Developers….
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.