2010 - Basta!: REST mit WCF 4, Silverlight und AJAX
-
Upload
daniel-fisher -
Category
Software
-
view
279 -
download
0
Transcript of 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX
![Page 1: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX](https://reader036.fdocument.pub/reader036/viewer/2022081604/58764faf1a28ab0d198b66ed/html5/thumbnails/1.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081604/58764faf1a28ab0d198b66ed/html5/thumbnails/2.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081604/58764faf1a28ab0d198b66ed/html5/thumbnails/3.jpg)
Efficient Communication…
![Page 4: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX](https://reader036.fdocument.pub/reader036/viewer/2022081604/58764faf1a28ab0d198b66ed/html5/thumbnails/4.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081604/58764faf1a28ab0d198b66ed/html5/thumbnails/5.jpg)
Agenda• What is REST?• WCF WebHttp• Consumer
![Page 6: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX](https://reader036.fdocument.pub/reader036/viewer/2022081604/58764faf1a28ab0d198b66ed/html5/thumbnails/6.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081604/58764faf1a28ab0d198b66ed/html5/thumbnails/7.jpg)
![Page 8: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX](https://reader036.fdocument.pub/reader036/viewer/2022081604/58764faf1a28ab0d198b66ed/html5/thumbnails/8.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081604/58764faf1a28ab0d198b66ed/html5/thumbnails/9.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081604/58764faf1a28ab0d198b66ed/html5/thumbnails/10.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081604/58764faf1a28ab0d198b66ed/html5/thumbnails/11.jpg)
demo!
![Page 12: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX](https://reader036.fdocument.pub/reader036/viewer/2022081604/58764faf1a28ab0d198b66ed/html5/thumbnails/12.jpg)
Attribute Inheritance[ServiceContract]public interface ISessionPlaner{ [OperationContract] [WebGet(UriTemplate = "Sessions")] List<SessionDetail> GetAllSessions();}
![Page 13: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX](https://reader036.fdocument.pub/reader036/viewer/2022081604/58764faf1a28ab0d198b66ed/html5/thumbnails/13.jpg)
Attribute Inheritance[ServiceContract]public interface ISessionPlaner{ [WebGet(UriTemplate = "Sessions")] List<SessionDetail> GetAllSessions();}
![Page 14: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX](https://reader036.fdocument.pub/reader036/viewer/2022081604/58764faf1a28ab0d198b66ed/html5/thumbnails/14.jpg)
DO NOT REPEAT YOURSELF!
![Page 15: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX](https://reader036.fdocument.pub/reader036/viewer/2022081604/58764faf1a28ab0d198b66ed/html5/thumbnails/15.jpg)
No Routing
![Page 16: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX](https://reader036.fdocument.pub/reader036/viewer/2022081604/58764faf1a28ab0d198b66ed/html5/thumbnails/16.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081604/58764faf1a28ab0d198b66ed/html5/thumbnails/17.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081604/58764faf1a28ab0d198b66ed/html5/thumbnails/18.jpg)
ASP.NET Routing
Controller
Model
View
RoutingRule
![Page 19: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX](https://reader036.fdocument.pub/reader036/viewer/2022081604/58764faf1a28ab0d198b66ed/html5/thumbnails/19.jpg)
WCF Routing
ServiceHost
Service
RoutingRule
![Page 20: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX](https://reader036.fdocument.pub/reader036/viewer/2022081604/58764faf1a28ab0d198b66ed/html5/thumbnails/20.jpg)
demo!
![Page 21: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX](https://reader036.fdocument.pub/reader036/viewer/2022081604/58764faf1a28ab0d198b66ed/html5/thumbnails/21.jpg)
What about the contract?
![Page 22: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX](https://reader036.fdocument.pub/reader036/viewer/2022081604/58764faf1a28ab0d198b66ed/html5/thumbnails/22.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081604/58764faf1a28ab0d198b66ed/html5/thumbnails/23.jpg)
/help
![Page 24: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX](https://reader036.fdocument.pub/reader036/viewer/2022081604/58764faf1a28ab0d198b66ed/html5/thumbnails/24.jpg)
demo!
![Page 25: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX](https://reader036.fdocument.pub/reader036/viewer/2022081604/58764faf1a28ab0d198b66ed/html5/thumbnails/25.jpg)
Consumer
![Page 26: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX](https://reader036.fdocument.pub/reader036/viewer/2022081604/58764faf1a28ab0d198b66ed/html5/thumbnails/26.jpg)
■ .NET ■ WebRequest■ WebClient■ HttpClient■ WebChannelFactory
■ AJAX■ Silverlight
![Page 27: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX](https://reader036.fdocument.pub/reader036/viewer/2022081604/58764faf1a28ab0d198b66ed/html5/thumbnails/27.jpg)
demo!
![Page 28: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX](https://reader036.fdocument.pub/reader036/viewer/2022081604/58764faf1a28ab0d198b66ed/html5/thumbnails/28.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081604/58764faf1a28ab0d198b66ed/html5/thumbnails/29.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081604/58764faf1a28ab0d198b66ed/html5/thumbnails/30.jpg)
demo!
![Page 31: 2010 - Basta!: REST mit WCF 4, Silverlight und AJAX](https://reader036.fdocument.pub/reader036/viewer/2022081604/58764faf1a28ab0d198b66ed/html5/thumbnails/31.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081604/58764faf1a28ab0d198b66ed/html5/thumbnails/32.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081604/58764faf1a28ab0d198b66ed/html5/thumbnails/33.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081604/58764faf1a28ab0d198b66ed/html5/thumbnails/34.jpg)