La MEAN stack. Qu'est-ce qu'une stack?



Documents pareils
Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

les techniques d'extraction, les formulaires et intégration dans un site WEB

Auteur LARDOUX Guillaume Contact Année 2014 DEVELOPPEMENT MOBILE AVEC CORDOVA

Notre processus d embauche

Conception d'un système d'information WEB avec UML Par Ass SERGE KIKOBYA

Les grandes facettes du développement Web Nicolas Thouvenin - Stéphane Gully

Profil. Formations Certifications. Etienne de LONGEAUX Architecte logiciel/ Lead développeur PHP5/SYMFONY2/ZEND 13 ans d expérience.

Davi Trénou. Analyste/Développeur. Concepteur web. Consultant SAP Logan, H2K2B4 Montréal, QC, CA.

Webinar. Découvrez Rubedo, la première solution CMS open-source tirant profit des atouts de Zend Framework et du NoSQL. avec la participation de

Développeur - Conseiller - Formateur web

Informatique & Systèmes de Communication. Stages de 12 à 16 semaines aux Etats-Unis

Nos webmasters, web designers et ingénieurs de développement vous accompagnent dans vos projets afin de vous apporter entière satisfaction.

Architectures en couches pour applications web Rappel : Architecture en couches

Joomla! Création et administration d'un site web - Version numérique

INGÉNIEUR - DÉVELOPPEUR EXPÉRIMENT É PHP. 27 ans - 6 ans d'expérience

Cyrille GUERIN 823, place Soulanges Brossard, J4X1L8

INGÉNIEUR - DÉVELOPPEUR SENIOR PHP. 28 ans - 8 ans d'expérience

Léa Dumas Développeuse front-end Intégratrice //

TYPO3, le CMS de référence

Tutoriel Drupal version 7 :

PHP et le Cloud. All rights reserved. Zend Technologies, Inc.

Devenez un véritable développeur web en 3 mois!

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS

Technologies Web avancées. ING1 SIGL Technologies Web avancées

Raspberry pi : Développer une petite application web sur Raspberry

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

1. La plate-forme LAMP

Yannick Dalbin Développeur Freelance 616 Chemin Du Vallon Des Gavots Aubagne

Nouveautés joomla 3 1/14

BTS SIO Dossier BTS. PURCHLA Romain

Activité sur Meteor. Annexe 1 : notion de client-serveur et notion de base de données

Catalogue des Formations Techniques

Front End Engineer Integration Engineer Ingénieur étude et développement DRUPAL (3 postes)

Documentation de conception

Intégration de systèmes

Point sur les solutions de développement d apps pour les périphériques mobiles

Java pour le Web. Cours Java - F. Michel

AngularJS pour une application d'entreprise

Clauses d'hébergement web

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

COMPÉTENCES TECHNIQUES

Politique et charte de l entreprise INTRANET/EXTRANET

juillet 2015 à janvier 2016

Formation en Logiciels Libres. Fiche d inscription

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova

Architecture et infrastructure Web

Outil de gestion et de suivi des projets

Projet de Java Enterprise Edition

Rapport de stage. Développement d une plateforme de réseau social. Alexandre DEMODE

Les différents parcours en S4

Service de covoiturage nouvelle-génération

Formation : Langues : Types d Intervention et Secteurs d Activité :

juillet 2015 à janvier 2016

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

Programmation Web. Introduction

Installation locale de JOOMLA SEPIA

INGÉNIEUR D'ÉTUDE / DÉVELOPPEMENT. 16 années d expérience LOGICIELS SAAS - RESPONSIVE WEB DESIGN JOOMLA - RÉFÉRENCEMENT NATUREL

Paul FLYE SAINTE MARIE

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

Vade mecum installation et configuration d une machine virtuelle V5.1.0

GWT à l'épreuve du feu. by Sami Jaber (DNG Consulting)

CONNEXION. Une interface de connexion sécurisée, simple et accessible même depuis un appareil mobile. CONNEXION /

Formations qualifiantes pour demandeurs d emploi

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Service WEB, BDD MySQL, PHP et réplication Heartbeat. Conditions requises : Dans ce TP, il est nécessaire d'avoir une machine Debian sous ProxMox

[Serveur de déploiement FOG]

Petite définition : Présentation :

SARL «Alfa Concept», au capital de 3 000, immatriculée au RCS de Montpellier sous le n B

Un serveur web, difficile?

LICENCE PROFESSIONNELLE

Mise à jour : Octobre 2011

Intranet d'établissement avec Eva-web Installation configuration sur serveur 2000 ou 2003 Document pour les administrateurs

Expert technique J2EE

Description de l implantation dans le centre d examen (nom du service ou de l outil et caractéristiques techniques)

Architecture existante (principale)

Offres de stages 2011/2012

Les avantages de la virtualisation sont multiples. On peut citer:

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures

Windows Azure. Principales fonctions

Cartographie des solutions BigData

MySQL. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

Formation : WEbMaster

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Remote Cookies Stealing SIWAR JENHANI (RT4) SOUHIR FARES (RT4)

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

Assurances & Mutuelles, Industrie, Santé, Énergie, Transport, Médias / Multimédias, Télécoms, Services

42 Formations Web & Open Source

Vous avez des problèmes d'impression réseau? UniPrint. est la solution qu'il vous faut. Aperçu du produit

Formation Webmaster : Création de site Web Initiation + Approfondissement

Plateforme Applicative Zend PHP Cloud

Programme ASI Développeur

Sommaire. Préface 1 : Pourquoi choisir Magento? Chapitre 1 : Magento, quésaco? Chapitre 2 : Quoi sous le capot?

May Lopez PETIT COUTEAU SUISSE CRÉATIF. May Lopez Petit couteau suisse créatif

Transcription:

La MEAN stack Jean-Philippe FORESTIER (jpf@osyx.com) http://www.mean-stack.info Qu'est-ce qu'une stack? Une stack est une pile de technologies utilisée pour développer une application web. Une stack peut se caractériser par l'utilisation conjointe: d'un système d'exploitation, d'un langage de programmation, d'un système de gestion de bases de données d'un serveur web. 1

Qu'est-ce qu'une stack? Jusqu'à présent la stack la plus répandue est la stacklamp (Linux, Apache, MySQL, PHP). On ne la présente plus: elle est utilisée par une bonne partie des sites Web existants. Cette stack historique est aujourd'hui confrontée à une nouvelle stack très "tendance": la MEAN stack. MEAN vs LAMP MEAN est l'acronyme de MongoDB, Express.js, AngularJS, et Node.js. Dans la MEAN stack, le système Linux est remplacé par n'importe quel système sur lequel tourne Node.js. Le serveur Apache est lui remplacé par Node.js. MySQL est remplacé par MongoDB. Et le codage du site (fait en PHP dans la stack LAMP) est réalisé avec Express.js côté serveur et AngularJS côté client le tout en JavaScript. 2

MongoDB est une base de données NoSQL orientée document. Elle est "JavaScript-friendly": elle stocke les documents dans un format de type JSON, et propose une API et un shell JavaScript. MongoDB a été construit dans un but de simplicité d'utilisation couplé à de très bonnes performances et une bonne capacité de "scaling". 3

Node.js est une plateforme de développement JavaScript orientée applicatifs serveur. Node.js propose des bibliothèques d'entrées/sorties non bloquantes, fonctionne sur un mode événementiel et est orienté vers le développement d'applications temps-réel. Node.js utilise le moteur JavaScript V8 de Google afin d'apporter des performances optimales. Express.js est un framework MVC Web côté serveur conçu spécialement pour Node.js. Il permet de construire des sites complets de manière assez simple. Il s'agit du frameworkweb le plus utilisé à l'heure actuelle sous Node.js (mais ce n'est pas le seul). Pour faire une analogie, Express est à Node ce que Zend est à PHP. 4

AngularJS est un framework Web (côté frontend) développé par Google AngularJS permet de créer une application Web "Single Page" (SPA) en écrivant un minimum de code, en s'appuyant sur une architecture MV* et sur un mécanisme de liaison bidirectionnel simple et puissant. L'interface utilisateur est décrite dans un HTML légèrement étendu. JavaScript/JSON de bout en bout Utiliser un seul langage de programmation de bout en bout, y compris du côté base de données, facilite grandement le développement. MongoDB stocke les documents dans un format proche de JSON, ces documents JSON peuvent facilement être servis par Node.js et Express.js soit via le driver natif MongoDB soit via le module Node mongoose. 5

JavaScript/JSON de bout en bout Côté front-end, il est très facile de passer un objet JSON à AngularJS qu'il pourra très facilement stocker dans le "scope" (le modèle pour AngularJS). Avec la MEAN stack, il n'y a plus de différences entre les objets manipulés côté front-end et côté back-end: les données sont les mêmes, et, plus important, le format des données est le même. Installation/Distribution Vous pouvez installer chaque élément de la MEAN stack l'un après l'autre en commençant vraisemblablement par MongoDB (indépendant des autres éléments) et Node.js (la plupart des autres éléments sont proposés sous la forme de modules npm, lui-même étant un outil Node.js). Une autre option est d'utiliser des distributions toutes faites (un peu comme LAMP ou WAMP dans un autre contexte): MEAN.io ou MEAN.js. 6

Installation/Distribution MEAN.io et MEAN.JS sont 2 distributions issues d'un même développeur (Amos Haviv). La première distribution développée est MEAN.io (reprise ensuite par la société Linnovate). En conflit avec Linnovate, Amos Haviv décide de créer un fork: MEAN.js Installation/Distribution Les 2 distributions sont assez proches, voici quelques points qui les distinguent: MEAN.js utilise Yeoman, alors que MEAN.io a son propre outil de "scafolding", MEAN.js propose une documentation plus fournie, MEAN.io est utilisée par une communauté plus importante. D'autres "Stacks" existent, plus ou moins éloignées de la MEAN Stack: elles se distinguent souvent par la base de données utilisée ou par le framework employé pour le front-end. 7

La MEAN Stack, pour quel usage? La MEAN Stack est utilisée aujourd'hui pour développer toutes sortes d'applications Web: des plateformes de type CMS ou blogging comme Ghost et PencilBlue, en passant par les portefeuilles numériques comme Ziploop jusqu'aux magasins en ligne comme StoreHippo. Néanmoins, la stack LAMP (et les autres stack: JEE,.Net, ) restent d'actualité et la MEAN stack ne prétend pas les remplacer. 8