SlideShare ist ein Scribd-Unternehmen logo
1 von 86
Downloaden Sie, um offline zu lesen
JavaScript goes
Enterprise
Node.js-Anwendungen
mit Visual Studio entwickeln
Agenda
• Einführung in Node.js
• Node.js und .NET
• Anwendungsfälle und Beispiele
• Fazit
Einführung in Node.js
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-
Applikationen.
• Node.js JavaScript-Anwendungen laufen
typischerweise auf einem Server.
Der Erfinder
Ryan Dahl: „Node.js, Evented I/O for V8 Javascript“
JSConf.EU, Sunday November 8th, 2009
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
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/
node standard library
node bindings
(http, socket, file system)
V8 thread pool
(libeio)
event loop
(libev)
cypto
(OpenSSL)
DNC
(c-ares)
JavaScript
C/C++
Node.js - Architektur
• Single Threaded
• Asynchronous
• Event Loop
• Non blocking I/O
Ryan Dahl
„I/O needs to be done differently“
Ryan Dahl
„In many cases, just waiting for the response“
Klassische Server
Multi-Threaded - Blocking I/O
http://blog.cloudfoundry.com/2012/06/27/future-proofing-your-apps-cloud-foundry-and-node-js/
Ryan Dahl
„This is the node.js project: To provide a purely evented, non-
blocking infrastructure to script highly concurrent programs“
Node.js
Single Threaded, Event Loop, Non-Blocking I/O
http://blog.cloudfoundry.com/2012/06/27/future-proofing-your-apps-cloud-foundry-and-node-js/
Single Threaded, Event
Loop, Non-Blocking I/O
• Weniger Speicherverbrauch
• Weniger CPU-Overhead
• Bessere Skalierbarkeit
Fundamentals!
• Globals
• STDIO
• Timers
• Modules
• Events
• Buffers
• Streams
• C/C++ Addons
Network I/O!
• HTTP
• HTTPS
• URL
• Query Strings
• Net
• UDP/Datagram
• DNS
File system I/O!
• File System
• Path
Process I/O / V8 VM!
• Process
• VM
• Child Processes
• Cluster
Terminal/Console!
• REPL
• Readline
• TTY
Testing & debugging!
• Assertion Testing
• Debugger
• Utilities
Misc!
• Crypto
• TLS/SSL
• String Decoder
• ZLIB
• OS
http://nodejs.org/api/modules.html
Node.js Core Modules
Node.js Module
npm - Node Package Manager
https://www.npmjs.org/
Node.js - Homepage
http://nodejs.org/
Joyent
Das Unternehmen hinter Node.js und npm.
http://www.joyent.com
Node.js und .NET
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/
npm install edge
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
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
http://tjanczuk.github.io/edge/
„Edge.js is 32x faster
than a cross-process call“
https://github.com/tjanczuk/edge/wiki/Performance
Kleiner Exkurs:
Node.js und Java
http://nodyn.io/
Anwendungsfälle und
Beispiele
Anwendungsfälle
• The Internet of Things
• E-Commerce
• Payment Processing
• Social Media
• Realtime Services
• Media
• Enterprise Web Services
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/
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
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/
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
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
Build 2013 - Channel 9
June 28, 2013:
„Doug Crockford and Steve Lucco on JavaScript“
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
Bill Scott: “Clash of the Titans: Releasing
the Kraken NodeJS @paypal"
http://www.youtube.com/watch?v=tZWGb0HU2QM
Node.js - Nicht nur
für’s Web:
PDFKit
http://pdfkit.org/
Grunt
http://gruntjs.com/
Bower
http://bower.io/
Yeoman
http://yeoman.io/
log.io
http://logio.org/
noduino
http://semu.github.io/noduino/
NodeOS
http://node-os.com/
Fazit
Was wäre wenn
• Verringerung der Entwicklerkapazitäten
• Verringerung der Seitenladezeit
• Verringerung der Anzahl von Servern
• Zufriedene Kunden
• Zufriedene Entwickler
„Get Happy with Node.js“
!
;-) Vielen Dank!
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln

Weitere ähnliche Inhalte

Was ist angesagt?

Node.js - Von der Entwicklugn bis zum produktiven Einsatz
Node.js - Von der Entwicklugn bis zum produktiven EinsatzNode.js - Von der Entwicklugn bis zum produktiven Einsatz
Node.js - Von der Entwicklugn bis zum produktiven EinsatzKai Donato
 
Performanter, hochskalierbarer Web 2.0-Dienst in Ruby
Performanter, hochskalierbarer Web 2.0-Dienst in RubyPerformanter, hochskalierbarer Web 2.0-Dienst in Ruby
Performanter, hochskalierbarer Web 2.0-Dienst in Rubyvesparun
 
Ruby on Rails in a metro session
Ruby on Rails in a metro sessionRuby on Rails in a metro session
Ruby on Rails in a metro sessionVirttoo org
 
ColdFusion im Enterprise Umfeld - Deep Dive
ColdFusion im Enterprise Umfeld - Deep DiveColdFusion im Enterprise Umfeld - Deep Dive
ColdFusion im Enterprise Umfeld - Deep DiveBokowsky + Laymann GmbH
 
Tipps zur Performanceoptimierung für Liferay Portal
Tipps zur  Performanceoptimierung für Liferay PortalTipps zur  Performanceoptimierung für Liferay Portal
Tipps zur Performanceoptimierung für Liferay PortalStefan Hilpp
 
MongoDB on Linux VM in Windows Azure
MongoDB on Linux VM in Windows AzureMongoDB on Linux VM in Windows Azure
MongoDB on Linux VM in Windows AzureJan Hentschel
 
Nanoservice Architekturen
Nanoservice ArchitekturenNanoservice Architekturen
Nanoservice ArchitekturenLeo Lindhorst
 
Collaboration Days 2011 - Damit die Tester schneller ran können.
Collaboration Days 2011 - Damit die Tester schneller ran können.Collaboration Days 2011 - Damit die Tester schneller ran können.
Collaboration Days 2011 - Damit die Tester schneller ran können.David Schneider
 
Boost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerBoost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerSteven Grzbielok
 
OSMC 2014: Icinga Web 2 kann mehr | Thomas Gelf
OSMC 2014: Icinga Web 2 kann mehr | Thomas GelfOSMC 2014: Icinga Web 2 kann mehr | Thomas Gelf
OSMC 2014: Icinga Web 2 kann mehr | Thomas GelfNETWAYS
 
skilllocation Foliensatz zu Microsoft Azure
skilllocation Foliensatz zu Microsoft Azureskilllocation Foliensatz zu Microsoft Azure
skilllocation Foliensatz zu Microsoft AzureCarola Pantenburg
 
WebLogic im Docker Container
WebLogic im Docker ContainerWebLogic im Docker Container
WebLogic im Docker ContainerAndreas Koop
 
SQL Server auf Infrastructure-as-a-Services (IaaS) in der Cloud betreiben
SQL Server auf Infrastructure-as-a-Services (IaaS) in der Cloud betreibenSQL Server auf Infrastructure-as-a-Services (IaaS) in der Cloud betreiben
SQL Server auf Infrastructure-as-a-Services (IaaS) in der Cloud betreibenJan Hentschel
 
JAX 2015 - Continuous Integration mit Java & Javascript
JAX 2015 - Continuous Integration mit Java & JavascriptJAX 2015 - Continuous Integration mit Java & Javascript
JAX 2015 - Continuous Integration mit Java & Javascriptdzuvic
 
Azure Bootcamp Hamburg
Azure Bootcamp Hamburg Azure Bootcamp Hamburg
Azure Bootcamp Hamburg Lennart Passig
 
Where are all transactions gone? Was in_der_cloud_alles_verboten_ist
Where are all transactions gone? Was in_der_cloud_alles_verboten_istWhere are all transactions gone? Was in_der_cloud_alles_verboten_ist
Where are all transactions gone? Was in_der_cloud_alles_verboten_istRamon Anger
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturQAware GmbH
 

Was ist angesagt? (18)

Node.js - Von der Entwicklugn bis zum produktiven Einsatz
Node.js - Von der Entwicklugn bis zum produktiven EinsatzNode.js - Von der Entwicklugn bis zum produktiven Einsatz
Node.js - Von der Entwicklugn bis zum produktiven Einsatz
 
Performanter, hochskalierbarer Web 2.0-Dienst in Ruby
Performanter, hochskalierbarer Web 2.0-Dienst in RubyPerformanter, hochskalierbarer Web 2.0-Dienst in Ruby
Performanter, hochskalierbarer Web 2.0-Dienst in Ruby
 
Workshop Vue js
Workshop Vue jsWorkshop Vue js
Workshop Vue js
 
Ruby on Rails in a metro session
Ruby on Rails in a metro sessionRuby on Rails in a metro session
Ruby on Rails in a metro session
 
ColdFusion im Enterprise Umfeld - Deep Dive
ColdFusion im Enterprise Umfeld - Deep DiveColdFusion im Enterprise Umfeld - Deep Dive
ColdFusion im Enterprise Umfeld - Deep Dive
 
Tipps zur Performanceoptimierung für Liferay Portal
Tipps zur  Performanceoptimierung für Liferay PortalTipps zur  Performanceoptimierung für Liferay Portal
Tipps zur Performanceoptimierung für Liferay Portal
 
MongoDB on Linux VM in Windows Azure
MongoDB on Linux VM in Windows AzureMongoDB on Linux VM in Windows Azure
MongoDB on Linux VM in Windows Azure
 
Nanoservice Architekturen
Nanoservice ArchitekturenNanoservice Architekturen
Nanoservice Architekturen
 
Collaboration Days 2011 - Damit die Tester schneller ran können.
Collaboration Days 2011 - Damit die Tester schneller ran können.Collaboration Days 2011 - Damit die Tester schneller ran können.
Collaboration Days 2011 - Damit die Tester schneller ran können.
 
Boost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerBoost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with Docker
 
OSMC 2014: Icinga Web 2 kann mehr | Thomas Gelf
OSMC 2014: Icinga Web 2 kann mehr | Thomas GelfOSMC 2014: Icinga Web 2 kann mehr | Thomas Gelf
OSMC 2014: Icinga Web 2 kann mehr | Thomas Gelf
 
skilllocation Foliensatz zu Microsoft Azure
skilllocation Foliensatz zu Microsoft Azureskilllocation Foliensatz zu Microsoft Azure
skilllocation Foliensatz zu Microsoft Azure
 
WebLogic im Docker Container
WebLogic im Docker ContainerWebLogic im Docker Container
WebLogic im Docker Container
 
SQL Server auf Infrastructure-as-a-Services (IaaS) in der Cloud betreiben
SQL Server auf Infrastructure-as-a-Services (IaaS) in der Cloud betreibenSQL Server auf Infrastructure-as-a-Services (IaaS) in der Cloud betreiben
SQL Server auf Infrastructure-as-a-Services (IaaS) in der Cloud betreiben
 
JAX 2015 - Continuous Integration mit Java & Javascript
JAX 2015 - Continuous Integration mit Java & JavascriptJAX 2015 - Continuous Integration mit Java & Javascript
JAX 2015 - Continuous Integration mit Java & Javascript
 
Azure Bootcamp Hamburg
Azure Bootcamp Hamburg Azure Bootcamp Hamburg
Azure Bootcamp Hamburg
 
Where are all transactions gone? Was in_der_cloud_alles_verboten_ist
Where are all transactions gone? Was in_der_cloud_alles_verboten_istWhere are all transactions gone? Was in_der_cloud_alles_verboten_ist
Where are all transactions gone? Was in_der_cloud_alles_verboten_ist
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
 

Ähnlich wie JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln

Creasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform AppsCreasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform AppsCreasoft AG
 
Never Code Alone: Von Symfony Forms zu einer SPA auf APIs
Never Code Alone: Von Symfony Forms zu einer SPA auf APIsNever Code Alone: Von Symfony Forms zu einer SPA auf APIs
Never Code Alone: Von Symfony Forms zu einer SPA auf APIsStefan Adolf
 
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und beheben
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und behebenPimp My SharePoint - Performanceprobleme vorbeugen, analysieren und beheben
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und behebenDavid Schneider
 
Desktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application VirtualizationDesktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application VirtualizationGWAVA
 
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDI
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDISchlanke Webarchitekturen nicht nur mit JSF 2 und CDI
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDIadesso AG
 
PHP Kongress 2010 - Web-Performance
PHP Kongress 2010 - Web-PerformancePHP Kongress 2010 - Web-Performance
PHP Kongress 2010 - Web-PerformanceNico Steiner
 
Agile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit RailsAgile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit RailsHussein Morsy
 
DevOps der Triple-E Klasse - Eclipse DemoCamp
DevOps der Triple-E Klasse - Eclipse DemoCampDevOps der Triple-E Klasse - Eclipse DemoCamp
DevOps der Triple-E Klasse - Eclipse DemoCampWerner Keil
 
Grails im Überblick und in der Praxis
Grails im Überblick und in der PraxisGrails im Überblick und in der Praxis
Grails im Überblick und in der PraxisTobias Kraft
 
JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013Oliver Zeigermann
 
Serverless Application Framework
Serverless Application FrameworkServerless Application Framework
Serverless Application FrameworkBATbern
 
Automatische Erstellung einer SharePoint 2013 Entwicklungsumgebung in Microso...
Automatische Erstellung einer SharePoint 2013 Entwicklungsumgebung in Microso...Automatische Erstellung einer SharePoint 2013 Entwicklungsumgebung in Microso...
Automatische Erstellung einer SharePoint 2013 Entwicklungsumgebung in Microso...Sebastian Huppmann
 
Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)
Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)
Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)Christian Janz
 
Echtzeitvisualisierung von Twitter und Co.
Echtzeitvisualisierung von Twitter und Co.Echtzeitvisualisierung von Twitter und Co.
Echtzeitvisualisierung von Twitter und Co.Kai Donato
 
Echtzeitvisualisierung von Twitter & Co
Echtzeitvisualisierung von Twitter & CoEchtzeitvisualisierung von Twitter & Co
Echtzeitvisualisierung von Twitter & CoOliver Lemm
 
node.js - Eine kurze Einführung
node.js - Eine kurze Einführungnode.js - Eine kurze Einführung
node.js - Eine kurze Einführungnodeio
 

Ähnlich wie JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln (20)

Creasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform AppsCreasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform Apps
 
Never Code Alone: Von Symfony Forms zu einer SPA auf APIs
Never Code Alone: Von Symfony Forms zu einer SPA auf APIsNever Code Alone: Von Symfony Forms zu einer SPA auf APIs
Never Code Alone: Von Symfony Forms zu einer SPA auf APIs
 
BizSpark goes Cloud
BizSpark goes CloudBizSpark goes Cloud
BizSpark goes Cloud
 
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und beheben
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und behebenPimp My SharePoint - Performanceprobleme vorbeugen, analysieren und beheben
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und beheben
 
Desktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application VirtualizationDesktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application Virtualization
 
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDI
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDISchlanke Webarchitekturen nicht nur mit JSF 2 und CDI
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDI
 
PHP Kongress 2010 - Web-Performance
PHP Kongress 2010 - Web-PerformancePHP Kongress 2010 - Web-Performance
PHP Kongress 2010 - Web-Performance
 
Agile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit RailsAgile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit Rails
 
AngularJs
AngularJsAngularJs
AngularJs
 
DevOps der Triple-E Klasse - Eclipse DemoCamp
DevOps der Triple-E Klasse - Eclipse DemoCampDevOps der Triple-E Klasse - Eclipse DemoCamp
DevOps der Triple-E Klasse - Eclipse DemoCamp
 
XPages: Performance-Optimierung - Ulrich Krause (eknori) SNoUG 2013
XPages: Performance-Optimierung  - Ulrich Krause (eknori) SNoUG 2013XPages: Performance-Optimierung  - Ulrich Krause (eknori) SNoUG 2013
XPages: Performance-Optimierung - Ulrich Krause (eknori) SNoUG 2013
 
Grails im Überblick und in der Praxis
Grails im Überblick und in der PraxisGrails im Überblick und in der Praxis
Grails im Überblick und in der Praxis
 
JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013
 
Serverless Application Framework
Serverless Application FrameworkServerless Application Framework
Serverless Application Framework
 
Automatische Erstellung einer SharePoint 2013 Entwicklungsumgebung in Microso...
Automatische Erstellung einer SharePoint 2013 Entwicklungsumgebung in Microso...Automatische Erstellung einer SharePoint 2013 Entwicklungsumgebung in Microso...
Automatische Erstellung einer SharePoint 2013 Entwicklungsumgebung in Microso...
 
GWT
GWTGWT
GWT
 
Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)
Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)
Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)
 
Echtzeitvisualisierung von Twitter und Co.
Echtzeitvisualisierung von Twitter und Co.Echtzeitvisualisierung von Twitter und Co.
Echtzeitvisualisierung von Twitter und Co.
 
Echtzeitvisualisierung von Twitter & Co
Echtzeitvisualisierung von Twitter & CoEchtzeitvisualisierung von Twitter & Co
Echtzeitvisualisierung von Twitter & Co
 
node.js - Eine kurze Einführung
node.js - Eine kurze Einführungnode.js - Eine kurze Einführung
node.js - Eine kurze Einführung
 

Mehr von Peter Hecker

Ist Open Source ein Ersatz für kommerzielle RPA-Tools?
Ist Open Source ein Ersatz für kommerzielle RPA-Tools?Ist Open Source ein Ersatz für kommerzielle RPA-Tools?
Ist Open Source ein Ersatz für kommerzielle RPA-Tools?Peter Hecker
 
Vom Framework zur App - Ein Blick in das React-Ökosystem
Vom Framework zur App - Ein Blick in das React-ÖkosystemVom Framework zur App - Ein Blick in das React-Ökosystem
Vom Framework zur App - Ein Blick in das React-ÖkosystemPeter Hecker
 
Was darf’s denn sein: Angular, React, Vue.js – Über Frontend-Entwicklung im J...
Was darf’s denn sein: Angular, React, Vue.js – Über Frontend-Entwicklung im J...Was darf’s denn sein: Angular, React, Vue.js – Über Frontend-Entwicklung im J...
Was darf’s denn sein: Angular, React, Vue.js – Über Frontend-Entwicklung im J...Peter Hecker
 
TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für...
TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für...TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für...
TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für...Peter Hecker
 
AngularJS für .NET-Entwickler
AngularJS für .NET-EntwicklerAngularJS für .NET-Entwickler
AngularJS für .NET-EntwicklerPeter Hecker
 
Cross Plattform Apps mit Visual Studio und Apache Cordova
Cross Plattform Apps mit Visual Studio und Apache CordovaCross Plattform Apps mit Visual Studio und Apache Cordova
Cross Plattform Apps mit Visual Studio und Apache CordovaPeter Hecker
 
NRWConf - Workshop Mobile Apps
NRWConf - Workshop Mobile AppsNRWConf - Workshop Mobile Apps
NRWConf - Workshop Mobile AppsPeter Hecker
 
JavaScript nicht nur für Programmierer: Einblicke in die weltweit am meisten ...
JavaScript nicht nur für Programmierer: Einblicke in die weltweit am meisten ...JavaScript nicht nur für Programmierer: Einblicke in die weltweit am meisten ...
JavaScript nicht nur für Programmierer: Einblicke in die weltweit am meisten ...Peter Hecker
 
JavaScript nicht nur für Programmierer: Einblicke in die weltweit am meisten ...
JavaScript nicht nur für Programmierer: Einblicke in die weltweit am meisten ...JavaScript nicht nur für Programmierer: Einblicke in die weltweit am meisten ...
JavaScript nicht nur für Programmierer: Einblicke in die weltweit am meisten ...Peter Hecker
 
Mobile Websites und (Web)-Apps mit jQuery Mobile
Mobile Websites und (Web)-Apps mit jQuery MobileMobile Websites und (Web)-Apps mit jQuery Mobile
Mobile Websites und (Web)-Apps mit jQuery MobilePeter Hecker
 
Cross-Apps-Entwicklung für iPhone, Android und Co.
Cross-Apps-Entwicklung für iPhone, Android und Co.Cross-Apps-Entwicklung für iPhone, Android und Co.
Cross-Apps-Entwicklung für iPhone, Android und Co.Peter Hecker
 
Cross-Apps-Entwicklung für iPhone, Android und Co.
Cross-Apps-Entwicklung für iPhone, Android und Co.Cross-Apps-Entwicklung für iPhone, Android und Co.
Cross-Apps-Entwicklung für iPhone, Android und Co.Peter Hecker
 
Internet Marketing
Internet MarketingInternet Marketing
Internet MarketingPeter Hecker
 

Mehr von Peter Hecker (14)

Ist Open Source ein Ersatz für kommerzielle RPA-Tools?
Ist Open Source ein Ersatz für kommerzielle RPA-Tools?Ist Open Source ein Ersatz für kommerzielle RPA-Tools?
Ist Open Source ein Ersatz für kommerzielle RPA-Tools?
 
Vom Framework zur App - Ein Blick in das React-Ökosystem
Vom Framework zur App - Ein Blick in das React-ÖkosystemVom Framework zur App - Ein Blick in das React-Ökosystem
Vom Framework zur App - Ein Blick in das React-Ökosystem
 
Was darf’s denn sein: Angular, React, Vue.js – Über Frontend-Entwicklung im J...
Was darf’s denn sein: Angular, React, Vue.js – Über Frontend-Entwicklung im J...Was darf’s denn sein: Angular, React, Vue.js – Über Frontend-Entwicklung im J...
Was darf’s denn sein: Angular, React, Vue.js – Über Frontend-Entwicklung im J...
 
TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für...
TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für...TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für...
TypeScript - Gut genug für große Anwendungen? Oder nur Brückentechnologie für...
 
AngularJS für .NET-Entwickler
AngularJS für .NET-EntwicklerAngularJS für .NET-Entwickler
AngularJS für .NET-Entwickler
 
Cross Plattform Apps mit Visual Studio und Apache Cordova
Cross Plattform Apps mit Visual Studio und Apache CordovaCross Plattform Apps mit Visual Studio und Apache Cordova
Cross Plattform Apps mit Visual Studio und Apache Cordova
 
NRWConf - Workshop Mobile Apps
NRWConf - Workshop Mobile AppsNRWConf - Workshop Mobile Apps
NRWConf - Workshop Mobile Apps
 
JavaScript nicht nur für Programmierer: Einblicke in die weltweit am meisten ...
JavaScript nicht nur für Programmierer: Einblicke in die weltweit am meisten ...JavaScript nicht nur für Programmierer: Einblicke in die weltweit am meisten ...
JavaScript nicht nur für Programmierer: Einblicke in die weltweit am meisten ...
 
JavaScript nicht nur für Programmierer: Einblicke in die weltweit am meisten ...
JavaScript nicht nur für Programmierer: Einblicke in die weltweit am meisten ...JavaScript nicht nur für Programmierer: Einblicke in die weltweit am meisten ...
JavaScript nicht nur für Programmierer: Einblicke in die weltweit am meisten ...
 
Mobile Websites und (Web)-Apps mit jQuery Mobile
Mobile Websites und (Web)-Apps mit jQuery MobileMobile Websites und (Web)-Apps mit jQuery Mobile
Mobile Websites und (Web)-Apps mit jQuery Mobile
 
Cross-Apps-Entwicklung für iPhone, Android und Co.
Cross-Apps-Entwicklung für iPhone, Android und Co.Cross-Apps-Entwicklung für iPhone, Android und Co.
Cross-Apps-Entwicklung für iPhone, Android und Co.
 
Cross-Apps-Entwicklung für iPhone, Android und Co.
Cross-Apps-Entwicklung für iPhone, Android und Co.Cross-Apps-Entwicklung für iPhone, Android und Co.
Cross-Apps-Entwicklung für iPhone, Android und Co.
 
Internet Marketing
Internet MarketingInternet Marketing
Internet Marketing
 
.NET und jetzt!
.NET und jetzt!.NET und jetzt!
.NET und jetzt!
 

JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln

  • 2. Agenda • Einführung in Node.js • Node.js und .NET • Anwendungsfälle und Beispiele • Fazit
  • 4. 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- Applikationen. • Node.js JavaScript-Anwendungen laufen typischerweise auf einem Server.
  • 5. Der Erfinder Ryan Dahl: „Node.js, Evented I/O for V8 Javascript“ JSConf.EU, Sunday November 8th, 2009
  • 6. 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
  • 7. 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/
  • 8. node standard library node bindings (http, socket, file system) V8 thread pool (libeio) event loop (libev) cypto (OpenSSL) DNC (c-ares) JavaScript C/C++
  • 9. Node.js - Architektur • Single Threaded • Asynchronous • Event Loop • Non blocking I/O
  • 10. Ryan Dahl „I/O needs to be done differently“
  • 11. Ryan Dahl „In many cases, just waiting for the response“
  • 12. Klassische Server Multi-Threaded - Blocking I/O http://blog.cloudfoundry.com/2012/06/27/future-proofing-your-apps-cloud-foundry-and-node-js/
  • 13. Ryan Dahl „This is the node.js project: To provide a purely evented, non- blocking infrastructure to script highly concurrent programs“
  • 14. Node.js Single Threaded, Event Loop, Non-Blocking I/O http://blog.cloudfoundry.com/2012/06/27/future-proofing-your-apps-cloud-foundry-and-node-js/
  • 15. Single Threaded, Event Loop, Non-Blocking I/O • Weniger Speicherverbrauch • Weniger CPU-Overhead • Bessere Skalierbarkeit
  • 16. Fundamentals! • Globals • STDIO • Timers • Modules • Events • Buffers • Streams • C/C++ Addons Network I/O! • HTTP • HTTPS • URL • Query Strings • Net • UDP/Datagram • DNS File system I/O! • File System • Path Process I/O / V8 VM! • Process • VM • Child Processes • Cluster Terminal/Console! • REPL • Readline • TTY Testing & debugging! • Assertion Testing • Debugger • Utilities Misc! • Crypto • TLS/SSL • String Decoder • ZLIB • OS http://nodejs.org/api/modules.html Node.js Core Modules
  • 18. npm - Node Package Manager https://www.npmjs.org/
  • 20. Joyent Das Unternehmen hinter Node.js und npm. http://www.joyent.com
  • 22.
  • 23. 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/
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 39. 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
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56. 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 http://tjanczuk.github.io/edge/
  • 57. „Edge.js is 32x faster than a cross-process call“ https://github.com/tjanczuk/edge/wiki/Performance
  • 59.
  • 62.
  • 63.
  • 64. Anwendungsfälle • The Internet of Things • E-Commerce • Payment Processing • Social Media • Realtime Services • Media • Enterprise Web Services
  • 65. 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/
  • 66. 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
  • 67. 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/
  • 68. 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
  • 69. 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
  • 70. Build 2013 - Channel 9 June 28, 2013: „Doug Crockford and Steve Lucco on JavaScript“
  • 71.
  • 72. 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
  • 73.
  • 74. Bill Scott: “Clash of the Titans: Releasing the Kraken NodeJS @paypal" http://www.youtube.com/watch?v=tZWGb0HU2QM
  • 75. Node.js - Nicht nur für’s Web:
  • 83. Fazit
  • 84. Was wäre wenn • Verringerung der Entwicklerkapazitäten • Verringerung der Seitenladezeit • Verringerung der Anzahl von Servern • Zufriedene Kunden • Zufriedene Entwickler
  • 85. „Get Happy with Node.js“ ! ;-) Vielen Dank!