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.

3ab1249be442027903e1180025340b3f?s=128

David Neal

March 28, 2015
Tweet

Transcript

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

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

  4. None
  5. None
  6. Up Ahead •  Why Node.js? •  Crash course •  Tools

    and frameworks •  Deployment
  7. JavaScript… …has won the Web. – Scott Hanselman

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

    written in JavaScript – Somebody with incredible powers of observation (e.g., search for “jslinux”)
  9. JavaScript… …is tragically important. – Douglas Crockford, Author of “JavaScript:

    The Good Parts”
  10. None
  11. None
  12. None
  13. None
  14. None
  15. None
  16. None
  17. Node.js exemplifies… Start with the simplest solution that works. Do

    one thing, and do it well.
  18. Node.js is… •  blazing fast •  highly concurrent •  low-friction

    •  cross-platform •  modern web server
  19. 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
  20. •  2x faster development with fewer developers •  33% fewer

    lines of code •  40% fewer files •  2x improvement requests/sec •  35% decrease in avg response time
  21. “We are seeing big scale gains, performance boosts and big

    developer productivity.”
  22. •  Black Friday, 2013 •  Mobile platform •  < 1%

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

    eBay •  Groupon •  LinkedIn •  Rdio •  Shutterstock •  The New York Times •  Uber •  Yammer •  Zendesk nodjs.org/industry
  25. 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
  26. io.js •  Fork of node.js •  Latest Chrome V8, ES6

    •  Open governance
  27. What’s our story? •  ASP.NET MVC, C# •  SQL Server

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

    friction –  Testing –  Microservices –  RabbitMQ, riak, redis •  Cross-platform
  29. None
  30. Ready to jump in?

  31. 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  
  32. Installing Node.js C:\> node –v v0.10.38 C:\> npm –v 1.4.28

     
  33. Dependencies – OR – Python 2.x (https://python.org/downloads/ C:\> choco install

    python2  
  34. Dependencies – OR – Visual C++ 2010 Express C:\> choco

    install VCExpress2010  
  35. Node.js Tools for Visual Studio Minimum requirements •  VS 2012

    Pro or VS 2013 Express •  Latest VS updates http://nodejstools.codeplex.com
  36. Hey y’all watch this…

  37. Other editors •  Sublime Text 3 •  Atom •  WebStorm

  38. Debugging C:\> node debug hello.js  

  39. Debugging C:\> node debug hello.js  

  40. Debugging C:\> node install –g node-inspector  

  41. Debugging C:\> node install –g node-inspector   C:\> node-debug hello.js

     
  42. 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
  43. None
  44. None
  45. None
  46. None
  47. None
  48. Hosting Node.js on Azure reverentgeek.com/hosting-node-js-on-microsoft-azure/

  49. 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
  50. Node frameworks MVC •  Express •  Meteor •  Sails • 

    Hapi API •  Restify •  LoopBack •  Autohost nodeframework.com nodewebmodules.com
  51. None
  52. 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
  53. 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
  54. .NET + Node.js Integration •  Edge.js (possible migration strategy) • 

    request module to call .NET Web Services •  Messaging (e.g. RabbitMQ)
  55. None
  56. 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