Node.js hat sich schnell zu einer der beliebtesten Plattformen für das Schreiben von serverseitigem Code entwickelt. Das Node.js-Framework basiert auf der Google V8 JavaScript-Engine und ermöglicht Entwicklern serverseitige Anwendungen in JavaScript zu implementieren. Im November 2013 hat Microsoft die "Node.js Tools für Visual Studio (NTVS)" in einer ersten Alpha vorgestellt. Damit können Windows-Entwickler Node.js Anwendungen direkt in Visual Studio entwickeln. Die NTVS werden als Plug-in in Visual Studio integriert und bieten Zugriff auf die Codevervollständigung sowie die Debugging-, Profiling- und Deployment-Funktionen von Visual Studio. Zusätzlich enthält das Plug-in eine grafische Benutzeroberfläche für den Node Package Manager (npm). Damit lassen sich aus Visual Studio heraus Bibliotheken für das serverseitige JavaScript-Framework aus dem npm-Repository installieren. Auch die Anbindung an die Windows Azure - Plattform ist möglich. In diesem Vortrag werden die Node.js-Plattform sowie die Möglichkeiten der Node.js - Tools (NTJS) vorgestellt. Beispiele zeigen erste Anwendungsmöglichkeiten.
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
1. Node.js - Anwendungen
mit Visual Studio
entwickeln
#dwx14
feedback@developer-week.de
Speaker: Peter Hecker
2. Peter Hecker
• Seit 1986: „Entwickler, Trainer“
• Seit 1995: „Web-Entwicklung“
• Seit 2002: „ASP.NET"
• Seit 2009: „Mobile WebApps“
• Vorstand in der GFU Cyrus AG
8. Node.js
• Node.js ist eine plattformübergreifende
Laufzeitumgebung für JavaScript-Anwendungen.
• Node.js ermöglicht die einfache Entwicklung von
schnellen und skalierbaren JavaScript-
Anwendungen.
• Node.js JavaScript-Anwendungen laufen
typischerweise auf einem Server.
9. Der Erfinder
Ryan Dahl: „Node.js, Evented I/O for V8 Javascript“
JSConf.EU, Sunday November 8th, 2009
10. node.js in brief (2009)
• Server-Side JavaScript
• Built on Google’s V8
• Evented, Non-Blocking I/O
• CommonJS module system
• 8000 lines of C/C++, 2000
lines of JavaScript
(14 Contributor)
http://www.youtube.com/watch?v=ztspvPYybIY
11. What ist V8?
• V8 is Google's open source high-
performance JavaScript engine,
written in C++ and used in
Google Chrome, the open source
browser from Google.
• It implements ECMAScript as
specified in ECMA-262, 3rd
edition, and runs on Windows XP
and Vista, Mac OS X 10.5+, and
Linux systems that use IA-32,
ARM or MIPS processors.
• V8 can run standalone, or can be
embedded into any C++
application.
https://developers.google.com/v8/
12. node standard library
node bindings
(http, socket, file system)
V8 thread pool
(libeio)
event loop
(libev)
cypto
(OpenSSL)
DNS
(c-ares)
JavaScript
C/C++
25. Node.js und .NET
• Node.js für Windows
• http://nodejs.org/
• Node.js Tools for Visual Studio (NTVS)
• https://nodejstools.codeplex.com/
• Edge.js
• http://tjanczuk.github.io/edge/
42. VS.NET + NTVS
• Verschiedene Projektvorlagen
• Integration der Node.js-Paketverwaltung (npm)
• JavaScript-Code-Vervollständigung (Intellisense)
• Node.js-Interactive Window
• Node.js-Debugger-Integration
• Windows Azure Veröffentlichung
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60. Edge.js
• npm-Module und nuget-
Pakete für die Integration von
Node.js und .NET auf
Prozessebene
• Für C#, F#, Python (mit
IronPython) und Windows
PowerShell
• Ganz aktuell auch für Mac
OSX und Linux
http://tjanczuk.github.io/edge/
61. „Edge.js is 32x faster
than a cross-process call“
https://github.com/tjanczuk/edge/wiki/Performance
116. Anwendungsfälle
• The Internet of Things
• E-Commerce
• Payment Processing
• Social Media
• Realtime Services
• Media
• Enterprise Web Services
117. IBM und Node.js
• „When you add thousands of
devices to a network it’s going
to be impossible to program in
the same way we program
computers today. IBM is
working on Node-RED a tool
to help “wire” the internet of
things.“
http://nodered.org/
118. LinkedIn und Node.js
• Anforderung:
„Mobilen App-Infrastruktur“
• Weniger Code
• Weniger Ressourcen - von 30
auf 3 Server
• Schneller - teilweise bis 20x
• Stabiler
http://highscalability.com/blog/2012/10/4/linkedin-moved-from-rails-to-node-27-servers-cut-and-up-to-2.html
119. Groupon und Node.js
• Anforderung:
„50.000 Requests / Minute“
• Node.js-Infrastruktur schafft
diese Datenverkehr mit
weniger Hardware
• Ladezeiten verbessern sich
um 50%
• Globale Änderungen lassen
sich schneller realisieren und
verteilen
http://www.datacenterknowledge.com/archives/2013/12/06/need-speed-groupon-migrated-node-js/
120. Walmart und Node.js
• Anforderung:
„Black Friday“
• 55% des Datenverkehrs
wurde über Node.js-Server
verarbeitet, ohne einen
einzigen Serverausfall
• Die durchschnittliche CPU-
Auslastung lag bei 1%
• Softwareverteilung bei
200.000.000 aktiven Nutzern
http://www.joyent.com/developers/videos/node-js-at-walmart-going-to-production-debugging-monitoring
121. Yahoo und Node.js
• Ca. 200 Entwickler
programmieren für Node.js
• 500 interne Node-Module
• 800 externe Node-Module
• Node.js-Services verarbeiten
bis zu 2.000.000 Requests /
Minute
122. Build 2013 - Channel 9
June 28, 2013:
„Doug Crockford and Steve Lucco on JavaScript“
123.
124. Paypal und Node.js
• Anforderung:
„Java versus JavaScript“
• Weniger Entwickler, weniger Code
(LoC) in der Hälfte der Zeit
• Verdoppelung der Anzahl der
Anfragen pro Sekunde (Requests/sec)
• Steigerung der Antwortzeit um 35%
auf 200 ms
• Umsetzung von 12 Node.js-
Anwendungen in sechs Monaten
• Alle zukünftigen Anwendungen
werden in Node.js entwickelt
125.
126. Bill Scott: “Clash of the Titans: Releasing
the Kraken NodeJS @paypal"
http://www.youtube.com/watch?v=tZWGb0HU2QM
128. Die ersten Erfahrungen
mit Node.js
• Weniger Serverkapazitäten
• Weniger Seitenladezeit
• Weniger Entwicklerkapazitäten
• Mehr zufriedene Kunden
• Mehr zufriedene Entwickler