SlideShare une entreprise Scribd logo
1  sur  24
A T E L I E R T E C H N I Q U E
I N T R O D U C T I O N A U X W E B C O M P O N E N T S
22 mars 2016
L e p r o b l è m e d u d é v e l o p p e m e n t W E B
« Ce qui est simple est faux »
PaulValery
La réalité
« Ce qui est compliqué est inutilisable »
PaulValery
Programmation Objet
« J’ai tout fait avec des balises Div »
Anonyme
Développement Web
2
1 2
3 4
Frameworks serveurs
HTML
Frameworks clients
Web components
Réponses
3
PrimeFaces
<p:calendar value="#{calendarView.date1}"
mode="inline" />
<input type="datetime">
<paper-date-picker date="April 20, 2015">
<paper-date-picker
date="April 20, 2015">
$('#defaultPopup,#defaultInline').datepick();
PHP ou Java… ?
JSF ou JSP ?
Incomplet
Pas mal…
Késako ?
U n c o m p o s a n t ?
Une structure
Un comportement
Un style
4
B a c k t o t h e t r e e
5
Balises HTML : <body>, <div>, …
Mes balises : <ma-balise1>, <ma-balise1>, …
Autres balises : <google-map>, <ckeditor>
<DOM>
Un composant est indépendant de la technologie serveur
Encapsulation
B a c k t o t h e t r e e
6
Client Serveur
Json Rest (PHP, Java,
Node.js…)
Javascript
Définir des composants  Définir des interfaces de services
W E B C o m p o n e n t s
HTML Imports Custom Elements Templates Shadow DOM
Objectif: permettre d’inclure des
fichiers html au sein de fichiers
html.
Objectif: permettre de définir ses
propres balises
Objectif: définir des parties
d’arborescence du DOM à réutiliser
Objectif : définir des limites pour
les styles au sein du DOM.
4 NormesW3C
7
http://w3c.github.io/webcomponen
ts/spec/imports/
http://w3c.github.io/webcomponen
ts/spec/custom/
https://html.spec.whatwg.org/mult
ipage/scripting.html#the-
template-element
http://w3c.github.io/webcomponen
ts/spec/shadow/
Un premier pro blème…
Les navigateurs, même dans leurs dernières versions, ne supportent pas toutes normes desWeb Components…
webco mpo nent.js - http://webco mpo nents .o rg/
Plusieurs librairies complémentaires ont été développées pour faciliter le développement de web components
Polymer : https://www.polymer-project.org (Google) X-Tag : http://x-tag.github.io/ (Mozilla) Bosonic : http://bosonic.github.io/
Catalogues de composants
https://customelements.io/
…
Catalogue
<google-map>
10
Un exemple
12
Inclusion webcomponent.js
Index.html
Hello-world.html
Inclusion polymer
HTML import
Template
Comportement dynamique
Custom element
H e l l o U n i c o r n
13
«Le javascript c’est
tout pourri à coder»
PaulValery
G W T E v i d e m m e n t
15
Avec GWT 2.7 la frontière entre Java et Javascript s'amenuise
Javascript vers GWT
 Il est possible, dans du code GWT de manipuler desWeb components
GWT vers Javascript
 Il est possible de développer des web components à partir de widgets GWT
Article :
https://vaadin.com/blog/-/blogs/use-gwt-widget-as-polymer-web-component
Un exemple
We b C o m p o n e n t G W T
17
Le composant est essentiellement développé en GWT
We b C o m p o n e n t G W T
18
Le composant est enrobé dans un web component (Polymer)
We b C o m p o n e n t G W T
19
Le composant est ajouté normalement dans la page web
The next big thing ?
In co n vén ien ts
Questions globales
Incertitude sur l’adoption de la norme par les
développeurs
 Quelle librairie utiliser (polymer, x-tag,…) ?
 Organisation de l’écosystème des web components
Questions liées à GWT
 Compatibilité réelle des navigateurs ?
Débuggage via SDGB
Avan tages
Avantages globaux
 Mutualisation de code indépendant de la technologie
serveur
 Mutualisation entre les applications et les CDS
 Nombreuses idées de composants intéressants :
 Métadonnées
 Quicklooks
…
Avantages liées à GWT
 Utilisation du code dans les applications GWT
 Réutilisation des librairies GWT
Utilisation des outils de développement classiques
(maven, eclipse, …)
«Faudrait peut-être
prendre un stagiaire ?»
PaulValery
M erci
www.aeris-data.fr
Modèle de présentation : ttp://thepopp.com/ - Jun Akizak

Contenu connexe

Tendances

Migration d'une base de code subversion vers git
Migration d'une base de code subversion vers gitMigration d'une base de code subversion vers git
Migration d'une base de code subversion vers git
Geoffrey Bachelet
 

Tendances (20)

Git
GitGit
Git
 
Git : Deux écoles de pensées, merge vs rebase
Git : Deux écoles de pensées, merge vs rebaseGit : Deux écoles de pensées, merge vs rebase
Git : Deux écoles de pensées, merge vs rebase
 
Découvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentraliséDécouvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentralisé
 
Git l'essentiel
Git l'essentielGit l'essentiel
Git l'essentiel
 
Présentation Git & GitHub
Présentation Git & GitHubPrésentation Git & GitHub
Présentation Git & GitHub
 
Tutorial Git
Tutorial GitTutorial Git
Tutorial Git
 
Atelier Git + GitHub
Atelier Git + GitHubAtelier Git + GitHub
Atelier Git + GitHub
 
Git utilisation quotidienne
Git   utilisation quotidienneGit   utilisation quotidienne
Git utilisation quotidienne
 
Les bases de git
Les bases de gitLes bases de git
Les bases de git
 
Migration d'une base de code subversion vers git
Migration d'une base de code subversion vers gitMigration d'une base de code subversion vers git
Migration d'une base de code subversion vers git
 
GitPourLaNulle
GitPourLaNulleGitPourLaNulle
GitPourLaNulle
 
Présentation de git
Présentation de gitPrésentation de git
Présentation de git
 
Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014
 
Petit Déjeuner Git chez Makina Corpus
Petit Déjeuner Git chez Makina CorpusPetit Déjeuner Git chez Makina Corpus
Petit Déjeuner Git chez Makina Corpus
 
Meetup CMS Rubedo 12 décembre 2013
Meetup CMS Rubedo 12 décembre 2013Meetup CMS Rubedo 12 décembre 2013
Meetup CMS Rubedo 12 décembre 2013
 
Conférence #nwxtech4 : GIT par Thibaud Juin
Conférence #nwxtech4 : GIT par Thibaud JuinConférence #nwxtech4 : GIT par Thibaud Juin
Conférence #nwxtech4 : GIT par Thibaud Juin
 
GitHub - Présentation
GitHub - PrésentationGitHub - Présentation
GitHub - Présentation
 
Git développez autrement
Git développez autrementGit développez autrement
Git développez autrement
 
[OSSPARIS17] Le guide du connard du logiciel libre
[OSSPARIS17] Le guide du connard du logiciel libre[OSSPARIS17] Le guide du connard du logiciel libre
[OSSPARIS17] Le guide du connard du logiciel libre
 
PAUG 03/05/2016 : Rechercher et analyser les fuites mémoires dans une applica...
PAUG 03/05/2016 : Rechercher et analyser les fuites mémoires dans une applica...PAUG 03/05/2016 : Rechercher et analyser les fuites mémoires dans une applica...
PAUG 03/05/2016 : Rechercher et analyser les fuites mémoires dans une applica...
 

En vedette

En vedette (9)

TP GWT JDEV 2015
TP GWT JDEV 2015TP GWT JDEV 2015
TP GWT JDEV 2015
 
Recommandations rda sur la citation des données
Recommandations rda sur la citation des donnéesRecommandations rda sur la citation des données
Recommandations rda sur la citation des données
 
Présentation normes OGC
Présentation normes OGCPrésentation normes OGC
Présentation normes OGC
 
Panorama citation des donnees
Panorama citation des donneesPanorama citation des donnees
Panorama citation des donnees
 
Formation gwt
Formation gwtFormation gwt
Formation gwt
 
Introduction aux web components
Introduction aux web componentsIntroduction aux web components
Introduction aux web components
 
Service WEB de type REST avec Java
Service WEB de type REST avec JavaService WEB de type REST avec Java
Service WEB de type REST avec Java
 
Testing Web Applications with GEB
Testing Web Applications with GEBTesting Web Applications with GEB
Testing Web Applications with GEB
 
Git Flow: un processus de développement Agile
Git Flow: un processus de développement AgileGit Flow: un processus de développement Agile
Git Flow: un processus de développement Agile
 

Similaire à Paul valery et les Web components

Oxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performanceOxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performance
Ludovic Piot
 
Gtug2 Mobile app with web technlogy
Gtug2 Mobile app with web technlogyGtug2 Mobile app with web technlogy
Gtug2 Mobile app with web technlogy
Sacha Leprêtre
 
Matin Bavards à l'Agence Code Embarque 2010
Matin Bavards à l'Agence Code Embarque 2010Matin Bavards à l'Agence Code Embarque 2010
Matin Bavards à l'Agence Code Embarque 2010
MBA Multimedia
 

Similaire à Paul valery et les Web components (20)

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!
 
ASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJS
 
Morning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slidesMorning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slides
 
Oxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performanceOxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performance
 
Paris Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascriptParis Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascript
 
20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache Maven20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache Maven
 
Construire une PWA connectée à WordPress
Construire une PWA connectée à WordPressConstruire une PWA connectée à WordPress
Construire une PWA connectée à WordPress
 
Gtug2 Mobile app with web technlogy
Gtug2 Mobile app with web technlogyGtug2 Mobile app with web technlogy
Gtug2 Mobile app with web technlogy
 
Un site de collectivité sur WordPress ? Méthodes et retours d'XP
Un site de collectivité sur WordPress ? Méthodes et retours d'XPUn site de collectivité sur WordPress ? Méthodes et retours d'XP
Un site de collectivité sur WordPress ? Méthodes et retours d'XP
 
Les bonnes pratiques SEO avec les frameworks javascript - SEO CAMPUS 9 mars 2017
Les bonnes pratiques SEO avec les frameworks javascript - SEO CAMPUS 9 mars 2017Les bonnes pratiques SEO avec les frameworks javascript - SEO CAMPUS 9 mars 2017
Les bonnes pratiques SEO avec les frameworks javascript - SEO CAMPUS 9 mars 2017
 
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
 
Matin Bavards à l'Agence Code Embarque 2010
Matin Bavards à l'Agence Code Embarque 2010Matin Bavards à l'Agence Code Embarque 2010
Matin Bavards à l'Agence Code Embarque 2010
 
Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !
 
Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !
 
Etendre le Web avec les Web Components
Etendre le Web avec les Web ComponentsEtendre le Web avec les Web Components
Etendre le Web avec les Web Components
 
Présentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflinePrésentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'Offline
 
Paris Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacyParis Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacy
 
Association 2 0
Association 2 0Association 2 0
Association 2 0
 
Association 2 0
Association 2 0Association 2 0
Association 2 0
 

Paul valery et les Web components

  • 1. A T E L I E R T E C H N I Q U E I N T R O D U C T I O N A U X W E B C O M P O N E N T S 22 mars 2016
  • 2. L e p r o b l è m e d u d é v e l o p p e m e n t W E B « Ce qui est simple est faux » PaulValery La réalité « Ce qui est compliqué est inutilisable » PaulValery Programmation Objet « J’ai tout fait avec des balises Div » Anonyme Développement Web 2
  • 3. 1 2 3 4 Frameworks serveurs HTML Frameworks clients Web components Réponses 3 PrimeFaces <p:calendar value="#{calendarView.date1}" mode="inline" /> <input type="datetime"> <paper-date-picker date="April 20, 2015"> <paper-date-picker date="April 20, 2015"> $('#defaultPopup,#defaultInline').datepick(); PHP ou Java… ? JSF ou JSP ? Incomplet Pas mal… Késako ?
  • 4. U n c o m p o s a n t ? Une structure Un comportement Un style 4
  • 5. B a c k t o t h e t r e e 5 Balises HTML : <body>, <div>, … Mes balises : <ma-balise1>, <ma-balise1>, … Autres balises : <google-map>, <ckeditor> <DOM> Un composant est indépendant de la technologie serveur Encapsulation
  • 6. B a c k t o t h e t r e e 6 Client Serveur Json Rest (PHP, Java, Node.js…) Javascript Définir des composants  Définir des interfaces de services
  • 7. W E B C o m p o n e n t s HTML Imports Custom Elements Templates Shadow DOM Objectif: permettre d’inclure des fichiers html au sein de fichiers html. Objectif: permettre de définir ses propres balises Objectif: définir des parties d’arborescence du DOM à réutiliser Objectif : définir des limites pour les styles au sein du DOM. 4 NormesW3C 7 http://w3c.github.io/webcomponen ts/spec/imports/ http://w3c.github.io/webcomponen ts/spec/custom/ https://html.spec.whatwg.org/mult ipage/scripting.html#the- template-element http://w3c.github.io/webcomponen ts/spec/shadow/
  • 8. Un premier pro blème… Les navigateurs, même dans leurs dernières versions, ne supportent pas toutes normes desWeb Components…
  • 9. webco mpo nent.js - http://webco mpo nents .o rg/ Plusieurs librairies complémentaires ont été développées pour faciliter le développement de web components Polymer : https://www.polymer-project.org (Google) X-Tag : http://x-tag.github.io/ (Mozilla) Bosonic : http://bosonic.github.io/
  • 12. 12 Inclusion webcomponent.js Index.html Hello-world.html Inclusion polymer HTML import Template Comportement dynamique Custom element
  • 13. H e l l o U n i c o r n 13
  • 14. «Le javascript c’est tout pourri à coder» PaulValery
  • 15. G W T E v i d e m m e n t 15 Avec GWT 2.7 la frontière entre Java et Javascript s'amenuise Javascript vers GWT  Il est possible, dans du code GWT de manipuler desWeb components GWT vers Javascript  Il est possible de développer des web components à partir de widgets GWT Article : https://vaadin.com/blog/-/blogs/use-gwt-widget-as-polymer-web-component
  • 17. We b C o m p o n e n t G W T 17 Le composant est essentiellement développé en GWT
  • 18. We b C o m p o n e n t G W T 18 Le composant est enrobé dans un web component (Polymer)
  • 19. We b C o m p o n e n t G W T 19 Le composant est ajouté normalement dans la page web
  • 20. The next big thing ?
  • 21. In co n vén ien ts Questions globales Incertitude sur l’adoption de la norme par les développeurs  Quelle librairie utiliser (polymer, x-tag,…) ?  Organisation de l’écosystème des web components Questions liées à GWT  Compatibilité réelle des navigateurs ? Débuggage via SDGB
  • 22. Avan tages Avantages globaux  Mutualisation de code indépendant de la technologie serveur  Mutualisation entre les applications et les CDS  Nombreuses idées de composants intéressants :  Métadonnées  Quicklooks … Avantages liées à GWT  Utilisation du code dans les applications GWT  Réutilisation des librairies GWT Utilisation des outils de développement classiques (maven, eclipse, …)
  • 23. «Faudrait peut-être prendre un stagiaire ?» PaulValery
  • 24. M erci www.aeris-data.fr Modèle de présentation : ttp://thepopp.com/ - Jun Akizak