SlideShare une entreprise Scribd logo
Donnez votre avis !
Depuis votre smartphone, sur :
http://notes.mstechdays.fr
De nombreux lots à gagner toutes les heures !!!
Claviers, souris et jeux Microsoft…
Merci de nous aider à améliorer les TechDays
http://notes.mstechdays.fr
Introduction à node.js
Pierre Couzy
Resp. relations développeurs
Microsoft
Guillaume Leborgne
Architecte .Net
MCNEXT
gleborgne@mcnext.com
http://www.mcnext.com
180 collaborateurs
Depuis 2007 à Paris - Lyon - Genève
Stand 97 – Zone bleu
foncé
Business
Intelligence
Talk
Biz
NET
Dot Share
Point
Microsoft
100 %
La mode et l’informatique sont
cycliques…
Les langages « has been » il y a 5 ans
• Ruby / Python
• C++
• Javascript
• …
Node.js est un
environnement
d’exécution JavaScript
Basé sur V8 (le moteur
JavaScript de Chrome)
Node.js
NODE.EXE
• L’objectif de Node.js est de proposer un
moyen simple de réaliser des applications
réseau capables de monter en charge
Buts de conception
• Multi plateforme (Unix, Mac, Windows, …)
• Scalable et monothread
• Basé sur une boucle d’événements
• I/O non bloquantes
Caractéristiques
Excellent pour :
• Communications temps
réel (sockets, polling, …)
• Services réseaux sur
mesure (proxies, …)
• API web (services json)
• Sites web
Inadapté pour :
• Usage intensif du CPU
(transcodage vidéo,
calculs mathématiques,
…)
Usages
• Applications réseau (et donc web)
hautement scalable
– Gère plusieurs centaines de milliers de connexions
simultanées avec un CPU et quelques Mo de RAM
• Même langage de programmation côté
client et côté serveur
– Mêmes formats & types pour la donnée
Pourquoi tout ce buzz ?
• Liste non exhaustive disponible ici :
– https://github.com/joyent/node/wiki/Projects,-
Applications,-and-Companies-Using-Node
• Azure mobile services !
Exemples d’applications réalisées avec
Node
HELLO WORLD, SAUCE NODE
Mon premier serveur web
$query = 'SELECT * FROM users WHERE id = ?';
$users = query($query, array($id)); //on fait attendre le thread X ms…
Console.log($users);
$query = 'SELECT * FROM activities ORDER BY timestamp LIMIT 50';
$activities = query($query); // on fait attendre le thread X ms…
Console.log($activities);
$query = 'SELECT count(points) as total, user_id FROM activities LIMIT
50';
$leader_board = query($query); // on fait attendre le thread X ms…
Console.log($ leader_board );
I/O Bloquantes
Source: http://blog.csdn.net/tianyue168/article/details/6656370
Gestion des IO bloquantes par l’OS
var query = 'SELECT * FROM users WHERE id = ?';
db.query(query, [userId], function (err, results) {
console.log(results);
});
var query = 'SELECT * FROM activities ORDER BY timestamp LIMIT 50';
db.query(query, function (err, results) {
console.log(results);
});
var query = 'SELECT count(points) as total, user_id FROM activities LIMIT 50';
db.query(query, function (err, results) {
console.log(results);
});
I/O non bloquantes
• Peut être déroutant si on n’est pas habitué à ces
mécanismes
• Attention au « callbackhell »
• Modèle de callbacks de Node :
maFonction(arguments, function (erreur, donnees) {
if (erreur) {
// Gestion des cas d’erreur
}
// traitement des données.
});
Asynchronie gérée par des callbacks
var userQuery = 'SELECT * FROM users WHERE id = ?';
var activityQuery = 'SELECT * FROM activities ORDER BY timestamp LIMIT 50';
var leaderBoardQuery = 'SELECT count(points) as total, user_id FROM activities
LIMIT 50';
db.query(userQuery, [id], function (userErr, userResults) {
db.query(activityQuery, function (activityErr, activityResults) {
db.query(leaderBoardQuery, function (leaderBoardErr, leaderBoardResults)
{
// Do something here
});
});
});
Attention au « callbackhell »
• Points d’extension de Node
• Basés sur CommonJS
• Gérés avec l’utilitaire npm
• Plusieurs dizaines de milliers de module
existants !
• Dépendances gérées à travers le fichier
package.json
Les modules
https://npmjs.org/
• Express
• Socket.io
• Underscore
• Jade
• Async
• …
Modules courants
AZURE CLIENT
• Node.exe
• Intégration dans IIS avec le module IISNode
Node pour Windows
<configuration>
<system.webServer>
<handlers>
<add name="iisnode"
path="server.js"
verb="*"
modules="iisnode" />
</handlers>
</system.webServer>
</configuration>
• Dans Azure Web Sites
– Repose également sur IISnode
– Points de personnalisation :
• Package.json
• Web.config
– Changer sa version de node
Node.js et Windows Azure
• Environnement de dev
• Processus de publication
• Débogage
Node.js avec Webmatrix et Visual Studio
CRÉER, DEBUGGER, PUBLIER
UNE APPLICATION NODE
Questions / Réponses
Merci !
Donnez votre avis !
Depuis votre smartphone, sur :
http://notes.mstechdays.fr
De nombreux lots à gagner toutes les heures !!!
Claviers, souris et jeux Microsoft…
Merci de nous aider à améliorer les TechDays
http://notes.mstechdays.fr
Formez-vous en ligne
Retrouvez nos évènements
Faites-vous accompagner
gratuitement
Essayer gratuitement nos
solutions IT
Retrouver nos experts
Microsoft
Pros de l’ITDéveloppeurs
www.microsoftvirtualacademy.comhttp://aka.ms/generation-app
http://aka.ms/evenements-
developpeurs
http://aka.ms/itcamps-france
Les accélérateurs
Windows Azure, Windows Phone,
Windows 8
http://aka.ms/telechargements
La Dev’Team sur MSDN
http://aka.ms/devteam
L’IT Team sur TechNet
http://aka.ms/itteam

Contenu connexe

PDF
Cours php & Mysql - 3éme partie
PPTX
Haute Disponibilité et Disaster Recovery
PPTX
Jug algeria x wiki-atelier
PPTX
Initiation à Express js
PPTX
Node.js dans Azure
PPTX
Atelier : Développement rapide d&rsquo;une application basée surXWiki
PPT
Php mysql cours
 
PDF
CocoaHeads Rennes #3 : Bien débuter sur iOS
Cours php & Mysql - 3éme partie
Haute Disponibilité et Disaster Recovery
Jug algeria x wiki-atelier
Initiation à Express js
Node.js dans Azure
Atelier : Développement rapide d&rsquo;une application basée surXWiki
Php mysql cours
 
CocoaHeads Rennes #3 : Bien débuter sur iOS

Tendances (10)

PDF
Web-In 2010: Programmation Native iOS (French)
PDF
Application web php5 html5 css3 bootstrap
PDF
Mettez du temps réel dans votre Drupal avec Node JS
PDF
Meetup Drupal Lyon - Sécuriser un site drupal
PDF
Cours php & Mysql - 1ére partie
PPTX
Les différents design patterns pour CoreData par Emmanuel Furnon
PDF
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
PPTX
Création et application d'un script d'ouverture de session
PDF
Introduction a jQuery
PDF
Gradle
Web-In 2010: Programmation Native iOS (French)
Application web php5 html5 css3 bootstrap
Mettez du temps réel dans votre Drupal avec Node JS
Meetup Drupal Lyon - Sécuriser un site drupal
Cours php & Mysql - 1ére partie
Les différents design patterns pour CoreData par Emmanuel Furnon
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
Création et application d'un script d'ouverture de session
Introduction a jQuery
Gradle
Publicité

En vedette (8)

PDF
L’intégration de la mobilité dans un projet xRM avec Dynamics CRM
PPTX
Windows Phone 7 et la sécurité
PPTX
Windows Azure pour les éditeurs de logiciels (Windows Azure Marketplace, ...)
PPTX
Veeam Software : Sauvegarde et protection des données, plan de reprise d’acti...
PPTX
La Kinect à l'écoute des nouveaux usages métiers et interactions avec les sol...
PPTX
Réussir votre transformation digitale grâce à "Connected Workforce" de SOGETI
PPTX
Qu’est-ce qu’un poste de travail sécurisé ?
PPTX
Veeam presentation v7
L’intégration de la mobilité dans un projet xRM avec Dynamics CRM
Windows Phone 7 et la sécurité
Windows Azure pour les éditeurs de logiciels (Windows Azure Marketplace, ...)
Veeam Software : Sauvegarde et protection des données, plan de reprise d’acti...
La Kinect à l'écoute des nouveaux usages métiers et interactions avec les sol...
Réussir votre transformation digitale grâce à "Connected Workforce" de SOGETI
Qu’est-ce qu’un poste de travail sécurisé ?
Veeam presentation v7
Publicité

Similaire à Introduction à node.js (20)

PDF
Support NodeJS avec TypeScript Express MongoDB
PPTX
Retours Devoxx France 2016
PPT
Soutenance Zend Framework vs Symfony
PDF
NodeJs in real life
PPTX
Retour d'expérience sur PowerShell
PPTX
JavaScript aussi sur le serveur et jusque dans le cloud?
PPTX
Server Side Javascript in the cloud
PPTX
JavaScript aussi sur le serveur et jusque dans le cloud?
KEY
La mobilité dans Drupal
PDF
Découverte du moteur de rendu du projet Spartan
PPTX
Gab2015 Cedric Derue Vincent Thavonekham Approche Devops pour builder une sol...
PDF
Node.js, le pavé dans la mare
PPTX
L'histoire d'html5 pour les développeurs windows phone 8
PPTX
[AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications W...
PPTX
Javascript proprement
PPTX
Vincent biret azure functions et flow (montreal)
PPTX
Architecturez vos applications mobiles avec Azure et Xamarin
PDF
Des mises à jour? Emmenez votre application Stitch encore plus loin grâce aux...
PDF
Node.js et les nouvelles technologies javascript
KEY
Paris RailsCamp 2009
Support NodeJS avec TypeScript Express MongoDB
Retours Devoxx France 2016
Soutenance Zend Framework vs Symfony
NodeJs in real life
Retour d'expérience sur PowerShell
JavaScript aussi sur le serveur et jusque dans le cloud?
Server Side Javascript in the cloud
JavaScript aussi sur le serveur et jusque dans le cloud?
La mobilité dans Drupal
Découverte du moteur de rendu du projet Spartan
Gab2015 Cedric Derue Vincent Thavonekham Approche Devops pour builder une sol...
Node.js, le pavé dans la mare
L'histoire d'html5 pour les développeurs windows phone 8
[AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications W...
Javascript proprement
Vincent biret azure functions et flow (montreal)
Architecturez vos applications mobiles avec Azure et Xamarin
Des mises à jour? Emmenez votre application Stitch encore plus loin grâce aux...
Node.js et les nouvelles technologies javascript
Paris RailsCamp 2009

Plus de Microsoft Technet France (20)

PDF
Automatisez, visualisez et améliorez vos processus d’entreprise avec Nintex
PPTX
Comment réussir votre déploiement de Windows 10
PPTX
OMS log search au quotidien
PPTX
Fusion, Acquisition - Optimisez la migration et la continuité des outils col...
PPTX
Wavestone déploie son portail Powell 365 en 5 semaines
PPTX
Retour d’expérience sur le monitoring et la sécurisation des identités Azure
PPTX
Scénarios de mobilité couverts par Enterprise Mobility + Security
PPTX
SharePoint Framework : le développement SharePoint nouvelle génération
PPTX
Stockage Cloud : il y en aura pour tout le monde
PPTX
Bien appréhender le concept de Windows As a Service
PPTX
Protéger vos données avec le chiffrement dans Azure et Office 365
PPTX
Protéger votre patrimoine informationnel dans un monde hybride avec Azure Inf...
PPTX
Comprendre la stratégie identité de Microsoft
PPTX
Vous avez dit « authentification sans mot de passe » : une illustration avec ...
PPTX
Sécurité des données
PPTX
Déploiement hybride, la téléphonie dans le cloud
PPTX
Supervisez la qualité des appels Skype for Business Online à l'aide de Call Q...
PPTX
SharePoint 2016 : architecture, déploiement et topologies hybrides
PPTX
Gestion de Windows 10 et des applications dans l'entreprise moderne
PPTX
Office 365 dans votre Système d'Informations
Automatisez, visualisez et améliorez vos processus d’entreprise avec Nintex
Comment réussir votre déploiement de Windows 10
OMS log search au quotidien
Fusion, Acquisition - Optimisez la migration et la continuité des outils col...
Wavestone déploie son portail Powell 365 en 5 semaines
Retour d’expérience sur le monitoring et la sécurisation des identités Azure
Scénarios de mobilité couverts par Enterprise Mobility + Security
SharePoint Framework : le développement SharePoint nouvelle génération
Stockage Cloud : il y en aura pour tout le monde
Bien appréhender le concept de Windows As a Service
Protéger vos données avec le chiffrement dans Azure et Office 365
Protéger votre patrimoine informationnel dans un monde hybride avec Azure Inf...
Comprendre la stratégie identité de Microsoft
Vous avez dit « authentification sans mot de passe » : une illustration avec ...
Sécurité des données
Déploiement hybride, la téléphonie dans le cloud
Supervisez la qualité des appels Skype for Business Online à l'aide de Call Q...
SharePoint 2016 : architecture, déploiement et topologies hybrides
Gestion de Windows 10 et des applications dans l'entreprise moderne
Office 365 dans votre Système d'Informations

Dernier (7)

PDF
FORMATION COMPLETE EN EXCEL DONE BY MR. NYONGA BRICE.pdf
PDF
FORMATION EN Programmation En Langage C.pdf
PPTX
Presentation_Securite_Reseaux_Bac+2.pptx
PDF
presentation_with_intro_compressee IEEE EPS France
PDF
Tendances tech 2025 - SFEIR & WENVISION.pdf
PDF
Modems expliqués- votre passerelle vers Internet.pdf
PPTX
Souveraineté numérique - Définition et enjeux pour les entreprises et les dév...
FORMATION COMPLETE EN EXCEL DONE BY MR. NYONGA BRICE.pdf
FORMATION EN Programmation En Langage C.pdf
Presentation_Securite_Reseaux_Bac+2.pptx
presentation_with_intro_compressee IEEE EPS France
Tendances tech 2025 - SFEIR & WENVISION.pdf
Modems expliqués- votre passerelle vers Internet.pdf
Souveraineté numérique - Définition et enjeux pour les entreprises et les dév...

Introduction à node.js

  • 1. Donnez votre avis ! Depuis votre smartphone, sur : http://notes.mstechdays.fr De nombreux lots à gagner toutes les heures !!! Claviers, souris et jeux Microsoft… Merci de nous aider à améliorer les TechDays http://notes.mstechdays.fr
  • 2. Introduction à node.js Pierre Couzy Resp. relations développeurs Microsoft Guillaume Leborgne Architecte .Net MCNEXT gleborgne@mcnext.com http://www.mcnext.com
  • 3. 180 collaborateurs Depuis 2007 à Paris - Lyon - Genève Stand 97 – Zone bleu foncé Business Intelligence Talk Biz NET Dot Share Point Microsoft 100 %
  • 4. La mode et l’informatique sont cycliques…
  • 5. Les langages « has been » il y a 5 ans • Ruby / Python • C++ • Javascript • …
  • 6. Node.js est un environnement d’exécution JavaScript Basé sur V8 (le moteur JavaScript de Chrome) Node.js
  • 8. • L’objectif de Node.js est de proposer un moyen simple de réaliser des applications réseau capables de monter en charge Buts de conception
  • 9. • Multi plateforme (Unix, Mac, Windows, …) • Scalable et monothread • Basé sur une boucle d’événements • I/O non bloquantes Caractéristiques
  • 10. Excellent pour : • Communications temps réel (sockets, polling, …) • Services réseaux sur mesure (proxies, …) • API web (services json) • Sites web Inadapté pour : • Usage intensif du CPU (transcodage vidéo, calculs mathématiques, …) Usages
  • 11. • Applications réseau (et donc web) hautement scalable – Gère plusieurs centaines de milliers de connexions simultanées avec un CPU et quelques Mo de RAM • Même langage de programmation côté client et côté serveur – Mêmes formats & types pour la donnée Pourquoi tout ce buzz ?
  • 12. • Liste non exhaustive disponible ici : – https://github.com/joyent/node/wiki/Projects,- Applications,-and-Companies-Using-Node • Azure mobile services ! Exemples d’applications réalisées avec Node
  • 13. HELLO WORLD, SAUCE NODE Mon premier serveur web
  • 14. $query = 'SELECT * FROM users WHERE id = ?'; $users = query($query, array($id)); //on fait attendre le thread X ms… Console.log($users); $query = 'SELECT * FROM activities ORDER BY timestamp LIMIT 50'; $activities = query($query); // on fait attendre le thread X ms… Console.log($activities); $query = 'SELECT count(points) as total, user_id FROM activities LIMIT 50'; $leader_board = query($query); // on fait attendre le thread X ms… Console.log($ leader_board ); I/O Bloquantes
  • 16. var query = 'SELECT * FROM users WHERE id = ?'; db.query(query, [userId], function (err, results) { console.log(results); }); var query = 'SELECT * FROM activities ORDER BY timestamp LIMIT 50'; db.query(query, function (err, results) { console.log(results); }); var query = 'SELECT count(points) as total, user_id FROM activities LIMIT 50'; db.query(query, function (err, results) { console.log(results); }); I/O non bloquantes
  • 17. • Peut être déroutant si on n’est pas habitué à ces mécanismes • Attention au « callbackhell » • Modèle de callbacks de Node : maFonction(arguments, function (erreur, donnees) { if (erreur) { // Gestion des cas d’erreur } // traitement des données. }); Asynchronie gérée par des callbacks
  • 18. var userQuery = 'SELECT * FROM users WHERE id = ?'; var activityQuery = 'SELECT * FROM activities ORDER BY timestamp LIMIT 50'; var leaderBoardQuery = 'SELECT count(points) as total, user_id FROM activities LIMIT 50'; db.query(userQuery, [id], function (userErr, userResults) { db.query(activityQuery, function (activityErr, activityResults) { db.query(leaderBoardQuery, function (leaderBoardErr, leaderBoardResults) { // Do something here }); }); }); Attention au « callbackhell »
  • 19. • Points d’extension de Node • Basés sur CommonJS • Gérés avec l’utilitaire npm • Plusieurs dizaines de milliers de module existants ! • Dépendances gérées à travers le fichier package.json Les modules
  • 20. https://npmjs.org/ • Express • Socket.io • Underscore • Jade • Async • … Modules courants
  • 22. • Node.exe • Intégration dans IIS avec le module IISNode Node pour Windows <configuration> <system.webServer> <handlers> <add name="iisnode" path="server.js" verb="*" modules="iisnode" /> </handlers> </system.webServer> </configuration>
  • 23. • Dans Azure Web Sites – Repose également sur IISnode – Points de personnalisation : • Package.json • Web.config – Changer sa version de node Node.js et Windows Azure
  • 24. • Environnement de dev • Processus de publication • Débogage Node.js avec Webmatrix et Visual Studio
  • 25. CRÉER, DEBUGGER, PUBLIER UNE APPLICATION NODE
  • 27. Donnez votre avis ! Depuis votre smartphone, sur : http://notes.mstechdays.fr De nombreux lots à gagner toutes les heures !!! Claviers, souris et jeux Microsoft… Merci de nous aider à améliorer les TechDays http://notes.mstechdays.fr
  • 28. Formez-vous en ligne Retrouvez nos évènements Faites-vous accompagner gratuitement Essayer gratuitement nos solutions IT Retrouver nos experts Microsoft Pros de l’ITDéveloppeurs www.microsoftvirtualacademy.comhttp://aka.ms/generation-app http://aka.ms/evenements- developpeurs http://aka.ms/itcamps-france Les accélérateurs Windows Azure, Windows Phone, Windows 8 http://aka.ms/telechargements La Dev’Team sur MSDN http://aka.ms/devteam L’IT Team sur TechNet http://aka.ms/itteam

Notes de l'éditeur

  • #2: Notation
  • #3: Intro code / dev
  • #28: Notation
  • #29: Exemple de page de code pour le secteur dev
  • #30: Les blocs de couleurs sont éditables et peuvent reprendre la couleur du type de session qui est donnée.