Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Intro to Node.js (for .NET Developers)

Intro to Node.js (for .NET Developers)

Node.js is a compelling platform that is quickly spreading from startups to the enterprise. As a .NET developer, why should you learn Node.js and where do you start? You will come away from this talk with the evidence and tools you need to be a productive Node.js developer. We'll walk through creating, debugging, and deploying a Node.js project to Microsoft Azure using the Node.js Tools for Visual Studio. We'll also look at popular frameworks and modules, and other learning resources.

David Neal

March 28, 2015
Tweet

More Decks by David Neal

Other Decks in Programming

Transcript

  1. Intro to Node.js (for .NET Developers) David Neal | reverentgeek.com

    | @reverentgeek var trustMe = { consumes: ["Bacon", "Caffeine"], hasBeard: true, knowsHowToComputer: true }
  2. Y2K

  3. Anything that can be written in JavaScript… …will eventually be

    written in JavaScript – Somebody with incredible powers of observation (e.g., search for “jslinux”)
  4. 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
  5. •  2x faster development with fewer developers •  33% fewer

    lines of code •  40% fewer files •  2x improvement requests/sec •  35% decrease in avg response time
  6. •  Black Friday, 2013 •  Mobile platform •  < 1%

    CPU utilization •  200,000+ concurrent users
  7. 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…
  8. Who else is using Node.js? •  Dow Jones (WSJ) • 

    eBay •  Groupon •  LinkedIn •  Rdio •  Shutterstock •  The New York Times •  Uber •  Yammer •  Zendesk nodjs.org/industry
  9. 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
  10. What’s our story? •  ASP.NET MVC, C# •  SQL Server

    + NHibernate •  JavaScript + JQuery
  11. What’s our story? •  JavaScript •  Recruiting •  Productive, less

    friction –  Testing –  Microservices –  RabbitMQ, riak, redis •  Cross-platform
  12. 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  
  13. Node.js Tools for Visual Studio Minimum requirements •  VS 2012

    Pro or VS 2013 Express •  Latest VS updates http://nodejstools.codeplex.com
  14. 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
  15. 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
  16. Node frameworks MVC •  Express •  Meteor •  Sails • 

    Hapi API •  Restify •  LoopBack •  Autohost nodeframework.com nodewebmodules.com
  17. 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
  18. 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
  19. .NET + Node.js Integration •  Edge.js (possible migration strategy) • 

    request module to call .NET Web Services •  Messaging (e.g. RabbitMQ)
  20. Thank you! David Neal @ReverentGeek [email protected] reverentgeek.com Demos + Resources

    bit.ly/node-demos Please rate me! h#p://spkr8.com/t/54801