Web Service Programming with WCF 3.5 Eyal Vardi CEO E4D Solutions LTD Microsoft MVP Visual C# blog:
Agenda Web Services Future (Cloud Computing) Web Services Customizations with.NET 3.5 – JSON / POX vs. SOAP – GET vs. POST, PUT & DELETE – Cache – URI Template ADO.NET Data Services ( LINQ to URL )
About Consulting Mentoring Projects
Web Services Everywhere…
You know how it starts, But you don’t know how it ends !!! You know how it starts, But you don’t know how it ends !!!
Web Services Customizations
POST SimpleService.asmx/EchoString HTTP/1.1 Host: localhost:1489 User-Agent: Mozilla/5.0 Accept: text/html Content-Type: application/json; Content-Length: XML, JSON, SOAP, AtomPub... HTTP Communication Headers Data VerbURL
POST SimpleService.asmx/EchoString HTTP/1.1 Host: localhost:1489 User-Agent: Mozilla/5.0 Accept: text/html,application/xhtml+xml Content-Type: application/json; Content-Length: JSON vs. SOAP { "Age":37, "FirstName":"Eyal", "ID":"123", "LastName":"Vardi“ } Headers Data VerbURL
Before WCF ( ASMX )
DEMO Web Service ( ASMX ) Customization
ASMX HTTP Options OptionsASMX Data SOAP, XML, JSON, {arg}={value} SOAP, XML, JSON, {arg}={value} Verbs POST, GET POST, GET Headers Help Page Description WebMethod WebMethod Cache JS Proxy ScriptMethod ScriptMethod URI Template NO NO Config
WCF Solutions ( WebGet, WebInvoke )
DEMO Web Service ( WCF ) Customization
ASMX vs. WCF OptionsASMXWCF Data XML, JSON XML, JSON Verbs POST, GET POST, GET GET, POST, HEAD… GET, POST, HEAD… Headers Help Page NO NO Description WebMethod WebMethod NO NO Cache WebMethod WebMethod Headers Headers JS Proxy ScriptMethod ScriptMethod Yes / NO Yes / NO URI Template NO NO Yes Yes Config NO NO NO / Yes NO / Yes
DEMO WCF Dynamic Format ( XML or JSON )
Client Caching The request doesn’t get to the server, unless the data is expires. Browser GET E4D/Demos/Test.svc HTTP/1.1 Cache-Control : private | max-age=5 | no-cache Expires : Sun, 16 Nov :58:18 GT11 GET E4D/Demos/Test.svc HTTP/1.1 Cache-Control : private | max-age=5 | no-cache Expires : Sun, 16 Nov :58:18 GT11 HTTP Response
GET E4D/Demos/Test.svc HTTP/1.1 If-Modified-Since: 16/11/ :58:13 Etag : d06606c5-7fab-46f0-a5cd-6f911e3e51eb GET E4D/Demos/Test.svc HTTP/1.1 If-Modified-Since: 16/11/ :58:13 Etag : d06606c5-7fab-46f0-a5cd-6f911e3e51eb HTTP/ Not Modified Cache-Control: no-cache Connection: Close HTTP/ Not Modified Cache-Control: no-cache Connection: Close Server Caching Request 304 Status Browser HTTP Response GET E4D/Demos/Test.svc HTTP/1.1 Cache-Control : no-cache Expires : Sun, 16 Nov :58:18 GT11 GET E4D/Demos/Test.svc HTTP/1.1 Cache-Control : no-cache Expires : Sun, 16 Nov :58:18 GT11
DEMO Server Caching
ASP.NET Server Caching Request Response Browser SQL Dependency Duration Vary By Param
DEMO ASP.NET Server Caching
ADO.NET Data Services
LINQ to URL AtomPub Win App orBrowser Data Service IQuerable from x in Products where x.ID > 555 select x.Name
Services Platform System.NetSystem.Net WCFWCF Data Services Application / Service
DEMO Data Services Hello World
Summary Get the MAX from the HTTP 1.1 Caching SOAP vs. JSON ADO.NET Data Services
Additional Resources My blog. WCF REST Starter Kit HTTP Protocol (RFC2616) WCF Web Programming Model Overview
Related Sessions DEV401: ASP.NET Ajax Internals Dan Amiga 09:00 – 10:30 DEV309: Building Web Sites with ASP.NET MVC Noam King 16:00 – 17:10 ARC301: “Velocity” Yair Siwek 16:00 – 17:10
© 2008 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.