SlideShare ist ein Scribd-Unternehmen logo
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 Einsatz
Kai 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 Ruby
vesparun
 
Workshop Vue js
Workshop Vue jsWorkshop Vue js
Workshop Vue js
Hendrik Lösch
 
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 Dive
Bokowsky + 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 Portal
Stefan 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 Architekturen
Leo 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 Docker
Steven 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 Gelf
NETWAYS
 
skilllocation Foliensatz zu Microsoft Azure
skilllocation Foliensatz zu Microsoft Azureskilllocation Foliensatz zu Microsoft Azure
skilllocation Foliensatz zu Microsoft Azure
Carola Pantenburg
 
WebLogic im Docker Container
WebLogic im Docker ContainerWebLogic im Docker Container
WebLogic im Docker Container
Andreas 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 & Javascript
dzuvic
 
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_ist
Ramon 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 Infrastruktur
QAware 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 Apps
Creasoft 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 APIs
Stefan Adolf
 
BizSpark goes Cloud
BizSpark goes CloudBizSpark goes Cloud
BizSpark goes Cloud
Patric Boscolo
 
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
David 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 Virtualization
GWAVA
 
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
adesso AG
 
PHP Kongress 2010 - Web-Performance
PHP Kongress 2010 - Web-PerformancePHP Kongress 2010 - Web-Performance
PHP Kongress 2010 - Web-Performance
Nico Steiner
 
Agile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit RailsAgile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit Rails
Hussein Morsy
 
AngularJs
AngularJsAngularJs
AngularJs
NETUserGroupBern
 
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
Werner Keil
 
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
BCC - Solutions for IBM Collaboration Software
 
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
Tobias 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 Framework
BATbern
 
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 & Co
Oliver Lemm
 
node.js - Eine kurze Einführung
node.js - Eine kurze Einführungnode.js - Eine kurze Einführung
node.js - Eine kurze Einführung
nodeio
 

Ä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-Ökosystem
Peter 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-Entwickler
Peter 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 Cordova
Peter Hecker
 
NRWConf - Workshop Mobile Apps
NRWConf - Workshop Mobile AppsNRWConf - Workshop Mobile Apps
NRWConf - Workshop Mobile Apps
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
 
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 Mobile
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
 
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 Marketing
Peter Hecker
 
.NET und jetzt!
.NET und jetzt!.NET und jetzt!
.NET und jetzt!
Peter 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!