Intro to Node.js
(for .NET Developers)
David Neal | reverentgeek.com | @reverentgeek
var trustMe = {
consumes: ["Bacon", "Caffeine"],
hasBeard: true,
knowsHowToComputer: true
}
Y2K
Up Ahead
•  Why Node.js?
•  Crash course
•  Tools and frameworks
•  Deployment
JavaScript…
…has won the Web.
– Scott Hanselman
Anything that can be
written in JavaScript…
…will eventually be written in JavaScript
– Somebody with incredible powers of observation
(e.g., search for“jslinux”)
JavaScript…
…is tragically important.
– Douglas Crockford,
Author of“JavaScript: The Good Parts”
Node.js exemplifies…
Start with the simplest
solution that works.
Do one thing,
and do it well.
Node.js is…
•  blazing fast
•  highly concurrent
•  low-friction
•  cross-platform
•  modern web server
Why Node.js?
•  Rapid innovation & delivery
•  Developer happiness
•  Attract & retain talent
•  Performance
“Why Node.js is Becoming the Go-To Technology in the Enterprise” –
nearform.com
•  2x faster development with fewer developers
•  33% fewer lines of code
•  40% fewer files
•  2x improvement requests/sec
•  35% decrease in avg response time
“We are seeing big scale gains, performance
boosts and big developer productivity.”
•  Black Friday, 2013
•  Mobile platform
•  < 1% CPU utilization
•  200,000+ concurrent users
NBC Universal
•  ASP.NET to Node.js
•  300 million page views/month
•  Start render time: 8.8 to 1.3 seconds
•  Page speed: 100+ to <10 seconds
NBC News, Today.com, CNN…
Who else is using Node.js?
•  Dow Jones (WSJ)
•  eBay
•  Groupon
•  LinkedIn
•  Rdio
•  Shutterstock
•  The New York Times
•  Uber
•  Yammer
•  Zendesk
nodjs.org/industry
Node.js Use Cases
•  Single-page apps
•  API server (REST, Hypermedia, etc.)
•  Real-time, streaming, WebSockets
•  Chat, IM, social media
•  Dashboards
•  Proxy service
In other words… the INTERNET
io.js
•  Fork of node.js
•  Latest Chrome V8, ES6
•  Open governance
What’s our story?
•  ASP.NET MVC, C#
•  SQL Server + NHibernate
•  JavaScript + JQuery
What’s our story?
•  JavaScript
•  Recruiting
•  Productive, less friction
–  Testing
–  Microservices
–  RabbitMQ, riak, redis
•  Cross-platform
Ready to jump in?
Installing Node.js
1.  http://nodejs.org
2.  Click big, green INSTALL
3.  Run installer
– OR –
Install using Chocolatey (http://chocolatey.org)
C:> choco install nodejs.install
	
  
Installing Node.js
C:> node –v
v0.10.38
C:> npm –v
1.4.28
	
  
Dependencies
– OR –
Python 2.x (https://python.org/downloads/
C:> choco install python2
	
  
Dependencies
– OR –
Visual C++ 2010 Express
C:> choco install VCExpress2010
	
  
Node.js Tools for Visual Studio
Minimum requirements
•  VS 2012 Pro
or VS 2013 Express
•  Latest VS updates
http://nodejstools.codeplex.com
Hey y’all
watch this…
Other editors
•  Sublime Text 3
•  Atom
•  WebStorm
Debugging
C:> node debug hello.js	
  
Debugging
C:> node debug hello.js	
  
Debugging
C:> npm install –g node-inspector	
  
Debugging
C:> node install –g node-inspector	
  
C:> node-debug hello.js	
  
Deploying
•  Don’t include node_modules folder
•  …unless you create builds for specific targets
•  Azure is super-easy
•  Windows
–  iisnode for web apps
–  winser for services
•  Linux – forever
Hosting Node.js on Azure
reverentgeek.com/hosting-node-js-on-microsoft-azure/
Recommended Toolbox
Package What it do, yo
lodash JavaScript utilities
when JavaScript promise library
async async/parallel execution
request (or rest) http client
gulp build engine, test runner
socket.io sockets, real-time
node-inspector Debugging
mocha test framework
chai TDD/BDD assertion library
sinon spies, stubs, mocks
Node frameworks
MVC
•  Express
•  Meteor
•  Sails
•  Hapi
API
•  Restify
•  LoopBack
•  Autohost
nodeframework.com
nodewebmodules.com
Edge.js
•  Run .NET in-process
•  …including F#, ADO.NET, Python,
and Powershell
•  Execute inline code, files, or
assemblies
•  Alternative to writing native
modules in C
•  .NET 4.5 or Mono 3.1
What can Edge.js do?
•  Leverage existing .NET investment
•  SQL Server (or other DBs)
•  TFS, SharePoint, Exchange, etc.
•  Active Directory
•  Hardware (e.g. camera, microphone,
printer, win32)
•  Video encoding, or other CPU-intensive
work
•  Powershell
.NET + Node.js Integration
•  Edge.js (possible migration strategy)
•  request module to call .NET Web Services
•  Messaging (e.g. RabbitMQ)
Thank you!
David Neal
@ReverentGeek
david@reverentgeek.com
reverentgeek.com
Demos + Resources
bit.ly/node-demos
Please rate me!
h#p://spkr8.com/t/54801	
  

Intro to Node.js (for .NET Developers)

  • 1.
    Intro to Node.js (for.NET Developers) David Neal | reverentgeek.com | @reverentgeek var trustMe = { consumes: ["Bacon", "Caffeine"], hasBeard: true, knowsHowToComputer: true }
  • 2.
  • 5.
    Up Ahead •  WhyNode.js? •  Crash course •  Tools and frameworks •  Deployment
  • 6.
    JavaScript… …has won theWeb. – Scott Hanselman
  • 7.
    Anything that canbe written in JavaScript… …will eventually be written in JavaScript – Somebody with incredible powers of observation (e.g., search for“jslinux”)
  • 8.
    JavaScript… …is tragically important. –Douglas Crockford, Author of“JavaScript: The Good Parts”
  • 16.
    Node.js exemplifies… Start withthe simplest solution that works. Do one thing, and do it well.
  • 17.
    Node.js is… •  blazingfast •  highly concurrent •  low-friction •  cross-platform •  modern web server
  • 18.
    Why Node.js? •  Rapidinnovation & delivery •  Developer happiness •  Attract & retain talent •  Performance “Why Node.js is Becoming the Go-To Technology in the Enterprise” – nearform.com
  • 19.
    •  2x fasterdevelopment with fewer developers •  33% fewer lines of code •  40% fewer files •  2x improvement requests/sec •  35% decrease in avg response time
  • 20.
    “We are seeingbig scale gains, performance boosts and big developer productivity.”
  • 21.
    •  Black Friday,2013 •  Mobile platform •  < 1% CPU utilization •  200,000+ concurrent users
  • 22.
    NBC Universal •  ASP.NETto Node.js •  300 million page views/month •  Start render time: 8.8 to 1.3 seconds •  Page speed: 100+ to <10 seconds NBC News, Today.com, CNN…
  • 23.
    Who else isusing Node.js? •  Dow Jones (WSJ) •  eBay •  Groupon •  LinkedIn •  Rdio •  Shutterstock •  The New York Times •  Uber •  Yammer •  Zendesk nodjs.org/industry
  • 24.
    Node.js Use Cases • Single-page apps •  API server (REST, Hypermedia, etc.) •  Real-time, streaming, WebSockets •  Chat, IM, social media •  Dashboards •  Proxy service In other words… the INTERNET
  • 25.
    io.js •  Fork ofnode.js •  Latest Chrome V8, ES6 •  Open governance
  • 26.
    What’s our story? • ASP.NET MVC, C# •  SQL Server + NHibernate •  JavaScript + JQuery
  • 27.
    What’s our story? • JavaScript •  Recruiting •  Productive, less friction –  Testing –  Microservices –  RabbitMQ, riak, redis •  Cross-platform
  • 29.
  • 30.
    Installing Node.js 1.  http://nodejs.org 2. Click big, green INSTALL 3.  Run installer – OR – Install using Chocolatey (http://chocolatey.org) C:> choco install nodejs.install  
  • 31.
    Installing Node.js C:> node–v v0.10.38 C:> npm –v 1.4.28  
  • 32.
    Dependencies – OR – Python2.x (https://python.org/downloads/ C:> choco install python2  
  • 33.
    Dependencies – OR – VisualC++ 2010 Express C:> choco install VCExpress2010  
  • 34.
    Node.js Tools forVisual Studio Minimum requirements •  VS 2012 Pro or VS 2013 Express •  Latest VS updates http://nodejstools.codeplex.com
  • 35.
  • 36.
    Other editors •  SublimeText 3 •  Atom •  WebStorm
  • 37.
  • 38.
  • 39.
    Debugging C:> npm install–g node-inspector  
  • 40.
    Debugging C:> node install–g node-inspector   C:> node-debug hello.js  
  • 41.
    Deploying •  Don’t includenode_modules folder •  …unless you create builds for specific targets •  Azure is super-easy •  Windows –  iisnode for web apps –  winser for services •  Linux – forever
  • 47.
    Hosting Node.js onAzure reverentgeek.com/hosting-node-js-on-microsoft-azure/
  • 48.
    Recommended Toolbox Package Whatit do, yo lodash JavaScript utilities when JavaScript promise library async async/parallel execution request (or rest) http client gulp build engine, test runner socket.io sockets, real-time node-inspector Debugging mocha test framework chai TDD/BDD assertion library sinon spies, stubs, mocks
  • 49.
    Node frameworks MVC •  Express • Meteor •  Sails •  Hapi API •  Restify •  LoopBack •  Autohost nodeframework.com nodewebmodules.com
  • 51.
    Edge.js •  Run .NETin-process •  …including F#, ADO.NET, Python, and Powershell •  Execute inline code, files, or assemblies •  Alternative to writing native modules in C •  .NET 4.5 or Mono 3.1
  • 52.
    What can Edge.jsdo? •  Leverage existing .NET investment •  SQL Server (or other DBs) •  TFS, SharePoint, Exchange, etc. •  Active Directory •  Hardware (e.g. camera, microphone, printer, win32) •  Video encoding, or other CPU-intensive work •  Powershell
  • 53.
    .NET + Node.jsIntegration •  Edge.js (possible migration strategy) •  request module to call .NET Web Services •  Messaging (e.g. RabbitMQ)
  • 55.
    Thank you! David Neal @ReverentGeek david@reverentgeek.com reverentgeek.com Demos+ Resources bit.ly/node-demos Please rate me! h#p://spkr8.com/t/54801