SlideShare ist ein Scribd-Unternehmen logo
1 von 61
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Andere mochten auch

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!
 

Andere mochten auch (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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]
 

Kürzlich hochgeladen

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 

Kürzlich hochgeladen (20)

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 

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