+ All Categories
Home > Software > JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln

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

Date post: 15-Apr-2017
Category:
Upload: peter-hecker
View: 255 times
Download: 0 times
Share this document with a friend
86
JavaScript goes Enterprise Node.js-Anwendungen mit Visual Studio entwickeln
Transcript
Page 1: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln

JavaScript goes EnterpriseNode.js-Anwendungen

mit Visual Studio entwickeln

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

Agenda

• Einführung in Node.js

• Node.js und .NET

• Anwendungsfälle und Beispiele

• Fazit

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

Einführung in Node.js

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

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.

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

Der ErfinderRyan Dahl: „Node.js, Evented I/O for V8 Javascript“

JSConf.EU, Sunday November 8th, 2009

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

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

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

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/

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

node standard library

node bindings (http, socket, file system)

V8 thread pool (libeio)

event loop (libev)

cypto (OpenSSL)

DNC (c-ares)

JavaScript

C/C++

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

Node.js - Architektur

• Single Threaded

• Asynchronous

• Event Loop

• Non blocking I/O

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

Ryan Dahl„I/O needs to be done differently“

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

Ryan Dahl„In many cases, just waiting for the response“

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

Klassische ServerMulti-Threaded - Blocking I/O

http://blog.cloudfoundry.com/2012/06/27/future-proofing-your-apps-cloud-foundry-and-node-js/

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

Ryan Dahl„This is the node.js project: To provide a purely evented, non-blocking infrastructure to script highly concurrent programs“

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

Node.jsSingle Threaded, Event Loop, Non-Blocking I/O

http://blog.cloudfoundry.com/2012/06/27/future-proofing-your-apps-cloud-foundry-and-node-js/

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

Single Threaded, Event Loop, Non-Blocking I/O

• Weniger Speicherverbrauch

• Weniger CPU-Overhead

• Bessere Skalierbarkeit

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

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

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

Node.js Module

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

npm - Node Package Managerhttps://www.npmjs.org/

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

Node.js - Homepagehttp://nodejs.org/

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

JoyentDas Unternehmen hinter Node.js und npm.

http://www.joyent.com

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

Node.js und .NET

Page 22: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
Page 23: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln

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/

Page 24: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
Page 25: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
Page 26: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
Page 27: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
Page 28: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
Page 29: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
Page 30: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
Page 31: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
Page 32: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
Page 33: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
Page 34: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
Page 35: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
Page 36: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
Page 37: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
Page 38: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln

npm install edge

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

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

Page 40: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
Page 41: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
Page 42: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
Page 43: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
Page 44: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
Page 45: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
Page 46: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
Page 47: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
Page 48: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
Page 49: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
Page 50: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
Page 51: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
Page 52: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
Page 53: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
Page 54: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
Page 55: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
Page 56: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln

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/

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

„Edge.js is 32x faster than a cross-process call“

https://github.com/tjanczuk/edge/wiki/Performance

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

Kleiner Exkurs: Node.js und Java

Page 59: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
Page 60: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln

http://nodyn.io/

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

Anwendungsfälle und Beispiele

Page 62: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
Page 63: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
Page 64: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln

Anwendungsfälle• The Internet of Things

• E-Commerce

• Payment Processing

• Social Media

• Realtime Services

• Media

• Enterprise Web Services

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

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/

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

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

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

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/

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

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

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

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

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

Build 2013 - Channel 9June 28, 2013:

„Doug Crockford and Steve Lucco on JavaScript“

Page 71: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
Page 72: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln

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

Page 73: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln
Page 74: JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den Node.js-Tools entwickeln

Bill Scott: “Clash of the Titans: Releasing the Kraken NodeJS @paypal"

http://www.youtube.com/watch?v=tZWGb0HU2QM

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

Node.js - Nicht nur für’s Web:

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

PDFKithttp://pdfkit.org/

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

Grunthttp://gruntjs.com/

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

Bowerhttp://bower.io/

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

Yeomanhttp://yeoman.io/

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

log.iohttp://logio.org/

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

noduinohttp://semu.github.io/noduino/

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

NodeOShttp://node-os.com/

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

Fazit

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

Was wäre wenn• Verringerung der Entwicklerkapazitäten

• Verringerung der Seitenladezeit

• Verringerung der Anzahl von Servern

• Zufriedene Kunden

• Zufriedene Entwickler

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

„Get Happy with Node.js“!

;-) Vielen Dank!

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

Recommended