2010 - Basta!: REST mit WCF 4, Silverlight und AJAX

34
Services in the Web REST mit WCF 4, Silverlight und AJAX Daniel Fisher (lennybacon) | devcoach.com

Transcript of 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX

Page 1: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX

Services in the WebREST mit WCF 4, Silverlight und AJAX

Daniel Fisher (lennybacon) | devcoach.com

Page 2: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX

Lennybacon.com■ Daniel Fisher | CTO & Software Architect ■

MCP, MCTS, MCPD…[email protected]

■ Mit-Gründer und Geschäftsführer von devcoach.comwww.devcoach.com

■ Mit-Gründer und Vorstand dergemeinnützigen www.just community.de e.V.

■ Veranstalter des größten Entwickler & IT-Pro Community Events in Deutschland: www.nrwconf.de

■ Mit-Gründer und Leiter derINETA Usergroup Düsseldorf

www.NetUG-NiederRhein.de

■ Mitglied im Microsoft Community Leader & Insider Program (CLIP)

■ Connected Systems Advisory BoardExpertengruppe für WCF, WF & BizTalk

Page 3: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX

Efficient Communication…

Page 4: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX

devcoach.com■ Leistungen

■ Architektur-BeratungStrukturierter und effizienter zu einer wartbaren Anwendung.

■ Software-EntwicklungTeam-out-of-the-box (Near-shoring)Objektmodelle und DatenzugriffKommunikations-InfrastrukturenIdentitäts- und BerechtigungsmodelleWeb 2.0 und Rich Internet Applikation

■ Coaching & TrainingTechnologien schneller verstehen und richtig einsetzen.

■ Technologien

■ Microsoft Windows & .NET FrameworkASP.NET, WCF, WF, WPF, Silverlight & Geneva

■ Kunden

■ Versicherung, Finanzindustrie, Mittelstand, Handel, Kommunikation, Softwarehersteller u.v.a.Bundesamt für Sicherheit in der Informationstechnologie, Microsoft, Dresdner Bank…

Project Experience

Technology Know-how

devcoach®

Page 5: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX

Agenda• What is REST?• WCF WebHttp• Consumer

Page 6: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX

The WCF Eco System

WCF Core

Services

WCF Data

Services

WCF Workflo

w Service

s

WCF WebHtt

p

WCF RIA

Services

Page 7: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX
Page 8: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX

What is REST?■ A term coined by Roy Fielding■ Style of architecture■ Resource based■ Cachable■ NOT SOAP, NOR SESSION

■ Web Standards!

Page 9: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX

What is WebHttp?• A Services flavor• RESTful • Non-SOAP HTTP services• Complete control over the • URI• Format• Protocol

Page 10: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX

WebHttp v 4.0■ WCF 3.5■ + WCF REST Starter Kit■ + .NET 4■ + new Features

Page 11: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX

demo!

Page 12: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX

Attribute Inheritance[ServiceContract]public interface ISessionPlaner{ [OperationContract] [WebGet(UriTemplate = "Sessions")] List<SessionDetail> GetAllSessions();}

Page 13: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX

Attribute Inheritance[ServiceContract]public interface ISessionPlaner{ [WebGet(UriTemplate = "Sessions")] List<SessionDetail> GetAllSessions();}

Page 14: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX

DO NOT REPEAT YOURSELF!

Page 15: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX

No Routing

Page 16: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX

Routingpublic class Global : System.Web.HttpApplication

{

void Application_Start( object sender, EventArgs e)

{

RouteTable.Routes.Add(

new ServiceRoute(

string.Empty,

new WebServiceHostFactory(),

typeof(SessionPlanerService)));

}

Page 17: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX

Configuring the Module

<configuration> … <system.web> // <system.webServer> IIS 7 … <httpModules> … <add name="urlRouting" type="System.Web.Routing.UrlRoutingModule"/> </httpModules>…

Page 18: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX

ASP.NET Routing

Controller

Model

View

RoutingRule

Page 19: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX

WCF Routing

ServiceHost

Service

RoutingRule

Page 20: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX

demo!

Page 21: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX

What about the contract?

Page 22: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX

Description Attribute[ServiceContract]public interface ISessionPlaner{ [Description("Gets all sessions.")] [WebGet(UriTemplate = "Sessions")] List<SessionDetail> GetAllSessions();}

Page 23: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX

/help

Page 24: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX

demo!

Page 25: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX

Consumer

Page 26: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX

■ .NET ■ WebRequest■ WebClient■ HttpClient■ WebChannelFactory

■ AJAX■ Silverlight

Page 27: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX

demo!

Page 28: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX

Explicit Format Selectionif (WebOperationContext.Current. IncomingRequest.Headers["Accept"] == "application/json")

{ WebOperationContext.Current. OutgoingResponse.Format = WebMessageFormat.Json;

}

Page 29: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX

Automatic Format Selection<system.serviceModel>

<standardEndpoints>

<webHttpEndpoint>

<standardEndpoint

name=""

automaticFormatSelectionEnabled="true">

<security mode="None"/>

Page 30: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX

demo!

Page 31: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX

Caching[AspNetCacheProfile("A")]

<system.web>  <caching>     <outputCache enableOutputCache="true"/> <outputCacheSettings>           <outputCacheProfiles>           <add name="A" location="Server" duration="60"               varyByParam="skip; top; manager" varyByHeader="Accept"/>     

Page 32: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX

Web Faultsthrow new WebFaultException<string>( string.Format( CultureInfo.CurrentCulture, "There is no user with the userName '{0}'.", userName), HttpStatusCode.NotFound);

Page 33: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX

References■ WCF REST Starter Kit Preview 2 ■ http://

aspnet.codeplex.com/releases/view/24644

Page 34: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX