Erwan BOULARD
https://twitter.com/erwanboulard
Agenda
1. Qu’est ce que Meteor JS ?
2. Principes
3. Le framework
4. Développement cross-plateforme
5. Qui l’utilise ?
6. Démo
Qu’est ce que Meteor JS ?
Qu’est ce que Meteor JS ?
Framework de développement web en Javascript basé sur node
Permet de créer des applications multiplateformes (web et mobile)
Langage JavaScript coté serveur et coté client
Permet d’avoir un comportement proche du temps réel
Principes
1 – Echange de données
Plus d’échange de fichiers HTML après le premier appel (contrairement au
comportement classique d’applications PHP, JavaEE, etc.)
 Meteor, n'envoie pas de code HTML, il envoie des données et laisse au client le soin de
faire le rendu de l'application.
Utilisation du protocole DDP(Distributed Data Protocol) pour la
communication client/serveur
 Protocole basé sur les websockets
 Echange de données au format EJSON (json étendu – Gestion de types
supplémentaires)
2 – Un seul langage
JavaScript pour travailler côté serveur et client
Mutualisation de codes entre le client et le
serveur
Possibilité d’utiliser d’autres langages comme
CoffeeScript, Typescript, ECMAScript, etc.
3 – Bases de données coté serveur et client
Une base de données MongoDB côté
serveur
Une base MiniMongo côté client
(réimplémentation d’une partie de l’API
MongoDB)
Une Synchronisation entre les deux
4 – Compensation de latences
Compensation grâce au principe
d’« Optimistic UI »
Pour pallier le temps de latence d’un
aller retour serveur, une
compensation est effectuée
directement dans le navigateur
Plutôt que d'attendre que les
données envoyées ne soient
renvoyées, un contrôle optimiste est
fait côté client dans l’attente d’un
retour serveur
5 – Une grande réactivité
Meteor est basé sur la réactivité et
s’approche du temps réel (connecteur
livequery)
Les données du backend et du frontend
sont mises à jour automatiquement
Toutes les informations dans le navigateur
client peuvent changer à n'importe quel
moment, sans que le client n'ait effectué
une seule requête
6 – Simplicité synonyme de productivité
Plateforme complète sans besoin d’ajout de composants externes
supplémentaires
Installation simple et rapide
Développement efficace en très peu de lignes de codes
Meteor est fortement modulable grâce à ses packages officiels ou issus
de la communauté (répertoriés sur Atmosphere).
Des outils et des modules pour tous les besoins
7 – L’écosystème
Meteor possède son propre gestionnaire de packages, « Atmosphere »
(https://atmospherejs.com), qui propose près de 10000 packages
La communauté autour de Meteor est conséquente et très active
Compatibilité assurée avec les modules nodejs (npm)
Populaire sur Github : 31k stars (classé 11ème des projets js les plus
étoilés de github – Déc 2015)
Le framework
Architecture applicative
 Meteor est un ensemble de projets
qui constitue une plateforme
complète pour le développement
d’application desktop et mobile
 Meteor propose une compatibilité
avec Angular ou React, en
remplacement de son moteur de
template Blaze
Build, packaging, déploiement
Meteor intègre un outil pour le build, packaging et déploiement
Ces étapes sont toutes automatisées et nécessitent un minimum de
temps de configuration
De nombreux packages sont disponibles pour répondre à des besoins
particuliers
Une plateforme de test en ligne est disponible et mise à disposition par
Meteor
Sécurité
Pas d’accès direct à la base Mongo depuis le client
Pas de synchronisation complète de la base Mongo côté serveur dans la
base client
On à la main sur les données que l’on souhaite synchroniser avec la base
de données coté client (méthodes publish/subscribe)
D’autres procédés permettent d’ajouter une couche de validation avant les
opérations en bdd côté client et côté serveur (callbacks Allow/Deny ou
Meteor Methods)
Le test sur Meteor
Le test runner officiel de Meteor est Velocity (développé
par la communauté Meteor)
Possibilité d’utiliser d’autres tests runner (ex : karma,
chimp, etc)
Ecriture de tests avec les principaux fwk JS
Jasmine
Mocha
Cucumber
Développement
cross-plateforme
Développement Cross-platforme
 Génération à partir du même code un
site web et des applications mobiles
multiplateformes
 Intégration de Apache Cordova pour la
génération d’applications mobiles IOS et
Android (et pas windows phone)
 Propose un package, spiderable, pour
l’optimisation du référencement par les
moteurs de recherches
Qui l’utilise ?
Qui l’utilise ?
 https://rocket.chat/ : Plateforme type slack
(outil de collaboration en ligne)
 https://beta.workpop.com/ : Plateforme
proposant des offres d’emploi
 https://hansoftx.com : plateforme
collaborative
 https://codefights.com/ : Test de coding
 https://github.com/idanwe/meteor-
whatsapp : whatsapp en version Meteor
 etc….
Demo
Demos
Lien vers la démo : http://eboulard.meteor.com
Le live update
Structure d’un projet meteor
Sources
Sources
http://info.meteor.com/
https://fr.wikipedia.org/wiki/Meteor_(framework)
http://joshowens.me/what-is-meteor-js/
http://fr.discovermeteor.com/
https://openclassrooms.com/courses/creez-une-single-page-app-avec-
node-js-et-meteor/
http://www.tiz.fr/meteor-js-framework-javascript/
https://meteorhacks.com/introduction-to-ddp.html

Contenu connexe

PPT
Introduction à Vaadin
PPTX
Angular + JHipster @ Paris JUG
PDF
Prise en main de Jhipster
PDF
Meteor: you're going to love full-stack JavaScript. At last.
PPT
De Google+ à twitter en passant par le Cloud
PPTX
01 - [ASP.NET Core] Plénière
PDF
Introduction to WebRTC on iOS
Introduction à Vaadin
Angular + JHipster @ Paris JUG
Prise en main de Jhipster
Meteor: you're going to love full-stack JavaScript. At last.
De Google+ à twitter en passant par le Cloud
01 - [ASP.NET Core] Plénière
Introduction to WebRTC on iOS

En vedette (11)

PPT
Meteor Showers
PPTX
Lessons Learned About MeteorJS
ODT
PDF
Angular meteor presentation
PPTX
Introduction à meteor
PDF
Meteorjs - Futuristic web framework
PPTX
Meteor presentation
PDF
Federal endorsement and interaction with regional officials in the process of...
PPTX
Meteor intro-2015
PDF
Meteor presentation
Meteor Showers
Lessons Learned About MeteorJS
Angular meteor presentation
Introduction à meteor
Meteorjs - Futuristic web framework
Meteor presentation
Federal endorsement and interaction with regional officials in the process of...
Meteor intro-2015
Meteor presentation
Publicité

Similaire à Meteor js 1.0 (20)

PPT
Informatique Mobile et synchronisation
PDF
Être productif avec JHipster - Devoxx France 2017
PPTX
JavaScript aussi sur le serveur et jusque dans le cloud?
PPT
Présentation GWT et HTML 5 pour l'Offline
PPTX
Server Side Javascript in the cloud
PPTX
JavaScript aussi sur le serveur et jusque dans le cloud?
PPT
GtugDakar AppEngine, Gwt
PPTX
Framework .net overview
PPTX
ReMix11 Paris: Windows Azure & développement mobile
PDF
CHOUGDALI_CoursJEE.pdfhjkhjjjjjjjjjjjjjjjjjjjjjjjjjj
PPTX
Devoteam REX OpenShift DevOps - Red Hat Roadshow Paris - avril 2018
PDF
De l'Open Source à l'Open API (in French)
PPTX
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
PPTX
Au coeur du framework .net 4.5.1
PPS
Informatique Mobile d'Entreprise
PPT
2009-02-11 COL318 - Quoi de neuf dans l'administration SharePoint
PDF
Architecture microservices avec docker
PDF
Développer et déployer dans le cloud
PDF
Bbl microservices avec vert.x cdi elastic search
PPTX
Au cœur du Framework .NET 4.5.1
Informatique Mobile et synchronisation
Être productif avec JHipster - Devoxx France 2017
JavaScript aussi sur le serveur et jusque dans le cloud?
Présentation GWT et HTML 5 pour l'Offline
Server Side Javascript in the cloud
JavaScript aussi sur le serveur et jusque dans le cloud?
GtugDakar AppEngine, Gwt
Framework .net overview
ReMix11 Paris: Windows Azure & développement mobile
CHOUGDALI_CoursJEE.pdfhjkhjjjjjjjjjjjjjjjjjjjjjjjjjj
Devoteam REX OpenShift DevOps - Red Hat Roadshow Paris - avril 2018
De l'Open Source à l'Open API (in French)
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
Au coeur du framework .net 4.5.1
Informatique Mobile d'Entreprise
2009-02-11 COL318 - Quoi de neuf dans l'administration SharePoint
Architecture microservices avec docker
Développer et déployer dans le cloud
Bbl microservices avec vert.x cdi elastic search
Au cœur du Framework .NET 4.5.1
Publicité

Meteor js 1.0

  • 2. Agenda 1. Qu’est ce que Meteor JS ? 2. Principes 3. Le framework 4. Développement cross-plateforme 5. Qui l’utilise ? 6. Démo
  • 3. Qu’est ce que Meteor JS ?
  • 4. Qu’est ce que Meteor JS ? Framework de développement web en Javascript basé sur node Permet de créer des applications multiplateformes (web et mobile) Langage JavaScript coté serveur et coté client Permet d’avoir un comportement proche du temps réel
  • 6. 1 – Echange de données Plus d’échange de fichiers HTML après le premier appel (contrairement au comportement classique d’applications PHP, JavaEE, etc.)  Meteor, n'envoie pas de code HTML, il envoie des données et laisse au client le soin de faire le rendu de l'application. Utilisation du protocole DDP(Distributed Data Protocol) pour la communication client/serveur  Protocole basé sur les websockets  Echange de données au format EJSON (json étendu – Gestion de types supplémentaires)
  • 7. 2 – Un seul langage JavaScript pour travailler côté serveur et client Mutualisation de codes entre le client et le serveur Possibilité d’utiliser d’autres langages comme CoffeeScript, Typescript, ECMAScript, etc.
  • 8. 3 – Bases de données coté serveur et client Une base de données MongoDB côté serveur Une base MiniMongo côté client (réimplémentation d’une partie de l’API MongoDB) Une Synchronisation entre les deux
  • 9. 4 – Compensation de latences Compensation grâce au principe d’« Optimistic UI » Pour pallier le temps de latence d’un aller retour serveur, une compensation est effectuée directement dans le navigateur Plutôt que d'attendre que les données envoyées ne soient renvoyées, un contrôle optimiste est fait côté client dans l’attente d’un retour serveur
  • 10. 5 – Une grande réactivité Meteor est basé sur la réactivité et s’approche du temps réel (connecteur livequery) Les données du backend et du frontend sont mises à jour automatiquement Toutes les informations dans le navigateur client peuvent changer à n'importe quel moment, sans que le client n'ait effectué une seule requête
  • 11. 6 – Simplicité synonyme de productivité Plateforme complète sans besoin d’ajout de composants externes supplémentaires Installation simple et rapide Développement efficace en très peu de lignes de codes Meteor est fortement modulable grâce à ses packages officiels ou issus de la communauté (répertoriés sur Atmosphere). Des outils et des modules pour tous les besoins
  • 12. 7 – L’écosystème Meteor possède son propre gestionnaire de packages, « Atmosphere » (https://atmospherejs.com), qui propose près de 10000 packages La communauté autour de Meteor est conséquente et très active Compatibilité assurée avec les modules nodejs (npm) Populaire sur Github : 31k stars (classé 11ème des projets js les plus étoilés de github – Déc 2015)
  • 14. Architecture applicative  Meteor est un ensemble de projets qui constitue une plateforme complète pour le développement d’application desktop et mobile  Meteor propose une compatibilité avec Angular ou React, en remplacement de son moteur de template Blaze
  • 15. Build, packaging, déploiement Meteor intègre un outil pour le build, packaging et déploiement Ces étapes sont toutes automatisées et nécessitent un minimum de temps de configuration De nombreux packages sont disponibles pour répondre à des besoins particuliers Une plateforme de test en ligne est disponible et mise à disposition par Meteor
  • 16. Sécurité Pas d’accès direct à la base Mongo depuis le client Pas de synchronisation complète de la base Mongo côté serveur dans la base client On à la main sur les données que l’on souhaite synchroniser avec la base de données coté client (méthodes publish/subscribe) D’autres procédés permettent d’ajouter une couche de validation avant les opérations en bdd côté client et côté serveur (callbacks Allow/Deny ou Meteor Methods)
  • 17. Le test sur Meteor Le test runner officiel de Meteor est Velocity (développé par la communauté Meteor) Possibilité d’utiliser d’autres tests runner (ex : karma, chimp, etc) Ecriture de tests avec les principaux fwk JS Jasmine Mocha Cucumber
  • 19. Développement Cross-platforme  Génération à partir du même code un site web et des applications mobiles multiplateformes  Intégration de Apache Cordova pour la génération d’applications mobiles IOS et Android (et pas windows phone)  Propose un package, spiderable, pour l’optimisation du référencement par les moteurs de recherches
  • 21. Qui l’utilise ?  https://rocket.chat/ : Plateforme type slack (outil de collaboration en ligne)  https://beta.workpop.com/ : Plateforme proposant des offres d’emploi  https://hansoftx.com : plateforme collaborative  https://codefights.com/ : Test de coding  https://github.com/idanwe/meteor- whatsapp : whatsapp en version Meteor  etc….
  • 22. Demo
  • 23. Demos Lien vers la démo : http://eboulard.meteor.com Le live update Structure d’un projet meteor