SlideShare una empresa de Scribd logo
1 de 61
Descargar para leer sin conexión
NODE FOR NOVICES
BRINGING JAVASCRIPT TO THE SERVER
An original presentation by David Wesst / @davidwesst

PRESENTED AT THE WINNIPEG .NET USER GROUP - OCTOBER 28, 2013
http://www.winnipegdotnet.org
DAVID WESST

FROM WINNIPEG, MANITOBA
SYSTEMS ANALYST, UNIVERSITY OF MANITOBA (FACULTY OF
MEDICINE)
MICROSOFT MVP, INTERNET EXPLORER
IE USER AGENT USERAGENTS.IE
PRODUCER, BREWPUB STUDIOS
DAVID WESST

@DAVIDWESST ON TWITTER
DAVIDWESST.COM ON THE WEB
DAVIDWESST.COM/BLOG ON THE BLOGOSPHERE
DW [AT] DAVIDWESST.COM ON EMAIL
FOLLOW ALONG

HTTP://DAVIDWESST.GITHUB.IO/DW-PRESENTATIONS
SLIDES AND DEMOS WILL
BE MADE AVAILABLE
AFTERWARDS
THE POINT

TO ANSWER ONE OF THE FOLLOWING QUESTIONS:
What is Node (a.k.a. NodeJS)?
What do I need to get started?
What makes NodeJS different to ASP.NET?
Why aren't my JS frameworks working in NodeJS?
THE POINT

THEME FOR THIS PRESENTATION

UNDERSTAND WHAT YOU
CAN DO WITH NODEJS
THE PLAN (A.K.A. THE AGENDA)
How are we going to do this?
What is NodeJS?
Getting Yourself Setup
Your NodeJS Toolbox
Getting Your Node On
THE PLAN

SETTING YOUR EXPECTATIONS
This presentation is...
An introduction to NodeJS
A dialogue about NodeJS
Comparing NodeJS to ASP.NET
A review of NodeJS development tools
A "core sample" of NodeJS fundamentals
WHAT IS NODEJS?
WHAT IS NODEJS?

"NODE" = "NODEJS"
WHAT IS NODEJS?
Node is...
Node.js is a platform built on Chrome's
JavaScript runtime for easily building fast,
scalable network applications. Node.js uses an
event-driven, non-blocking I/O model that
makes it lightweight and efficient, perfect for
data-intensive real-time applications that run
across distributed devices.
WHAT IS NODEJS?
Node is...
...Server-Side JavaScript
...100% Multi-Platform
...Open Source
...Sponsored by Joyent
WHAT IS NODEJS?
Node is...
...Powered by Google's V8 JavaScript Engine
...Provides request-level control
...bundled with a package manager (a.k.a npm, node packaged
modules)
...Built on the idea of Asynchronous I/O [or Non-Blocking I/O]
ASYNCHRONOUS I/O?
I/O THAT DOESN'T BLOCK YOUR APPLICATION
YOU: I DON'T
UNDERSTAND HOW THAT
IS POSSIBLE. TELL ME
MORE!
I WILL.
EXAMPLE: CLIENT-SIDE JAVASCRIPT
/ fn t o w t pr mt r
/ u ci n ih a ae e
f nt o mC in Fn to ( es g, cl bc ) {
u ci n yl et u ci nm sa e a la k
/ v ra l
/ a i be
v rm g =m sa e
a s
e sg ;
/ o jc s
/ bet
v rr n oA ry =n wA r y)
a ad mr a
e ra (;
/ f nt o cl
/ u c in al
ae tm g;
lr ( s)
/ c l te cl bc
/ a l h al a k
cl bc (;
al a k)
}
;
v rt ea la k= f nt o( {
a h C lb c
u ci n )
/ .. o sm ti g
/. d oe hn
}
m Ci nF nt o( e sg ,t ea l ak ;
y le t uc in ms ae hC lb c)
EXAMPLE: SERVER-SIDE (NODEJS)
JAVASCRIPT
/ fn t o w t pr mt r
/ u ci n ih a ae e
f nt o mS re Fn to ( es g, cl bc ) {
u ci n ye vr u ci nm sa e a la k
/ v ra l
/ a i be
v rm g =m sa e
a s
e sg ;
/ o jc s
/ bet
v rr n oA ry =n wA r y)
a ad mr a
e ra (;
/ f nt o cl
/ u c in al
cn oe lg mg ;
os l .o (s )
/ c l te cl bc
/ a l h al a k
cl bc (;
al a k)
}
;
v rt ea la k= f nt o( {
a h C lb c
u ci n )
/ .. o sm ti g
/. d oe hn
}
m Sr eF nt o( e sg ,t ea l ak ;
y ev r uc in ms ae hC lb c)
THE SECRET IS...

CALLBACKS
CALLBACKS

CALLBACK ARE THE SECRET TO NON-BLOCKING OPERATIONS
On the client, UI is kept unblocked
On the server, Requests are unblocked
OPTIONAL DEMO:
CALLBACKS
WHERE IS NODE BEING USED IN
PRODUCTION?
REAL EXAMPLES

Nodejitsu, Cloud Platform
LinkedIn
Ebay
LET'S TALK NODEJS AND
JAVASCRIPT
FRAMEWORKS (LIKE
BACKBONEJS)
GETTING YOURSELF
SETUP
WHAT ARE YOU GOING TO NEED?
Your development machine (Windows, Linux, or Mac)
An Internet Connection
(OPTIONAL) A bit of comfort with a command line
HOW ARE YOU GOING TO DO IT?
WINDOWS AND MAC
1.
2.
3.
4.

Go to NodeJS.org
Download the installer
Follow the install wizard
Test it in the CLI (command line interface)
YOUR NODEJS TOOLBOX
CORE TOOLBOX: TEXT EDITOR + TERMINAL
THIS IS PRETTY GOOD TO GET YOU GOING
Vi
Notepad
GEdit
TextMate
NODEJS TOOLS: NODECLIPSE / NODE IDE
HTTP://WWW.NODECLIPSE.ORG/

Eclipse Plugin(s)
Free and Open Source
Adds NodeJS running and debugging support in Eclipse
Very young project, but provides what you need
NODEJS TOOLS: CLOUD9
HTTP://C9.IO

Hosted IDE
Free and Paid Options
Open Source
Provides support for major web platforms
Includes other common development features, like MySQL
and Terminal
NODEJS TOOLS: WEBMATRIX

HTTP://WWW.MICROSOFT.COM/WEB/WEBMATRIX/
Windows Application from Microsoft
Free
Environment for popular web platforms (Node, Rails, PHP,
HTML5, ASP.NET)
Meant for development of Web Sites over Web Apps
NODEJS TOOLS
WebStorm IDE by JetBrainsLink
Netbeans Plugin Link
Visual Node (Private Beta) by RedgateLink
GETTING YOUR NODE ON
WARMING UP TO NODE

NODE PROJECTS ARE MADE UP OF THE FOLLOWING:
"App.js" - Your Main Executable File
"Package.json" (OPTIONAL) - Describes details of your
application
"node_modules/" (OPTIONAL) - Contains project
dependencies
DEMO

INTRODUCING NODEJS
USING THE NPM

NODE PACKAGED MODULES
NPM is bundled with Node base install as of v0.6.3
Packages can be browsed at NPMjs.org
Installs packages either locally
n mi sa lu dr c r
p n t l ne so e

...or globally
n mi sa l- t ps rp
p n t l g y e ci t
PACKAGE.JSON: REVISITED
THE KEYS TO USING THE NPM

You can...
Define dependencies for running your application
Define dependencies for developing your application
Set the name, version, and main for your own apps and
packages
Publish your own packages to the npm
DEMO: USING NPM
COMMAND LINE
PRO TIP
GITHUB IS YOUR FRIEND
CODING WITH CALLBACKS

USING THE REAL POWER OF NODEJS
Keys to remember:
Functions are first-class citizens in JavaScript
Functions can be passed as arguments
Defining functions inside of functions makes them "private"
Non-blocking means user waits less, which is good!
CODING WITH CALLBACKS
DEMO

CODING WITH CALLBACKS
MAKING YOUR OWN MODULES
MODULARITY FOR THE WIN

Keys to remember:
Modules provide a way to easily organize your code
Can be shared amongst other projects
Published through npm or git repository
Version is defined in package.json
DEMO

MAKING YOUR OWN MODULES
THINGS TO REMEMBER
Private and Public variables exist
Think Modular
NPM is your friend
...and so is Github
LET'S TALK NODEJS AND
MICROSOFT STUFF
NODEJS AND MICROSOFT
Websites and Cloud Services support in Windows Azure
IDE built into WebMatrix
IIS and IIS Support through IISNode
ASP.NET VS NODEJS
Serves up JavaScript and HTML
Natively Synchronous
Requires IIS
Provides multiple structured ways of doing web (Web Forms,
MVC, Websites, WebAPI)
ASP.NET VS NODEJS
Serves up JavaScript and HTML
Natively Asynchronous
Does not require web server (e.g. IIS)
Provides multiple unstructured ways of doing web
Open Source
PRO TIP
EXPRESSJS: YOUR NEW FAVOURITE NODE
MODULE
POPULAR MVC FRAMEWORK FOR NODE

Provides MVC Pattern for Web Applications
Supports Popular Middle Modules
Command-Line Setup
Supports popular UI tools (e.g. LESS, SASS, Jade Templates)
DEMO

INTRODUCTION EXPRESSJS
THE PLAN (A.K.A. THE AGENDA)
How are we going to do this?
What is NodeJS?
Getting Yourself Setup
Your NodeJS Toolbox
Getting Your Node On
THE POINT

TO ANSWER ONE OF THE FOLLOWING QUESTIONS:
What is Node (a.k.a. NodeJS)?
What do I need to get started?
What makes NodeJS different to ASP.NET?
Why aren't my JS frameworks working in NodeJS?
THE POINT

THEME FOR THIS PRESENTATION

UNDERSTAND WHAT YOU
CAN DO WITH NODEJS
NEXT STEPS
Where do we go from here?
NEXT STEPS
Install NodeJS
Create a NodeJS Application with or without ExpressJS
Explore the npm
Publish a package to the npm
NEXT STEPS

CHECK OUT A RESOURCE
http://package.json.nodejitsu.com/
http://blog.nodejitsu.com/npm-cheatsheet
http://npmjs.org
DAVID WESST

FROM WINNIPEG, MANITOBA
SYSTEMS ANALYST, UNIVERSITY OF MANITOBA (FACULTY OF
MEDICINE)
MICROSOFT MVP, INTERNET EXPLORER
IE USER AGENT USERAGENTS.IE
PRODUCER, BREWPUB STUDIOS
DAVID WESST

@DAVIDWESST ON TWITTER
DAVIDWESST.COM ON THE WEB
DAVIDWESST.COM/BLOG ON THE BLOGOSPHERE
DW [AT] DAVIDWESST.COM ON EMAIL

Más contenido relacionado

La actualidad más candente

Responsive Web Design: Clever Tips and Techniques
Responsive Web Design: Clever Tips and TechniquesResponsive Web Design: Clever Tips and Techniques
Responsive Web Design: Clever Tips and TechniquesVitaly Friedman
 
Java & JavaScript: Best Friends?
Java & JavaScript: Best Friends?Java & JavaScript: Best Friends?
Java & JavaScript: Best Friends?jbandi
 
Building Web Sites that Work Everywhere
Building Web Sites that Work EverywhereBuilding Web Sites that Work Everywhere
Building Web Sites that Work EverywhereDoris Chen
 
JavaScript Presentation Frameworks and Libraries
JavaScript Presentation Frameworks and LibrariesJavaScript Presentation Frameworks and Libraries
JavaScript Presentation Frameworks and LibrariesOleksii Prohonnyi
 
Francesco Strazzullo - Frameworkless Frontend Development - Codemotion Milan ...
Francesco Strazzullo - Frameworkless Frontend Development - Codemotion Milan ...Francesco Strazzullo - Frameworkless Frontend Development - Codemotion Milan ...
Francesco Strazzullo - Frameworkless Frontend Development - Codemotion Milan ...Codemotion
 
High Performance JavaScript (CapitolJS 2011)
High Performance JavaScript (CapitolJS 2011)High Performance JavaScript (CapitolJS 2011)
High Performance JavaScript (CapitolJS 2011)Nicholas Zakas
 
iOS development best practices
iOS development best practicesiOS development best practices
iOS development best practicesMichal Juhas
 
Wrangling Large Scale Frontend Web Applications
Wrangling Large Scale Frontend Web ApplicationsWrangling Large Scale Frontend Web Applications
Wrangling Large Scale Frontend Web ApplicationsRyan Roemer
 
C++ 11 Style : A Touch of Class
C++ 11 Style : A Touch of ClassC++ 11 Style : A Touch of Class
C++ 11 Style : A Touch of ClassYogendra Rampuria
 
Getting All Your Web Apps To Wear The Company Brand
Getting All Your Web Apps To Wear The Company BrandGetting All Your Web Apps To Wear The Company Brand
Getting All Your Web Apps To Wear The Company Brandknappt
 
Dev evening - MonoTouch, MonoDroid, Mvvm MvvmCross and databinding
Dev evening - MonoTouch, MonoDroid, Mvvm MvvmCross and databindingDev evening - MonoTouch, MonoDroid, Mvvm MvvmCross and databinding
Dev evening - MonoTouch, MonoDroid, Mvvm MvvmCross and databindingStuart Lodge
 
Untangling spring week9
Untangling spring week9Untangling spring week9
Untangling spring week9Derek Jacoby
 
HTML5 and CSS3 Techniques You Can Use Today
HTML5 and CSS3 Techniques You Can Use TodayHTML5 and CSS3 Techniques You Can Use Today
HTML5 and CSS3 Techniques You Can Use TodayTodd Anglin
 

La actualidad más candente (20)

Responsive Web Design: Clever Tips and Techniques
Responsive Web Design: Clever Tips and TechniquesResponsive Web Design: Clever Tips and Techniques
Responsive Web Design: Clever Tips and Techniques
 
Java & JavaScript: Best Friends?
Java & JavaScript: Best Friends?Java & JavaScript: Best Friends?
Java & JavaScript: Best Friends?
 
Building Web Sites that Work Everywhere
Building Web Sites that Work EverywhereBuilding Web Sites that Work Everywhere
Building Web Sites that Work Everywhere
 
Road to Rails
Road to RailsRoad to Rails
Road to Rails
 
JavaScript Presentation Frameworks and Libraries
JavaScript Presentation Frameworks and LibrariesJavaScript Presentation Frameworks and Libraries
JavaScript Presentation Frameworks and Libraries
 
Francesco Strazzullo - Frameworkless Frontend Development - Codemotion Milan ...
Francesco Strazzullo - Frameworkless Frontend Development - Codemotion Milan ...Francesco Strazzullo - Frameworkless Frontend Development - Codemotion Milan ...
Francesco Strazzullo - Frameworkless Frontend Development - Codemotion Milan ...
 
High Performance JavaScript (CapitolJS 2011)
High Performance JavaScript (CapitolJS 2011)High Performance JavaScript (CapitolJS 2011)
High Performance JavaScript (CapitolJS 2011)
 
iOS development best practices
iOS development best practicesiOS development best practices
iOS development best practices
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
 
Lecture 3 Javascript1
Lecture 3  Javascript1Lecture 3  Javascript1
Lecture 3 Javascript1
 
What is HTML 5?
What is HTML 5?What is HTML 5?
What is HTML 5?
 
Wrangling Large Scale Frontend Web Applications
Wrangling Large Scale Frontend Web ApplicationsWrangling Large Scale Frontend Web Applications
Wrangling Large Scale Frontend Web Applications
 
Fewd week4 slides
Fewd week4 slidesFewd week4 slides
Fewd week4 slides
 
C++ 11 Style : A Touch of Class
C++ 11 Style : A Touch of ClassC++ 11 Style : A Touch of Class
C++ 11 Style : A Touch of Class
 
Nodejs
NodejsNodejs
Nodejs
 
Getting All Your Web Apps To Wear The Company Brand
Getting All Your Web Apps To Wear The Company BrandGetting All Your Web Apps To Wear The Company Brand
Getting All Your Web Apps To Wear The Company Brand
 
Dev evening - MonoTouch, MonoDroid, Mvvm MvvmCross and databinding
Dev evening - MonoTouch, MonoDroid, Mvvm MvvmCross and databindingDev evening - MonoTouch, MonoDroid, Mvvm MvvmCross and databinding
Dev evening - MonoTouch, MonoDroid, Mvvm MvvmCross and databinding
 
Untangling spring week9
Untangling spring week9Untangling spring week9
Untangling spring week9
 
HTML5 and CSS3 Techniques You Can Use Today
HTML5 and CSS3 Techniques You Can Use TodayHTML5 and CSS3 Techniques You Can Use Today
HTML5 and CSS3 Techniques You Can Use Today
 
Mini-Training: NDepend
Mini-Training: NDependMini-Training: NDepend
Mini-Training: NDepend
 

Destacado

NodeJS: the good parts? A skeptic’s view (devnexus2014)
NodeJS: the good parts? A skeptic’s view (devnexus2014)NodeJS: the good parts? A skeptic’s view (devnexus2014)
NodeJS: the good parts? A skeptic’s view (devnexus2014)Chris Richardson
 
NodeJS: the good parts? A skeptic’s view (oredev, oredev2013)
NodeJS: the good parts? A skeptic’s view (oredev, oredev2013)NodeJS: the good parts? A skeptic’s view (oredev, oredev2013)
NodeJS: the good parts? A skeptic’s view (oredev, oredev2013)Chris Richardson
 
Asynchronous I/O in NodeJS - new standard or challenges?
Asynchronous I/O in NodeJS - new standard or challenges?Asynchronous I/O in NodeJS - new standard or challenges?
Asynchronous I/O in NodeJS - new standard or challenges?Dinh Pham
 
NodeJS guide for beginners
NodeJS guide for beginnersNodeJS guide for beginners
NodeJS guide for beginnersEnoch Joshua
 
NodeJS: the good parts? A skeptic’s view (jax jax2013)
NodeJS: the good parts? A skeptic’s view (jax jax2013)NodeJS: the good parts? A skeptic’s view (jax jax2013)
NodeJS: the good parts? A skeptic’s view (jax jax2013)Chris Richardson
 
Nodejs Event Driven Concurrency for Web Applications
Nodejs Event Driven Concurrency for Web ApplicationsNodejs Event Driven Concurrency for Web Applications
Nodejs Event Driven Concurrency for Web ApplicationsGanesh Iyer
 
Getting started with developing Nodejs
Getting started with developing NodejsGetting started with developing Nodejs
Getting started with developing NodejsPhil Hawksworth
 
Alphorm.com Formation NodeJS, les fondamentaux
Alphorm.com Formation NodeJS, les fondamentauxAlphorm.com Formation NodeJS, les fondamentaux
Alphorm.com Formation NodeJS, les fondamentauxAlphorm
 
Create Restful Web Application With Node.js Express Framework
Create Restful Web Application With Node.js Express FrameworkCreate Restful Web Application With Node.js Express Framework
Create Restful Web Application With Node.js Express FrameworkEdureka!
 

Destacado (14)

NodeJS: the good parts? A skeptic’s view (devnexus2014)
NodeJS: the good parts? A skeptic’s view (devnexus2014)NodeJS: the good parts? A skeptic’s view (devnexus2014)
NodeJS: the good parts? A skeptic’s view (devnexus2014)
 
(C)NodeJS
(C)NodeJS(C)NodeJS
(C)NodeJS
 
NodeJS: the good parts? A skeptic’s view (oredev, oredev2013)
NodeJS: the good parts? A skeptic’s view (oredev, oredev2013)NodeJS: the good parts? A skeptic’s view (oredev, oredev2013)
NodeJS: the good parts? A skeptic’s view (oredev, oredev2013)
 
Asynchronous I/O in NodeJS - new standard or challenges?
Asynchronous I/O in NodeJS - new standard or challenges?Asynchronous I/O in NodeJS - new standard or challenges?
Asynchronous I/O in NodeJS - new standard or challenges?
 
NodeJS guide for beginners
NodeJS guide for beginnersNodeJS guide for beginners
NodeJS guide for beginners
 
Testing NodeJS Security
Testing NodeJS SecurityTesting NodeJS Security
Testing NodeJS Security
 
NodeJS: the good parts? A skeptic’s view (jax jax2013)
NodeJS: the good parts? A skeptic’s view (jax jax2013)NodeJS: the good parts? A skeptic’s view (jax jax2013)
NodeJS: the good parts? A skeptic’s view (jax jax2013)
 
Nodejs Event Driven Concurrency for Web Applications
Nodejs Event Driven Concurrency for Web ApplicationsNodejs Event Driven Concurrency for Web Applications
Nodejs Event Driven Concurrency for Web Applications
 
Getting started with developing Nodejs
Getting started with developing NodejsGetting started with developing Nodejs
Getting started with developing Nodejs
 
Node JS
Node JSNode JS
Node JS
 
Alphorm.com Formation NodeJS, les fondamentaux
Alphorm.com Formation NodeJS, les fondamentauxAlphorm.com Formation NodeJS, les fondamentaux
Alphorm.com Formation NodeJS, les fondamentaux
 
NodeJS for Beginner
NodeJS for BeginnerNodeJS for Beginner
NodeJS for Beginner
 
Create Restful Web Application With Node.js Express Framework
Create Restful Web Application With Node.js Express FrameworkCreate Restful Web Application With Node.js Express Framework
Create Restful Web Application With Node.js Express Framework
 
ZeroMQ with NodeJS
ZeroMQ with NodeJSZeroMQ with NodeJS
ZeroMQ with NodeJS
 

Similar a NodeJS for Novices - 28/Oct/13 - Winnipeg, MB

Angular js mobile jsday 2014 - Verona 14 may
Angular js mobile   jsday 2014 - Verona 14 mayAngular js mobile   jsday 2014 - Verona 14 may
Angular js mobile jsday 2014 - Verona 14 mayLuciano Amodio
 
PHP on Windows and on Azure
PHP on Windows and on AzurePHP on Windows and on Azure
PHP on Windows and on AzureMaarten Balliauw
 
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SKHTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SKDavid Wesst
 
The Happy Path: Migration Strategies for Node.js
The Happy Path: Migration Strategies for Node.jsThe Happy Path: Migration Strategies for Node.js
The Happy Path: Migration Strategies for Node.jsNicholas Jansma
 
Liberating web apps from the server
Liberating web apps from the serverLiberating web apps from the server
Liberating web apps from the serverAlexander Gyoshev
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.jsVikash Singh
 
Just another Wordpress weblog, but more cloudy
Just another Wordpress weblog, but more cloudyJust another Wordpress weblog, but more cloudy
Just another Wordpress weblog, but more cloudyMaarten Balliauw
 
Meteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJS
Meteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJSMeteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJS
Meteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJSJulio Antonio Mendonça de Marins
 
Fowa Miami 09 Cloud Computing Workshop
Fowa Miami 09 Cloud Computing WorkshopFowa Miami 09 Cloud Computing Workshop
Fowa Miami 09 Cloud Computing WorkshopMark Masterson
 
Basic Concept of Node.js & NPM
Basic Concept of Node.js & NPMBasic Concept of Node.js & NPM
Basic Concept of Node.js & NPMBhargav Anadkat
 
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...VISEO
 
JavaScript & Enterprise BED-Con 2014 Berlin German
JavaScript & Enterprise BED-Con 2014 Berlin GermanJavaScript & Enterprise BED-Con 2014 Berlin German
JavaScript & Enterprise BED-Con 2014 Berlin GermanAdam Boczek
 
(In)Security Implication in the JS Universe
(In)Security Implication in the JS Universe(In)Security Implication in the JS Universe
(In)Security Implication in the JS UniverseStefano Di Paola
 
NET Event - Migrating WinForm
NET Event - Migrating WinFormNET Event - Migrating WinForm
NET Event - Migrating WinFormRaffaele Garofalo
 
Develop High Performance Windows 8 Application with HTML5 and JavaScriptHigh ...
Develop High Performance Windows 8 Application with HTML5 and JavaScriptHigh ...Develop High Performance Windows 8 Application with HTML5 and JavaScriptHigh ...
Develop High Performance Windows 8 Application with HTML5 and JavaScriptHigh ...Doris Chen
 
ASP.NET MVC - In the Wild
ASP.NET MVC - In the WildASP.NET MVC - In the Wild
ASP.NET MVC - In the WildBrian Boatright
 
Intro To Node.js
Intro To Node.jsIntro To Node.js
Intro To Node.jsChris Cowan
 

Similar a NodeJS for Novices - 28/Oct/13 - Winnipeg, MB (20)

Angular js mobile jsday 2014 - Verona 14 may
Angular js mobile   jsday 2014 - Verona 14 mayAngular js mobile   jsday 2014 - Verona 14 may
Angular js mobile jsday 2014 - Verona 14 may
 
PHP on Windows and on Azure
PHP on Windows and on AzurePHP on Windows and on Azure
PHP on Windows and on Azure
 
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SKHTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
 
The Happy Path: Migration Strategies for Node.js
The Happy Path: Migration Strategies for Node.jsThe Happy Path: Migration Strategies for Node.js
The Happy Path: Migration Strategies for Node.js
 
Liberating web apps from the server
Liberating web apps from the serverLiberating web apps from the server
Liberating web apps from the server
 
Node js introduction
Node js introductionNode js introduction
Node js introduction
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
 
Just another Wordpress weblog, but more cloudy
Just another Wordpress weblog, but more cloudyJust another Wordpress weblog, but more cloudy
Just another Wordpress weblog, but more cloudy
 
Meteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJS
Meteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJSMeteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJS
Meteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJS
 
Fowa Miami 09 Cloud Computing Workshop
Fowa Miami 09 Cloud Computing WorkshopFowa Miami 09 Cloud Computing Workshop
Fowa Miami 09 Cloud Computing Workshop
 
Basic Concept of Node.js & NPM
Basic Concept of Node.js & NPMBasic Concept of Node.js & NPM
Basic Concept of Node.js & NPM
 
Node js
Node jsNode js
Node js
 
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...
 
JavaScript & Enterprise BED-Con 2014 Berlin German
JavaScript & Enterprise BED-Con 2014 Berlin GermanJavaScript & Enterprise BED-Con 2014 Berlin German
JavaScript & Enterprise BED-Con 2014 Berlin German
 
(In)Security Implication in the JS Universe
(In)Security Implication in the JS Universe(In)Security Implication in the JS Universe
(In)Security Implication in the JS Universe
 
NET Event - Migrating WinForm
NET Event - Migrating WinFormNET Event - Migrating WinForm
NET Event - Migrating WinForm
 
Develop High Performance Windows 8 Application with HTML5 and JavaScriptHigh ...
Develop High Performance Windows 8 Application with HTML5 and JavaScriptHigh ...Develop High Performance Windows 8 Application with HTML5 and JavaScriptHigh ...
Develop High Performance Windows 8 Application with HTML5 and JavaScriptHigh ...
 
ASP.NET MVC - In the Wild
ASP.NET MVC - In the WildASP.NET MVC - In the Wild
ASP.NET MVC - In the Wild
 
Intro To Node.js
Intro To Node.jsIntro To Node.js
Intro To Node.js
 
NetBeans 6.5
NetBeans 6.5NetBeans 6.5
NetBeans 6.5
 

Más de David Wesst

Web Extensions Solve all Enterprise-y Everythings
Web Extensions Solve all Enterprise-y EverythingsWeb Extensions Solve all Enterprise-y Everythings
Web Extensions Solve all Enterprise-y EverythingsDavid Wesst
 
AI, The Enterprise, and You
AI, The Enterprise, and YouAI, The Enterprise, and You
AI, The Enterprise, and YouDavid Wesst
 
JavaScript Build System Battle Royale | PrDC 2017
JavaScript Build System Battle Royale | PrDC 2017JavaScript Build System Battle Royale | PrDC 2017
JavaScript Build System Battle Royale | PrDC 2017David Wesst
 
5 Reasons Why Your Website Is[n’t] a Native App (PrDC 2015)
5 Reasons Why Your Website Is[n’t] a Native App (PrDC 2015)5 Reasons Why Your Website Is[n’t] a Native App (PrDC 2015)
5 Reasons Why Your Website Is[n’t] a Native App (PrDC 2015)David Wesst
 
Learning to be IDE Free (PrDC 2015)
Learning to be IDE Free (PrDC 2015)Learning to be IDE Free (PrDC 2015)
Learning to be IDE Free (PrDC 2015)David Wesst
 
Computer Science Career Awesomeness - GPH (May 2015)
Computer Science Career Awesomeness - GPH (May 2015)Computer Science Career Awesomeness - GPH (May 2015)
Computer Science Career Awesomeness - GPH (May 2015)David Wesst
 
Rich and Beautiful: Making Attractive Apps in HTML5 [Wpg 2013]
Rich and Beautiful: Making Attractive Apps in HTML5 [Wpg 2013]Rich and Beautiful: Making Attractive Apps in HTML5 [Wpg 2013]
Rich and Beautiful: Making Attractive Apps in HTML5 [Wpg 2013]David Wesst
 

Más de David Wesst (7)

Web Extensions Solve all Enterprise-y Everythings
Web Extensions Solve all Enterprise-y EverythingsWeb Extensions Solve all Enterprise-y Everythings
Web Extensions Solve all Enterprise-y Everythings
 
AI, The Enterprise, and You
AI, The Enterprise, and YouAI, The Enterprise, and You
AI, The Enterprise, and You
 
JavaScript Build System Battle Royale | PrDC 2017
JavaScript Build System Battle Royale | PrDC 2017JavaScript Build System Battle Royale | PrDC 2017
JavaScript Build System Battle Royale | PrDC 2017
 
5 Reasons Why Your Website Is[n’t] a Native App (PrDC 2015)
5 Reasons Why Your Website Is[n’t] a Native App (PrDC 2015)5 Reasons Why Your Website Is[n’t] a Native App (PrDC 2015)
5 Reasons Why Your Website Is[n’t] a Native App (PrDC 2015)
 
Learning to be IDE Free (PrDC 2015)
Learning to be IDE Free (PrDC 2015)Learning to be IDE Free (PrDC 2015)
Learning to be IDE Free (PrDC 2015)
 
Computer Science Career Awesomeness - GPH (May 2015)
Computer Science Career Awesomeness - GPH (May 2015)Computer Science Career Awesomeness - GPH (May 2015)
Computer Science Career Awesomeness - GPH (May 2015)
 
Rich and Beautiful: Making Attractive Apps in HTML5 [Wpg 2013]
Rich and Beautiful: Making Attractive Apps in HTML5 [Wpg 2013]Rich and Beautiful: Making Attractive Apps in HTML5 [Wpg 2013]
Rich and Beautiful: Making Attractive Apps in HTML5 [Wpg 2013]
 

Último

Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 

Último (20)

Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 

NodeJS for Novices - 28/Oct/13 - Winnipeg, MB

  • 1. NODE FOR NOVICES BRINGING JAVASCRIPT TO THE SERVER An original presentation by David Wesst / @davidwesst PRESENTED AT THE WINNIPEG .NET USER GROUP - OCTOBER 28, 2013 http://www.winnipegdotnet.org
  • 2. DAVID WESST FROM WINNIPEG, MANITOBA SYSTEMS ANALYST, UNIVERSITY OF MANITOBA (FACULTY OF MEDICINE) MICROSOFT MVP, INTERNET EXPLORER IE USER AGENT USERAGENTS.IE PRODUCER, BREWPUB STUDIOS
  • 3. DAVID WESST @DAVIDWESST ON TWITTER DAVIDWESST.COM ON THE WEB DAVIDWESST.COM/BLOG ON THE BLOGOSPHERE DW [AT] DAVIDWESST.COM ON EMAIL
  • 5. SLIDES AND DEMOS WILL BE MADE AVAILABLE AFTERWARDS
  • 6. THE POINT TO ANSWER ONE OF THE FOLLOWING QUESTIONS: What is Node (a.k.a. NodeJS)? What do I need to get started? What makes NodeJS different to ASP.NET? Why aren't my JS frameworks working in NodeJS?
  • 7. THE POINT THEME FOR THIS PRESENTATION UNDERSTAND WHAT YOU CAN DO WITH NODEJS
  • 8. THE PLAN (A.K.A. THE AGENDA) How are we going to do this? What is NodeJS? Getting Yourself Setup Your NodeJS Toolbox Getting Your Node On
  • 9. THE PLAN SETTING YOUR EXPECTATIONS This presentation is... An introduction to NodeJS A dialogue about NodeJS Comparing NodeJS to ASP.NET A review of NodeJS development tools A "core sample" of NodeJS fundamentals
  • 12. WHAT IS NODEJS? Node is... Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.
  • 13. WHAT IS NODEJS? Node is... ...Server-Side JavaScript ...100% Multi-Platform ...Open Source ...Sponsored by Joyent
  • 14. WHAT IS NODEJS? Node is... ...Powered by Google's V8 JavaScript Engine ...Provides request-level control ...bundled with a package manager (a.k.a npm, node packaged modules) ...Built on the idea of Asynchronous I/O [or Non-Blocking I/O]
  • 15. ASYNCHRONOUS I/O? I/O THAT DOESN'T BLOCK YOUR APPLICATION
  • 16. YOU: I DON'T UNDERSTAND HOW THAT IS POSSIBLE. TELL ME MORE! I WILL.
  • 17. EXAMPLE: CLIENT-SIDE JAVASCRIPT / fn t o w t pr mt r / u ci n ih a ae e f nt o mC in Fn to ( es g, cl bc ) { u ci n yl et u ci nm sa e a la k / v ra l / a i be v rm g =m sa e a s e sg ; / o jc s / bet v rr n oA ry =n wA r y) a ad mr a e ra (; / f nt o cl / u c in al ae tm g; lr ( s) / c l te cl bc / a l h al a k cl bc (; al a k) } ; v rt ea la k= f nt o( { a h C lb c u ci n ) / .. o sm ti g /. d oe hn } m Ci nF nt o( e sg ,t ea l ak ; y le t uc in ms ae hC lb c)
  • 18. EXAMPLE: SERVER-SIDE (NODEJS) JAVASCRIPT / fn t o w t pr mt r / u ci n ih a ae e f nt o mS re Fn to ( es g, cl bc ) { u ci n ye vr u ci nm sa e a la k / v ra l / a i be v rm g =m sa e a s e sg ; / o jc s / bet v rr n oA ry =n wA r y) a ad mr a e ra (; / f nt o cl / u c in al cn oe lg mg ; os l .o (s ) / c l te cl bc / a l h al a k cl bc (; al a k) } ; v rt ea la k= f nt o( { a h C lb c u ci n ) / .. o sm ti g /. d oe hn } m Sr eF nt o( e sg ,t ea l ak ; y ev r uc in ms ae hC lb c)
  • 20. CALLBACKS CALLBACK ARE THE SECRET TO NON-BLOCKING OPERATIONS On the client, UI is kept unblocked On the server, Requests are unblocked
  • 22. WHERE IS NODE BEING USED IN PRODUCTION? REAL EXAMPLES Nodejitsu, Cloud Platform LinkedIn Ebay
  • 23. LET'S TALK NODEJS AND JAVASCRIPT FRAMEWORKS (LIKE BACKBONEJS)
  • 25. WHAT ARE YOU GOING TO NEED? Your development machine (Windows, Linux, or Mac) An Internet Connection (OPTIONAL) A bit of comfort with a command line
  • 26. HOW ARE YOU GOING TO DO IT? WINDOWS AND MAC 1. 2. 3. 4. Go to NodeJS.org Download the installer Follow the install wizard Test it in the CLI (command line interface)
  • 28. CORE TOOLBOX: TEXT EDITOR + TERMINAL THIS IS PRETTY GOOD TO GET YOU GOING Vi Notepad GEdit TextMate
  • 29. NODEJS TOOLS: NODECLIPSE / NODE IDE HTTP://WWW.NODECLIPSE.ORG/ Eclipse Plugin(s) Free and Open Source Adds NodeJS running and debugging support in Eclipse Very young project, but provides what you need
  • 30. NODEJS TOOLS: CLOUD9 HTTP://C9.IO Hosted IDE Free and Paid Options Open Source Provides support for major web platforms Includes other common development features, like MySQL and Terminal
  • 31. NODEJS TOOLS: WEBMATRIX HTTP://WWW.MICROSOFT.COM/WEB/WEBMATRIX/ Windows Application from Microsoft Free Environment for popular web platforms (Node, Rails, PHP, HTML5, ASP.NET) Meant for development of Web Sites over Web Apps
  • 32. NODEJS TOOLS WebStorm IDE by JetBrainsLink Netbeans Plugin Link Visual Node (Private Beta) by RedgateLink
  • 34. WARMING UP TO NODE NODE PROJECTS ARE MADE UP OF THE FOLLOWING: "App.js" - Your Main Executable File "Package.json" (OPTIONAL) - Describes details of your application "node_modules/" (OPTIONAL) - Contains project dependencies
  • 36. USING THE NPM NODE PACKAGED MODULES NPM is bundled with Node base install as of v0.6.3 Packages can be browsed at NPMjs.org Installs packages either locally n mi sa lu dr c r p n t l ne so e ...or globally n mi sa l- t ps rp p n t l g y e ci t
  • 37. PACKAGE.JSON: REVISITED THE KEYS TO USING THE NPM You can... Define dependencies for running your application Define dependencies for developing your application Set the name, version, and main for your own apps and packages Publish your own packages to the npm
  • 40. GITHUB IS YOUR FRIEND
  • 41. CODING WITH CALLBACKS USING THE REAL POWER OF NODEJS Keys to remember: Functions are first-class citizens in JavaScript Functions can be passed as arguments Defining functions inside of functions makes them "private" Non-blocking means user waits less, which is good!
  • 44. MAKING YOUR OWN MODULES MODULARITY FOR THE WIN Keys to remember: Modules provide a way to easily organize your code Can be shared amongst other projects Published through npm or git repository Version is defined in package.json
  • 46. THINGS TO REMEMBER Private and Public variables exist Think Modular NPM is your friend ...and so is Github
  • 47. LET'S TALK NODEJS AND MICROSOFT STUFF
  • 48. NODEJS AND MICROSOFT Websites and Cloud Services support in Windows Azure IDE built into WebMatrix IIS and IIS Support through IISNode
  • 49. ASP.NET VS NODEJS Serves up JavaScript and HTML Natively Synchronous Requires IIS Provides multiple structured ways of doing web (Web Forms, MVC, Websites, WebAPI)
  • 50. ASP.NET VS NODEJS Serves up JavaScript and HTML Natively Asynchronous Does not require web server (e.g. IIS) Provides multiple unstructured ways of doing web Open Source
  • 52. EXPRESSJS: YOUR NEW FAVOURITE NODE MODULE POPULAR MVC FRAMEWORK FOR NODE Provides MVC Pattern for Web Applications Supports Popular Middle Modules Command-Line Setup Supports popular UI tools (e.g. LESS, SASS, Jade Templates)
  • 54. THE PLAN (A.K.A. THE AGENDA) How are we going to do this? What is NodeJS? Getting Yourself Setup Your NodeJS Toolbox Getting Your Node On
  • 55. THE POINT TO ANSWER ONE OF THE FOLLOWING QUESTIONS: What is Node (a.k.a. NodeJS)? What do I need to get started? What makes NodeJS different to ASP.NET? Why aren't my JS frameworks working in NodeJS?
  • 56. THE POINT THEME FOR THIS PRESENTATION UNDERSTAND WHAT YOU CAN DO WITH NODEJS
  • 57. NEXT STEPS Where do we go from here?
  • 58. NEXT STEPS Install NodeJS Create a NodeJS Application with or without ExpressJS Explore the npm Publish a package to the npm
  • 59. NEXT STEPS CHECK OUT A RESOURCE http://package.json.nodejitsu.com/ http://blog.nodejitsu.com/npm-cheatsheet http://npmjs.org
  • 60. DAVID WESST FROM WINNIPEG, MANITOBA SYSTEMS ANALYST, UNIVERSITY OF MANITOBA (FACULTY OF MEDICINE) MICROSOFT MVP, INTERNET EXPLORER IE USER AGENT USERAGENTS.IE PRODUCER, BREWPUB STUDIOS
  • 61. DAVID WESST @DAVIDWESST ON TWITTER DAVIDWESST.COM ON THE WEB DAVIDWESST.COM/BLOG ON THE BLOGOSPHERE DW [AT] DAVIDWESST.COM ON EMAIL