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.
Asp.Net Web API,                       SignalR, UX: Futur           Thomas Jaskula       Rui Carvalho             Développ...
About                                Talk                    Work                                                @rhwy    ...
Communautés                  Prochaines rencontres:                  13/02 : Agile.Net beer                  21/02 : Alt.N...
API, REAL TIME & UX
à propos de cette sessionDISCLAIMER
USER EXPERIENCE
(re)Evolutions
Evolutions des réseaux
Un monde connecté
Evolution des usages
Toute l’information, tout de suite
Comment répondre à ces évolutions?
S’adapter aux usages
Mettre en place des API        Standardisées        Au coeur de l’application        Simples, autonomes
Communication temps réel       Fournir de l’information < 1s       Frameworks spécialisés       Travailler ses écrans comm...
http://techdays.servicebus.windows.net/demo/test/ASP.NET WEB API
ASP.NET Web Api     • Qu’est-ce qu’une API Web ?          « Une API Web est une interface programmable d’un système exposé...
ASP.NET Web Api     • Origines des API web                                    8571 !      10000                         07...
ASP.NET Web Api / Introduction REST     • Origines des API web                       Usage des protocoles par API         ...
ASP.NET Web Api     • Architectures, protocoles & styles des API       Web          – RPC API XML-RPC              CORBA D...
ASP.NET Web Api     • Architecture Web          – Pensez « Ressources »                                                   ...
ASP.NET Web Api     • D’une architecture web vers un style       d’architecture…       REST              =     Décrit le w...
ASP.NET Web Api     • Contraintes du style architectural REST                                                             ...
ASP.NET Web Api     • Convivialité du Web / Modèle de maturité                       Hypermédias         Niveau 3         ...
ASP.NET Web Api     • Introduction au Framework               • Pourquoi utiliser ASP.NET Web Api ?               • ASP.NE...
ASP.NET Web Api     • Introduction au Framework                               Principales caractéristiques :              ...
ASP.NET Web Api     • Hosting          – Adaptateurs disponibles (indépendant du Framework)             • WebHost (IIS)   ...
ASP.NET Web Api     • Adaptateur Azure Service Bus Relay                  Windows Azure                 IP Public         ...
ASP.NET Web Api     • Hypérmedias          – Pourquoi construire les applications hypermédias ?          – Media types    ...
ASP.NET Web Api     • Résumé          –   Support technologique          –   Performances, extensibilité et monté en charg...
ASP.NET SIGNALR
SignalR?      Runtime     temps réel      pour .Net
SignalR?    Framework      Client(s)      Serveur
De quoi parle-t-on…LE WEB TEMPS RÉEL?
Le web temps réel       Push Serveur       HTTP Streaming/Comet       WebSockets
L’information tout de suite, oui mais…QUEL EST LE PROBLÈME?
Un seul canal universel !               HTTP
HTTP n’est Pas adapté       Le procole est agé       Il n’a jamais été prévu pour ça       Prévu pour fournir des document...
Les fondamentaux HTTP      Le web est stateless      Uniquement Requêtes/Réponses
HTML5 WebSockets ?      Extension de HTTP      Supporte les proxies      Canaux binaires bi-directionels
HTML5 WebSockets ?      Spécification instable      Support Serveur/Navigateur aléatoire      Protocole applicatif à écrire!
Quelles Alternatives aujourd’hui?        Short polling        Long polling        Forever frame
Short polling                Event
Long polling               Event
Forever frame                            1                            HTTP/1.1 200 OK                            2        ...
Que choisir?       Aucun n’est particulièrement meilleur       Tous       Avantages différents en fonction du navigateur
SignalR !        Il prend en compte toutes ces techniques        S’adapte en fonction du navigateur        Et du serveur a...
One to rule them allSIGNALR
SignalR          Connection suivant le meilleur transport disponible          Abstraction simple          Modèle de progra...
SignalR          Librairie OSS éprouvée          Microsoft.AspNet.SignalR (nov 2012)          Clients toutes plateforme (J...
SignalR Server       Fonctionne dans toute application ASP.NET       Selft Host       Azure       Mono
SignalR API       Persistent Connections       Hubs
SignalR Persistent Connections       API bas niveau       Programmation connection unique       IHttpHandler + route      ...
SignalR Hubs       API de haut niveau       Abstraction au dessus des PersistentConnections       Proxies auto générés dyn...
ça marche vraiment?PERFORMANCES
SignalR Performances       Très rapide, x18 pour la v1.0       Sur 1 serveur:           250k-500k messages /s           70...
SignalR Performances     les performances dépendent du type de transport     Ralentis requêtes html sur le même serveur   ...
As simple asCODE
SignalR Code : Install        Serveur Web + Clients JS        Client .NetPartie Serveur
SignalR Code : Hub     var hub = $.connection.Notifier;       1      [HubName(“Notifier”)]                                ...
SIGNALR
Résumé• SignalR, framework/Runtime temps réel  .Net web• Modele simple et unifié de programmation  avec les Hub• Abstracti...
QUESTIONS?
https://github.com/codedistillers/talks-td2013https://github.com/tjaskula/ASP.NETWebAPI-Techdays2013SOURCES
Keep contact:@RHWY + @TJASKULA
Asp.Net Web.API, SignalR et UX : le futur
Asp.Net Web.API, SignalR et UX : le futur
Prochain SlideShare
Chargement dans…5
×

Asp.Net Web.API, SignalR et UX : le futur

1 646 vues

Publié le

Dans cette session nous allons voir le futur du développement web au sein de l'écosystème ASP.NET, ce que cela change dans les échanges avec le client, y compris au sein des applications Windows 8 consommant des services. Fournir des web services en plus d'une application est devenu une pratique courante depuis des années, mais travailler avec des APIs en est une autre, et, les fournir dans un mode adapté au Http, comme REST, encore une autre. Il est primordial aujourd'hui d'intégrer ces API proches d'HTTP dans nos applications et c'est là le rôle du framework WEB.API dans la plateforme ASP.NET, que nous allons vous présenter en détail dans cette session. Une autre facette importante des applications web qui a émergé ces dernières années, c'est la contrainte du temps réel. C'est une contrainte qu'il faut prendre en compte dès aujourd'hui. Non pas que tout le monde a besoin d'afficher des flux de données en temps réel, mais surtout parce cela change l'expérience utilisateur! Nous allons voir dans ce cadre là SignalR, une librairie open source, supportée officiellement depuis peu par Microsoft.

  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Asp.Net Web.API, SignalR et UX : le futur

  1. 1. Asp.Net Web API, SignalR, UX: Futur Thomas Jaskula Rui Carvalho Développeur Développeur Compose IT ArtOfNet @tjaskula @rhwyCode / Développement
  2. 2. About Talk Work @rhwy @tjaskula ArtOfNet FormationsBlog codedistillers.fr En> www.codedistillers.com skill-track.fr Fr > www.rui.fr
  3. 3. Communautés Prochaines rencontres: 13/02 : Agile.Net beer 21/02 : Alt.Net Frameworks .Net oss 26/02 : Vue d’ensemble du DDD 27/02 : Alt.Net Coding breakfast Paris Software Craftsmanship xx/05 : Web.Net conf Paris ! Community www.meetup.com /ALTNETFR /DDD-Paris /paris-software-craftsmanship /AGILE-NET-FRANCE
  4. 4. API, REAL TIME & UX
  5. 5. à propos de cette sessionDISCLAIMER
  6. 6. USER EXPERIENCE
  7. 7. (re)Evolutions
  8. 8. Evolutions des réseaux
  9. 9. Un monde connecté
  10. 10. Evolution des usages
  11. 11. Toute l’information, tout de suite
  12. 12. Comment répondre à ces évolutions?
  13. 13. S’adapter aux usages
  14. 14. Mettre en place des API Standardisées Au coeur de l’application Simples, autonomes
  15. 15. Communication temps réel Fournir de l’information < 1s Frameworks spécialisés Travailler ses écrans comme de vrais applications
  16. 16. http://techdays.servicebus.windows.net/demo/test/ASP.NET WEB API
  17. 17. ASP.NET Web Api • Qu’est-ce qu’une API Web ? « Une API Web est une interface programmable d’un système exposé sur HTTP et accessible par des méthodes HTTP standard ».Code / Développement
  18. 18. ASP.NET Web Api • Origines des API web 8571 ! 10000 07/02/2013 8000 6000 4000 2000 0 2001 2008 2000 2002 2003 2004 2005 2006 2007 2009 2010 2011 2012 2013 *source : http://www.programmableweb.comCode / Développement
  19. 19. ASP.NET Web Api / Introduction REST • Origines des API web Usage des protocoles par API 5% 2% REST 24% SOAP JavaScript 69% XML-RPC *source : http://www.programmableweb.com 07/02/2013Code / Développement
  20. 20. ASP.NET Web Api • Architectures, protocoles & styles des API Web – RPC API XML-RPC CORBA DCOM WSDL – Message API SOAP POX – Ressource API ATOM RESTCode / Développement
  21. 21. ASP.NET Web Api • Architecture Web – Pensez « Ressources » Représentation XHTML Content-Type : application/xhtml+xml URI Représentation JSON http://api.demo/order/1234 Content-Type : application/json http://api.demo/order/1234.js p Représentation PDF Content-Type : application/pdf Ressource urn:api.demo:order:1234 Représentation TEXT Content-Type : text/plain ftp://demo/order/1234.txtCode / Développement
  22. 22. ASP.NET Web Api • D’une architecture web vers un style d’architecture… REST = Décrit le web comme une application ressources laquelle les représentations hypermédia liées communiquent en échangent les de ressources. distribuée dans http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htmCode / Développement
  23. 23. ASP.NET Web Api • Contraintes du style architectural REST Vous obtenez ces REST Contrainte Vous n’adhérez pas Bénéfice bénéfices si vous à ça… Et vous n’aurez pas utilisés HTTP Client - Server ça ! - Portabilité UI - Serveur simplifié Si vous ne faites comme protocole depas ça… votre Stateless - - Serveur simplifié Extensibilité application - Fiabilité Optional non-shared caching - - Latence réduite Efficacité Sous-contraintes: - Extensibilité Uniform interface - Visibilité - identification des ressources - Evolution Indépendante - Implémentation découplée - Manipulation via représentations - Messages auto-descriptifs Layered system - - Cache partage Clients simplifiés - Hypermédias - Load balancing et extensibilité Code-on-demand - - Clients simplifiés ExtensibilitéCode / Développement
  24. 24. ASP.NET Web Api • Convivialité du Web / Modèle de maturité Hypermédias Niveau 3 HTTP Niveau 2 URI Niveau 1 Niveau 0 Leonard Richardson http://www.crummy.com/writing/speaking/2008-QCon/Code / Développement
  25. 25. ASP.NET Web Api • Introduction au Framework • Pourquoi utiliser ASP.NET Web Api ? • ASP.NET Web Api vs. ASP.NET MVC • Et le WCF dans tout ça ?Code / Développement
  26. 26. ASP.NET Web Api • Introduction au Framework Principales caractéristiques : - Support complet HTTP - Content-negotiation - Tests unitaire - Indépendance de hostingCode / Développement
  27. 27. ASP.NET Web Api • Hosting – Adaptateurs disponibles (indépendant du Framework) • WebHost (IIS) • SelfHost (Process Windows) – Adaptateurs personnalisés • Azure • In-Memory • OWINCode / Développement
  28. 28. ASP.NET Web Api • Adaptateur Azure Service Bus Relay Windows Azure IP Public Service Bus Nom DNS Public Relay API Host Client API NAT Firewall IP Privé Pas de nom DNSCode / Développement
  29. 29. ASP.NET Web Api • Hypérmedias – Pourquoi construire les applications hypermédias ? – Media types • XML / JSON • XHTML / ATOM • HALCode / Développement
  30. 30. ASP.NET Web Api • Résumé – Support technologique – Performances, extensibilité et monté en charge – Faible couplage – Workflow métierCode / Développement
  31. 31. ASP.NET SIGNALR
  32. 32. SignalR? Runtime temps réel pour .Net
  33. 33. SignalR? Framework Client(s) Serveur
  34. 34. De quoi parle-t-on…LE WEB TEMPS RÉEL?
  35. 35. Le web temps réel Push Serveur HTTP Streaming/Comet WebSockets
  36. 36. L’information tout de suite, oui mais…QUEL EST LE PROBLÈME?
  37. 37. Un seul canal universel ! HTTP
  38. 38. HTTP n’est Pas adapté Le procole est agé Il n’a jamais été prévu pour ça Prévu pour fournir des documents liés
  39. 39. Les fondamentaux HTTP Le web est stateless Uniquement Requêtes/Réponses
  40. 40. HTML5 WebSockets ? Extension de HTTP Supporte les proxies Canaux binaires bi-directionels
  41. 41. HTML5 WebSockets ? Spécification instable Support Serveur/Navigateur aléatoire Protocole applicatif à écrire!
  42. 42. Quelles Alternatives aujourd’hui? Short polling Long polling Forever frame
  43. 43. Short polling Event
  44. 44. Long polling Event
  45. 45. Forever frame 1 HTTP/1.1 200 OK 2 1 2 3 <script>eval(“{id:’1’}”)</script> 3 <script>eval(“{id:’2’}”)</script> Event Event [ . . .]
  46. 46. Que choisir? Aucun n’est particulièrement meilleur Tous Avantages différents en fonction du navigateur
  47. 47. SignalR ! Il prend en compte toutes ces techniques S’adapte en fonction du navigateur Et du serveur automatiquement Abstraction de programmation
  48. 48. One to rule them allSIGNALR
  49. 49. SignalR Connection suivant le meilleur transport disponible Abstraction simple Modèle de programmation unique
  50. 50. SignalR Librairie OSS éprouvée Microsoft.AspNet.SignalR (nov 2012) Clients toutes plateforme (JS, .Net, WinRT, iOS,…) Server + WebSockets IIS8
  51. 51. SignalR Server Fonctionne dans toute application ASP.NET Selft Host Azure Mono
  52. 52. SignalR API Persistent Connections Hubs
  53. 53. SignalR Persistent Connections API bas niveau Programmation connection unique IHttpHandler + route Limité aux messages Le protocole doit être défini
  54. 54. SignalR Hubs API de haut niveau Abstraction au dessus des PersistentConnections Proxies auto générés dynamiques (JS ou .NET) Routes automatiques (/signalr/hubs) Tout types d’échanges, riches
  55. 55. ça marche vraiment?PERFORMANCES
  56. 56. SignalR Performances Très rapide, x18 pour la v1.0 Sur 1 serveur: 250k-500k messages /s 70k connections simultannées
  57. 57. SignalR Performances les performances dépendent du type de transport Ralentis requêtes html sur le même serveur Attention au traitement (Cpu)
  58. 58. As simple asCODE
  59. 59. SignalR Code : Install Serveur Web + Clients JS Client .NetPartie Serveur
  60. 60. SignalR Code : Hub var hub = $.connection.Notifier; 1 [HubName(“Notifier”)] public class MyHub : Hub { $.connection.hub.start().done(function () { public void Notify(string message) $(#btn).on(click,function(){ 2 { hub.server.notify( Clients.Others.notified(message); $(#messageInput).val()); } }) } 3 }); hub.client.notified = function (message) { alert(message.Content); RouteTable.Routes.MapHubs(); }; Client ServerPartie Cliente
  61. 61. SIGNALR
  62. 62. Résumé• SignalR, framework/Runtime temps réel .Net web• Modele simple et unifié de programmation avec les Hub• Abstraction du transport• Tous types de clients
  63. 63. QUESTIONS?
  64. 64. https://github.com/codedistillers/talks-td2013https://github.com/tjaskula/ASP.NETWebAPI-Techdays2013SOURCES
  65. 65. Keep contact:@RHWY + @TJASKULA

×