Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
Services in the Web
REST mit WCF 4, Silverlight und AJAX
Daniel Fisher (lennybacon) | devcoach.com
Lennybacon.com
■ Daniel Fisher | CTO & Software Architect
■
MCP, MCTS, MCPD…
daniel.fisher@devcoach.com
■ Mit-Gründer und ...
Efficient Communication…
devcoach.com
■ Leistungen
■ Architektur-Beratung
Strukturierter und effizienter zu einer wartbaren Anwendung.
■ Software-E...
Agenda
• What is REST?
• WCF WebHttp
• Consumer
The WCF Eco System
What is REST?
■ A term coined by Roy Fielding
■ Style of architecture
■ Resource based
■ Cachable
■ NOT SOAP, NOR SESSION
...
What is WebHttp?
• A Services flavor
• RESTful
• Non-SOAP HTTP services
• Complete control over the
• URI
• Format
• Proto...
WebHttp v 4.0
■ WCF 3.5
■ + WCF REST Starter Kit
■ + .NET 4
■ + new Features
Attribute Inheritance
[ServiceContract]
public interface ISessionPlaner
{
[OperationContract]
[WebGet(UriTemplate = "Sessi...
Attribute Inheritance
[ServiceContract]
public interface ISessionPlaner
{
[WebGet(UriTemplate = "Sessions")]
List<SessionD...
DO NOT REPEAT YOURSELF!
No Routing
Routing
public class Global : System.Web.HttpApplication
{
void Application_Start(
object sender, EventArgs e)
{
RouteTabl...
Configuring the Module
<configuration>
…
<system.web> // <system.webServer> IIS 7
…
<httpModules>
…
<add
name="urlRouting"...
ASP.NET Routing
Controller
Model
View
RoutingRule
WCF Routing
ServiceHost
Service
RoutingRule
What about the contract?
Description Attribute
[ServiceContract]
public interface ISessionPlaner
{
[Description("Gets all sessions.")]
[WebGet(UriT...
/help
Consumer
■ .NET
■ WebRequest
■ WebClient
■ HttpClient
■ WebChannelFactory
■ AJAX
■ Silverlight
Explicit Format Selection
if (WebOperationContext.Current.
IncomingRequest.Headers["Accept"] ==
"application/json")
{
WebO...
Automatic Format Selection
<system.serviceModel>
<standardEndpoints>
<webHttpEndpoint>
<standardEndpoint
name=""
automatic...
Caching
[AspNetCacheProfile("A")]
<system.web>
<caching>
<outputCache enableOutputCache="true"/>
<outputCacheSettings>
<ou...
Web Faults
throw new WebFaultException<string>(
string.Format(
CultureInfo.CurrentCulture,
"There is no user with the user...
References
■ WCF REST Starter Kit Preview 2
■ http://aspnet.codeplex.com/releases/view/24644
2010 - Basta!: REST mit WCF 4, Silverlight und AJAX
2010 - Basta!: REST mit WCF 4, Silverlight und AJAX
2010 - Basta!: REST mit WCF 4, Silverlight und AJAX
2010 - Basta!: REST mit WCF 4, Silverlight und AJAX
2010 - Basta!: REST mit WCF 4, Silverlight und AJAX
2010 - Basta!: REST mit WCF 4, Silverlight und AJAX
2010 - Basta!: REST mit WCF 4, Silverlight und AJAX
Prochain SlideShare
Chargement dans…5
×

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

REST mit WCF 4, Silverlight und AJAX

Livres associés

Gratuit avec un essai de 30 jours de Scribd

Tout voir
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

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

  1. 1. Services in the Web REST mit WCF 4, Silverlight und AJAX Daniel Fisher (lennybacon) | devcoach.com
  2. 2. Lennybacon.com ■ Daniel Fisher | CTO & Software Architect ■ MCP, MCTS, MCPD… daniel.fisher@devcoach.com ■ Mit-Gründer und Geschäftsführer von devcoach.com www.devcoach.com ■ Mit-Gründer und Vorstand der gemeinnü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 der INETA Usergroup Düsseldorf www.NetUG-NiederRhein.de ■ Mitglied im Microsoft Community Leader & Insider Program (CLIP) ■ Connected Systems Advisory Board Expertengruppe für WCF, WF & BizTalk
  3. 3. Efficient Communication…
  4. 4. devcoach.com ■ Leistungen ■ Architektur-Beratung Strukturierter und effizienter zu einer wartbaren Anwendung. ■ Software-Entwicklung Team-out-of-the-box (Near-shoring) Objektmodelle und Datenzugriff Kommunikations-Infrastrukturen Identitäts- und Berechtigungsmodelle Web 2.0 und Rich Internet Applikation ■ Coaching & Training Technologien schneller verstehen und richtig einsetzen. ■ Technologien ■ Microsoft Windows & .NET Framework ASP.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®
  5. 5. Agenda • What is REST? • WCF WebHttp • Consumer
  6. 6. The WCF Eco System
  7. 7. What is REST? ■ A term coined by Roy Fielding ■ Style of architecture ■ Resource based ■ Cachable ■ NOT SOAP, NOR SESSION ■ Web Standards!
  8. 8. What is WebHttp? • A Services flavor • RESTful • Non-SOAP HTTP services • Complete control over the • URI • Format • Protocol
  9. 9. WebHttp v 4.0 ■ WCF 3.5 ■ + WCF REST Starter Kit ■ + .NET 4 ■ + new Features
  10. 10. Attribute Inheritance [ServiceContract] public interface ISessionPlaner { [OperationContract] [WebGet(UriTemplate = "Sessions")] List<SessionDetail> GetAllSessions(); }
  11. 11. Attribute Inheritance [ServiceContract] public interface ISessionPlaner { [WebGet(UriTemplate = "Sessions")] List<SessionDetail> GetAllSessions(); }
  12. 12. DO NOT REPEAT YOURSELF!
  13. 13. No Routing
  14. 14. Routing public class Global : System.Web.HttpApplication { void Application_Start( object sender, EventArgs e) { RouteTable.Routes.Add( new ServiceRoute( string.Empty, new WebServiceHostFactory(), typeof(SessionPlanerService))); }
  15. 15. Configuring the Module <configuration> … <system.web> // <system.webServer> IIS 7 … <httpModules> … <add name="urlRouting" type="System.Web.Routing.UrlRoutingModule"/> </httpModules> …
  16. 16. ASP.NET Routing Controller Model View RoutingRule
  17. 17. WCF Routing ServiceHost Service RoutingRule
  18. 18. What about the contract?
  19. 19. Description Attribute [ServiceContract] public interface ISessionPlaner { [Description("Gets all sessions.")] [WebGet(UriTemplate = "Sessions")] List<SessionDetail> GetAllSessions(); }
  20. 20. /help
  21. 21. Consumer
  22. 22. ■ .NET ■ WebRequest ■ WebClient ■ HttpClient ■ WebChannelFactory ■ AJAX ■ Silverlight
  23. 23. Explicit Format Selection if (WebOperationContext.Current. IncomingRequest.Headers["Accept"] == "application/json") { WebOperationContext.Current. OutgoingResponse.Format = WebMessageFormat.Json; }
  24. 24. Automatic Format Selection <system.serviceModel> <standardEndpoints> <webHttpEndpoint> <standardEndpoint name="" automaticFormatSelectionEnabled="true"> <security mode="None"/>
  25. 25. Caching [AspNetCacheProfile("A")] <system.web> <caching> <outputCache enableOutputCache="true"/> <outputCacheSettings> <outputCacheProfiles> <add name="A" location="Server" duration="60" varyByParam="skip; top; manager" varyByHeader="Accept"/>
  26. 26. Web Faults throw new WebFaultException<string>( string.Format( CultureInfo.CurrentCulture, "There is no user with the userName '{0}'.", userName), HttpStatusCode.NotFound);
  27. 27. References ■ WCF REST Starter Kit Preview 2 ■ http://aspnet.codeplex.com/releases/view/24644

×