SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
Le Web comme plateforme applicative-Comment programme-t-on le Web? 
François Daoust (@tidoust) W3C 
#inria_industrie
Une courte histoiredu Web applicatif
Interactions utilisateur 
<form action="post.cgi"> 
<input type="text" name="nom" /> 
<input type="submit" title="Valider" /> 
</form>
Interactions utilisateur 
<form action="post.cgi"> 
<input type="text" name="nom" /> 
<input type="submit" title="Valider" /> 
</form>
DHTML 
•Document Object Model (DOM) 
•JavaScript 
•Evénements
AJAX 
XMLHttpRequest
Propriétés du Web applicatif
Approche descendante(Top-down approach)
Sécurité 
•Primitives de bas niveaudifficilementexposables 
•Attention aux empreintes !
Plateforme globale
Ex: base de données locale 
IndexedDBAPI
Plateforme humaine
Philae vs. CSS
Plateforme complète
Communications 
API 
Usage 
HTML5 Web Messaging 
Inter-app(même navigateur) 
WebRTC 
P2P,audio/vidéo temps-réel 
Network Service Discovery 
Réseaulocal 
PresentationAPI 
Ecran secondaireInter-appinter-terminaux
PresentationAPI 
presentation 
.startSession('http://example.org/pres.html') 
.then(function (newSession) { 
session.onstatechange= function () { 
switch (session.state) { 
case 'connected': 
session.postMessage(/*...*/); 
session.onmessage= function() { /*...*/ 
}; 
break; 
case 'disconnected': 
console.log('Disconnected.'); 
break; 
} 
}; 
}, function () { /*...*/ });
Packaging 
•Exécution hors-ligneApplicationCacheService Workers 
•EmpaquetageFichier manifesteArchive (Zip) Enrobage natif (ex. Cordova)
Fragmentation
Programmer le Web
Comme toute autre plateforme ! 
Besoin 
Exempled’outils open source 
Composants, MVC, utilitaires 
Backbone.js,AngularJS, Ember.js, Enyo, Mustache, SASS 
Gestion des dépendances 
Bower, npm, Yeoman 
Déboguage 
Outils de développement du navigateur(F12) 
Tests unitaires, fonctionnels 
Jasmine, QUnit,Sinon, TestSwarm 
Testsd’acceptation 
WebDriver, Selenium, PhantomJS,SlimerJS 
Contrôlede qualité 
esvalidate, jslint, JSCover,Istanbul 
«Compilation» 
Google ClosureCompiler, RequireJS, SASS 
«Transpilation» 
Emscripten, Google Web Toolkit, Ocamljs 
Automatisation de tâches 
Grunt, gulp.js, ant, Make 
Contrôle de version 
Git, Mercurial,CVS, SVN
Penser adaptation 
•Séparer contenu, design, code 
•Ciblez les mobiles 
•Attention aux designs au pixel près ! 
•Amélioration progressive
Client et/ou serveur 
•Retour du JavaScript côté serveurex: Node.js 
•Permet de partager la même base de code entre client et serveurex: code de validation d’une saisie
Performances 
•Moteurs JS optimisés 
•Bonnes pratiques à connaître 
•ASM.js (1.5x C)
Le Web comme plateforme applicative 
Une plateforme applicative... 
Notes 
Complète 
Nombreuses APIs en coursde standardisation 
Ubiquitaire 
Présentdans le monde entierSur tousles terminaux 
Sécurisée 
Protection de la vie privéeNavigationsans effet de bord 
Performante 
NavigateursoptimisésPossibilité de «transpiler» en JSoptimisé 
Ouverte et libre de droits 
Technologies non propriétairesInnovation ouverte, inclusive 
Humaine 
Construite à l’échelle mondiale 
D’intérêtpublic
Le Web comme plateforme applicative
Le Web comme plateforme applicative 
François Daoust (@tidoust) W3C 
#inria_industrie

Weitere ähnliche Inhalte

Was ist angesagt?

Web Matrix (Microsoft WebCamps Paris)
Web Matrix (Microsoft WebCamps Paris)Web Matrix (Microsoft WebCamps Paris)
Web Matrix (Microsoft WebCamps Paris)LeTesteur
 
Viseo intro Prive Public Cloud vs hosting
Viseo intro Prive Public Cloud vs hostingViseo intro Prive Public Cloud vs hosting
Viseo intro Prive Public Cloud vs hostingthavo001
 
Node.js et MongoDB: Mongoose
Node.js et MongoDB: MongooseNode.js et MongoDB: Mongoose
Node.js et MongoDB: Mongoosejeromegn
 
La vitesse d’un site web : un levier de croissance peu exploité
La vitesse d’un site web : un levier de croissance peu exploitéLa vitesse d’un site web : un levier de croissance peu exploité
La vitesse d’un site web : un levier de croissance peu exploitéFasterize
 
Microservices avec Spring Cloud
Microservices avec Spring CloudMicroservices avec Spring Cloud
Microservices avec Spring CloudFlorian Beaufumé
 
Introduction à Rails - Paris on Rails 2006
Introduction à Rails - Paris on Rails 2006Introduction à Rails - Paris on Rails 2006
Introduction à Rails - Paris on Rails 2006Eric D.
 

Was ist angesagt? (9)

Web Matrix (Microsoft WebCamps Paris)
Web Matrix (Microsoft WebCamps Paris)Web Matrix (Microsoft WebCamps Paris)
Web Matrix (Microsoft WebCamps Paris)
 
Viseo intro Prive Public Cloud vs hosting
Viseo intro Prive Public Cloud vs hostingViseo intro Prive Public Cloud vs hosting
Viseo intro Prive Public Cloud vs hosting
 
Node.js et MongoDB: Mongoose
Node.js et MongoDB: MongooseNode.js et MongoDB: Mongoose
Node.js et MongoDB: Mongoose
 
La vitesse d’un site web : un levier de croissance peu exploité
La vitesse d’un site web : un levier de croissance peu exploitéLa vitesse d’un site web : un levier de croissance peu exploité
La vitesse d’un site web : un levier de croissance peu exploité
 
Cms Podcamp 2009
Cms Podcamp 2009Cms Podcamp 2009
Cms Podcamp 2009
 
CasperJS
CasperJSCasperJS
CasperJS
 
REX : la webperf chez RueDuCommerce
REX : la webperf chez RueDuCommerceREX : la webperf chez RueDuCommerce
REX : la webperf chez RueDuCommerce
 
Microservices avec Spring Cloud
Microservices avec Spring CloudMicroservices avec Spring Cloud
Microservices avec Spring Cloud
 
Introduction à Rails - Paris on Rails 2006
Introduction à Rails - Paris on Rails 2006Introduction à Rails - Paris on Rails 2006
Introduction à Rails - Paris on Rails 2006
 

Ähnlich wie Le Web comme plateforme applicative - comment programme-t-on le Web?

USI 2009 - Du RIA pour SI
USI 2009 - Du RIA pour SIUSI 2009 - Du RIA pour SI
USI 2009 - Du RIA pour SIDjamel Zouaoui
 
HTML 5 et CSS3, créez, animez et enrichissez vos sites Web
HTML 5 et CSS3, créez, animez et enrichissez vos sites WebHTML 5 et CSS3, créez, animez et enrichissez vos sites Web
HTML 5 et CSS3, créez, animez et enrichissez vos sites WebMicrosoft
 
L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8davrous
 
HTML5... La révolution maintenant!
HTML5... La révolution maintenant!HTML5... La révolution maintenant!
HTML5... La révolution maintenant!CARA_Lyon
 
HTML5... La révolution maintenant!
HTML5... La révolution maintenant!HTML5... La révolution maintenant!
HTML5... La révolution maintenant!CARA_Lyon
 
Aspectize meetup
Aspectize meetupAspectize meetup
Aspectize meetupAspectize
 
Introduction à web assembly
Introduction à web assemblyIntroduction à web assembly
Introduction à web assemblyJérémy Buget
 
La mobilité dans Drupal
La mobilité dans DrupalLa mobilité dans Drupal
La mobilité dans DrupalAdyax
 
Techniques accélération des pages web #kiwiparty
Techniques accélération des pages web #kiwipartyTechniques accélération des pages web #kiwiparty
Techniques accélération des pages web #kiwipartyJean-Pierre Vincent
 
Architecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinArchitecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinThierry Buisson
 
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative CommonGoogle Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative CommonStéphane Liétard
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?Microsoft
 
Html5 par Florent Garin, au Toulouse JUG
Html5 par Florent Garin, au Toulouse JUGHtml5 par Florent Garin, au Toulouse JUG
Html5 par Florent Garin, au Toulouse JUGJUG Toulouse
 
Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptKhalid Jebbari
 
Comment tester une Progressive Web App
Comment tester une Progressive Web AppComment tester une Progressive Web App
Comment tester une Progressive Web AppTesting Digital
 
Server Side Javascript in the cloud
Server Side Javascript in the cloudServer Side Javascript in the cloud
Server Side Javascript in the cloudstefounet
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?benjguin
 
Dotnet j2 ee
Dotnet j2 eeDotnet j2 ee
Dotnet j2 eechdalel
 
Panel de solutions javascript
Panel de solutions javascriptPanel de solutions javascript
Panel de solutions javascriptjp_mouton
 

Ähnlich wie Le Web comme plateforme applicative - comment programme-t-on le Web? (20)

USI 2009 - Du RIA pour SI
USI 2009 - Du RIA pour SIUSI 2009 - Du RIA pour SI
USI 2009 - Du RIA pour SI
 
HTML 5 et CSS3, créez, animez et enrichissez vos sites Web
HTML 5 et CSS3, créez, animez et enrichissez vos sites WebHTML 5 et CSS3, créez, animez et enrichissez vos sites Web
HTML 5 et CSS3, créez, animez et enrichissez vos sites Web
 
L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8
 
Java pour le Web
Java pour le WebJava pour le Web
Java pour le Web
 
HTML5... La révolution maintenant!
HTML5... La révolution maintenant!HTML5... La révolution maintenant!
HTML5... La révolution maintenant!
 
HTML5... La révolution maintenant!
HTML5... La révolution maintenant!HTML5... La révolution maintenant!
HTML5... La révolution maintenant!
 
Aspectize meetup
Aspectize meetupAspectize meetup
Aspectize meetup
 
Introduction à web assembly
Introduction à web assemblyIntroduction à web assembly
Introduction à web assembly
 
La mobilité dans Drupal
La mobilité dans DrupalLa mobilité dans Drupal
La mobilité dans Drupal
 
Techniques accélération des pages web #kiwiparty
Techniques accélération des pages web #kiwipartyTechniques accélération des pages web #kiwiparty
Techniques accélération des pages web #kiwiparty
 
Architecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinArchitecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et Xamarin
 
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative CommonGoogle Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
 
Html5 par Florent Garin, au Toulouse JUG
Html5 par Florent Garin, au Toulouse JUGHtml5 par Florent Garin, au Toulouse JUG
Html5 par Florent Garin, au Toulouse JUG
 
Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascript
 
Comment tester une Progressive Web App
Comment tester une Progressive Web AppComment tester une Progressive Web App
Comment tester une Progressive Web App
 
Server Side Javascript in the cloud
Server Side Javascript in the cloudServer Side Javascript in the cloud
Server Side Javascript in the cloud
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
 
Dotnet j2 ee
Dotnet j2 eeDotnet j2 ee
Dotnet j2 ee
 
Panel de solutions javascript
Panel de solutions javascriptPanel de solutions javascript
Panel de solutions javascript
 

Le Web comme plateforme applicative - comment programme-t-on le Web?

  • 1. Le Web comme plateforme applicative-Comment programme-t-on le Web? François Daoust (@tidoust) W3C #inria_industrie
  • 2. Une courte histoiredu Web applicatif
  • 3.
  • 4. Interactions utilisateur <form action="post.cgi"> <input type="text" name="nom" /> <input type="submit" title="Valider" /> </form>
  • 5. Interactions utilisateur <form action="post.cgi"> <input type="text" name="nom" /> <input type="submit" title="Valider" /> </form>
  • 6. DHTML •Document Object Model (DOM) •JavaScript •Evénements
  • 8.
  • 9.
  • 10. Propriétés du Web applicatif
  • 12. Sécurité •Primitives de bas niveaudifficilementexposables •Attention aux empreintes !
  • 14. Ex: base de données locale IndexedDBAPI
  • 18. Communications API Usage HTML5 Web Messaging Inter-app(même navigateur) WebRTC P2P,audio/vidéo temps-réel Network Service Discovery Réseaulocal PresentationAPI Ecran secondaireInter-appinter-terminaux
  • 19. PresentationAPI presentation .startSession('http://example.org/pres.html') .then(function (newSession) { session.onstatechange= function () { switch (session.state) { case 'connected': session.postMessage(/*...*/); session.onmessage= function() { /*...*/ }; break; case 'disconnected': console.log('Disconnected.'); break; } }; }, function () { /*...*/ });
  • 20. Packaging •Exécution hors-ligneApplicationCacheService Workers •EmpaquetageFichier manifesteArchive (Zip) Enrobage natif (ex. Cordova)
  • 23. Comme toute autre plateforme ! Besoin Exempled’outils open source Composants, MVC, utilitaires Backbone.js,AngularJS, Ember.js, Enyo, Mustache, SASS Gestion des dépendances Bower, npm, Yeoman Déboguage Outils de développement du navigateur(F12) Tests unitaires, fonctionnels Jasmine, QUnit,Sinon, TestSwarm Testsd’acceptation WebDriver, Selenium, PhantomJS,SlimerJS Contrôlede qualité esvalidate, jslint, JSCover,Istanbul «Compilation» Google ClosureCompiler, RequireJS, SASS «Transpilation» Emscripten, Google Web Toolkit, Ocamljs Automatisation de tâches Grunt, gulp.js, ant, Make Contrôle de version Git, Mercurial,CVS, SVN
  • 24. Penser adaptation •Séparer contenu, design, code •Ciblez les mobiles •Attention aux designs au pixel près ! •Amélioration progressive
  • 25. Client et/ou serveur •Retour du JavaScript côté serveurex: Node.js •Permet de partager la même base de code entre client et serveurex: code de validation d’une saisie
  • 26. Performances •Moteurs JS optimisés •Bonnes pratiques à connaître •ASM.js (1.5x C)
  • 27. Le Web comme plateforme applicative Une plateforme applicative... Notes Complète Nombreuses APIs en coursde standardisation Ubiquitaire Présentdans le monde entierSur tousles terminaux Sécurisée Protection de la vie privéeNavigationsans effet de bord Performante NavigateursoptimisésPossibilité de «transpiler» en JSoptimisé Ouverte et libre de droits Technologies non propriétairesInnovation ouverte, inclusive Humaine Construite à l’échelle mondiale D’intérêtpublic
  • 28. Le Web comme plateforme applicative
  • 29. Le Web comme plateforme applicative François Daoust (@tidoust) W3C #inria_industrie