SlideShare a Scribd company logo
MILAN november 28th/29th 2014 - @imperugo 
Ugo Lattanzi 
NodeJs for .NET Web developers and vice versa: 
Meet the Dark Side of development 
Head of Technologies at Gaia (http://gaia.is.it) 
@imperugo 
imperugo@gmail.com 
http://tostring.it
MILAN november 28th/29th 2014 – Ugo Lattanzi 
What is node? 
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.
MILAN november 28th/29th 2014 – Ugo Lattanzi 
What can I do with 
Node? 
Http, networking, Websockets but also it is an invaluable tool for 
developers
MILAN november 28th/29th 2014 – Ugo Lattanzi 
Why is it so cool? 
it’s javascript 
it’s fast 
optimised (low resources) 
runs everywhere
MILAN november 28th/29th 2014 – Ugo Lattanzi 
but it’s also for nerd!
MILAN november 28th/29th 2014 – Ugo Lattanzi 
everybody loves it … 
except Ted Dziuba, he defined “Node Js a cancer” 
http://teddziuba.com/2011/10/node-js-is-cancer.html 
(post removed)
MILAN november 28th/29th 2014 – Ugo Lattanzi 
Node vs .NET 
IIS => Node.exe 
C# / VB => Javascript 
NuGet => npm 
ASP.NET WebForm => Express + EJS 
ASP.NET MVC => Express + Vash 
ASP.NET WebAPI => Express 
SignalR => Socket.io
MILAN november 28th/29th 2014 – Ugo Lattanzi 
Visual Studio 
addicted? 
don’t worry, there is a free and open source plugin (NTVS) that turns 
Visual Studio into a Node.js IDE 
http://nodejstools.codeplex.com/ 
NTVS supports Editing, Intellisense, Profiling, npm, TypeScript, 
Debugging locally and remotely (Windows/MacOS/Linux), as well as 
Azure Web Sites and Cloud Service.
MILAN november 28th/29th 2014 – Ugo Lattanzi 
Async
MILAN november 28th/29th 2014 – Ugo Lattanzi 
Async 
http://www.toptal.com/nodejs/why-the-hell-would-i-use-node-js
MILAN november 28th/29th 2014 – Ugo Lattanzi 
Async 
http://www.toptal.com/nodejs/why-the-hell-would-i-use-node-js
MILAN november 28th/29th 2014 – Ugo Lattanzi 
Async
MILAN november 28th/29th 2014 – Ugo Lattanzi 
Let’s start
MILAN november 28th/29th 2014 – Ugo Lattanzi 
express.js 
npm init 
npm install express —save 
npm install vash —save
MILAN november 28th/29th 2014 – Ugo Lattanzi 
express.js 
package.json is the same thing of packages.config in nuget and npm 
install restore the missing packages
MILAN november 28th/29th 2014 – Ugo Lattanzi 
express.js
MILAN november 28th/29th 2014 – Ugo Lattanzi 
express.js
MILAN november 28th/29th 2014 – Ugo Lattanzi 
express.js / aspnet 
Controllers 
Model 
Views 
public ??
MILAN november 28th/29th 2014 – Ugo Lattanzi 
express.js
MILAN november 28th/29th 2014 – Ugo Lattanzi 
vash (@razor) 
Vash is a template engine that offers a swift flow between code and 
content using Razor Syntax 
it supports master pages, partial, helpers and so on 
it isn’t a porting of Razor View Engine but is very similar 
the file extension for the views is .vash
MILAN november 28th/29th 2014 – Ugo Lattanzi 
vash (@razor)
MILAN november 28th/29th 2014 – Ugo Lattanzi 
vash (@razor) 
partials are simple html files in the view folder 
to include a partial in your view all you have to do is 
@html.include(‘name_of_the_partial’)
MILAN november 28th/29th 2014 – Ugo Lattanzi 
vash (@razor)
MILAN november 28th/29th 2014 – Ugo Lattanzi 
express.js 
How to manage 404 and 500? 
add your view to the end of routing :-)
MILAN november 28th/29th 2014 – Ugo Lattanzi 
express.js
MILAN november 28th/29th 2014 – Ugo Lattanzi 
express.js (API) 
It’s very similar to render view but without the render command :)
MILAN november 28th/29th 2014 – Ugo Lattanzi 
express.js (API)
MILAN november 28th/29th 2014 – Ugo Lattanzi 
express.js 
(validation) 
there isn't data annotation so validation is more "challenging" than .net 
express-validator is a cool middleware for Express.Js that helps you to 
validate input data 
npm install express-validator —save
MILAN november 28th/29th 2014 – Ugo Lattanzi 
express.js 
(validation)
MILAN november 28th/29th 2014 – Ugo Lattanzi 
express middleware 
npm install body-parser —save 
npm install compression —save 
npm install cookie-parser —save 
npm install express-mailer —save 
npm install express-session —save
MILAN november 28th/29th 2014 – Ugo Lattanzi 
database 
of course you can use MS Sql Server (npm install mssql —save) 
but 
MongoDb “could be better” with Node (npm install mongodb —save)
MILAN november 28th/29th 2014 – Ugo Lattanzi 
database
MILAN november 28th/29th 2014 – Ugo Lattanzi 
database
MILAN november 28th/29th 2014 – Ugo Lattanzi 
edge.js 
An edge connects two nodes. This edge connects Node.js and .NET. V8 
and CLR/Mono - in process. On Windows, MacOS, and Linux.
MILAN november 28th/29th 2014 – Ugo Lattanzi 
edge.js
MILAN november 28th/29th 2014 – Ugo Lattanzi 
edge.js
MILAN november 28th/29th 2014 – Ugo Lattanzi 
Node vs .NET 
C# => NodeJs 
F# => NodeJs 
Python => NodeJs 
TSQL => NodeJs 
Powershell => NodeJs
MILAN november 28th/29th 2014 – Ugo Lattanzi 
slide and demo 
http://tostring.it (next days)
MILAN november 28th/29th 2014 – Ugo Lattanzi 
Q/A
MILAN november 28th/29th 2014 – Ugo Lattanzi

More Related Content

Similar to Nodejs for .NET web developers

Sviluppare in cloud con M.E.A.N.: il caso Crowdcore
Sviluppare in cloud con M.E.A.N.: il caso CrowdcoreSviluppare in cloud con M.E.A.N.: il caso Crowdcore
Sviluppare in cloud con M.E.A.N.: il caso Crowdcore
ENTER S.r.l.
 
MySQL - Scale Out @ CloudParty 2013 Milano Talent Garden
MySQL - Scale Out @ CloudParty 2013 Milano Talent GardenMySQL - Scale Out @ CloudParty 2013 Milano Talent Garden
MySQL - Scale Out @ CloudParty 2013 Milano Talent Garden
Corley S.r.l.
 
The MetaCPAN VM Part II (Using the VM)
The MetaCPAN VM Part II (Using the VM)The MetaCPAN VM Part II (Using the VM)
The MetaCPAN VM Part II (Using the VM)
Olaf Alders
 
Learn how to build decentralized and serverless html5 applications with embar...
Learn how to build decentralized and serverless html5 applications with embar...Learn how to build decentralized and serverless html5 applications with embar...
Learn how to build decentralized and serverless html5 applications with embar...
Alessandro Confetti
 
Learn how to build decentralized and serverless html5 applications with Embar...
Learn how to build decentralized and serverless html5 applications with Embar...Learn how to build decentralized and serverless html5 applications with Embar...
Learn how to build decentralized and serverless html5 applications with Embar...
Codemotion
 
Build your reactive web application with Vert.x
Build your reactive web application with Vert.xBuild your reactive web application with Vert.x
Build your reactive web application with Vert.x
Codemotion
 
Fifty shades of Alloy - tips and tools for a great Titanium Mobile development
Fifty shades of Alloy - tips and tools for a great Titanium Mobile developmentFifty shades of Alloy - tips and tools for a great Titanium Mobile development
Fifty shades of Alloy - tips and tools for a great Titanium Mobile development
Alessio Ricco
 
50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014
50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 201450 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014
50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014
Codemotion
 
Capacity Planning Free Solution
Capacity Planning Free SolutionCapacity Planning Free Solution
Capacity Planning Free Solutionluanrjesus
 
Open source on Microsoft Azure: Linux, Java, NodeJS, MongoDb and many other t...
Open source on Microsoft Azure: Linux, Java, NodeJS, MongoDb and many other t...Open source on Microsoft Azure: Linux, Java, NodeJS, MongoDb and many other t...
Open source on Microsoft Azure: Linux, Java, NodeJS, MongoDb and many other t...
Codemotion
 
Presentazione Codemotion
Presentazione Codemotion Presentazione Codemotion
Presentazione Codemotion
LinkMe Srl
 
Puppet Camp London 2014: Keynote
Puppet Camp London 2014: KeynotePuppet Camp London 2014: Keynote
Puppet Camp London 2014: Keynote
Puppet
 
Beyond the buzzword: a reactive web-appliction in practice
Beyond the buzzword: a reactive web-appliction in practiceBeyond the buzzword: a reactive web-appliction in practice
Beyond the buzzword: a reactive web-appliction in practice
Manuel Bernhardt
 
Sviluppare in cloud con M.E.A.N.: il caso Crowdcore
Sviluppare in cloud con M.E.A.N.: il caso CrowdcoreSviluppare in cloud con M.E.A.N.: il caso Crowdcore
Sviluppare in cloud con M.E.A.N.: il caso Crowdcore
Codemotion
 
Bluetooth 4.0 and iBeacons in your iOS app - Francesco Novelli - Codemotion M...
Bluetooth 4.0 and iBeacons in your iOS app - Francesco Novelli - Codemotion M...Bluetooth 4.0 and iBeacons in your iOS app - Francesco Novelli - Codemotion M...
Bluetooth 4.0 and iBeacons in your iOS app - Francesco Novelli - Codemotion M...
Codemotion
 
Ansible - General Concepts and Summary
Ansible - General Concepts and Summary Ansible - General Concepts and Summary
Ansible - General Concepts and Summary
serkancapkan
 
Clocker, the Docker Cloud Maker - Andrea Turli - Codemotion Rome 2015
Clocker, the Docker Cloud Maker - Andrea Turli - Codemotion Rome 2015Clocker, the Docker Cloud Maker - Andrea Turli - Codemotion Rome 2015
Clocker, the Docker Cloud Maker - Andrea Turli - Codemotion Rome 2015
Codemotion
 
Austin agile conf 2012 infrastructure automation-gmiranda
Austin agile conf 2012 infrastructure automation-gmirandaAustin agile conf 2012 infrastructure automation-gmiranda
Austin agile conf 2012 infrastructure automation-gmirandaGeorge Miranda
 
Alessandro Confetti - Learn how to build decentralized and serverless html5 a...
Alessandro Confetti - Learn how to build decentralized and serverless html5 a...Alessandro Confetti - Learn how to build decentralized and serverless html5 a...
Alessandro Confetti - Learn how to build decentralized and serverless html5 a...
Codemotion
 

Similar to Nodejs for .NET web developers (20)

Sviluppare in cloud con M.E.A.N.: il caso Crowdcore
Sviluppare in cloud con M.E.A.N.: il caso CrowdcoreSviluppare in cloud con M.E.A.N.: il caso Crowdcore
Sviluppare in cloud con M.E.A.N.: il caso Crowdcore
 
MySQL - Scale Out @ CloudParty 2013 Milano Talent Garden
MySQL - Scale Out @ CloudParty 2013 Milano Talent GardenMySQL - Scale Out @ CloudParty 2013 Milano Talent Garden
MySQL - Scale Out @ CloudParty 2013 Milano Talent Garden
 
The MetaCPAN VM Part II (Using the VM)
The MetaCPAN VM Part II (Using the VM)The MetaCPAN VM Part II (Using the VM)
The MetaCPAN VM Part II (Using the VM)
 
Learn how to build decentralized and serverless html5 applications with embar...
Learn how to build decentralized and serverless html5 applications with embar...Learn how to build decentralized and serverless html5 applications with embar...
Learn how to build decentralized and serverless html5 applications with embar...
 
Learn how to build decentralized and serverless html5 applications with Embar...
Learn how to build decentralized and serverless html5 applications with Embar...Learn how to build decentralized and serverless html5 applications with Embar...
Learn how to build decentralized and serverless html5 applications with Embar...
 
Build your reactive web application with Vert.x
Build your reactive web application with Vert.xBuild your reactive web application with Vert.x
Build your reactive web application with Vert.x
 
Fifty shades of Alloy - tips and tools for a great Titanium Mobile development
Fifty shades of Alloy - tips and tools for a great Titanium Mobile developmentFifty shades of Alloy - tips and tools for a great Titanium Mobile development
Fifty shades of Alloy - tips and tools for a great Titanium Mobile development
 
50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014
50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 201450 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014
50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014
 
Capacity Planning Free Solution
Capacity Planning Free SolutionCapacity Planning Free Solution
Capacity Planning Free Solution
 
Open source on Microsoft Azure: Linux, Java, NodeJS, MongoDb and many other t...
Open source on Microsoft Azure: Linux, Java, NodeJS, MongoDb and many other t...Open source on Microsoft Azure: Linux, Java, NodeJS, MongoDb and many other t...
Open source on Microsoft Azure: Linux, Java, NodeJS, MongoDb and many other t...
 
Presentazione Codemotion
Presentazione Codemotion Presentazione Codemotion
Presentazione Codemotion
 
Infrastructure as Code with Chef / Puppet
Infrastructure as Code with Chef / PuppetInfrastructure as Code with Chef / Puppet
Infrastructure as Code with Chef / Puppet
 
Puppet Camp London 2014: Keynote
Puppet Camp London 2014: KeynotePuppet Camp London 2014: Keynote
Puppet Camp London 2014: Keynote
 
Beyond the buzzword: a reactive web-appliction in practice
Beyond the buzzword: a reactive web-appliction in practiceBeyond the buzzword: a reactive web-appliction in practice
Beyond the buzzword: a reactive web-appliction in practice
 
Sviluppare in cloud con M.E.A.N.: il caso Crowdcore
Sviluppare in cloud con M.E.A.N.: il caso CrowdcoreSviluppare in cloud con M.E.A.N.: il caso Crowdcore
Sviluppare in cloud con M.E.A.N.: il caso Crowdcore
 
Bluetooth 4.0 and iBeacons in your iOS app - Francesco Novelli - Codemotion M...
Bluetooth 4.0 and iBeacons in your iOS app - Francesco Novelli - Codemotion M...Bluetooth 4.0 and iBeacons in your iOS app - Francesco Novelli - Codemotion M...
Bluetooth 4.0 and iBeacons in your iOS app - Francesco Novelli - Codemotion M...
 
Ansible - General Concepts and Summary
Ansible - General Concepts and Summary Ansible - General Concepts and Summary
Ansible - General Concepts and Summary
 
Clocker, the Docker Cloud Maker - Andrea Turli - Codemotion Rome 2015
Clocker, the Docker Cloud Maker - Andrea Turli - Codemotion Rome 2015Clocker, the Docker Cloud Maker - Andrea Turli - Codemotion Rome 2015
Clocker, the Docker Cloud Maker - Andrea Turli - Codemotion Rome 2015
 
Austin agile conf 2012 infrastructure automation-gmiranda
Austin agile conf 2012 infrastructure automation-gmirandaAustin agile conf 2012 infrastructure automation-gmiranda
Austin agile conf 2012 infrastructure automation-gmiranda
 
Alessandro Confetti - Learn how to build decentralized and serverless html5 a...
Alessandro Confetti - Learn how to build decentralized and serverless html5 a...Alessandro Confetti - Learn how to build decentralized and serverless html5 a...
Alessandro Confetti - Learn how to build decentralized and serverless html5 a...
 

Recently uploaded

FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 

Nodejs for .NET web developers

  • 1. MILAN november 28th/29th 2014 - @imperugo Ugo Lattanzi NodeJs for .NET Web developers and vice versa: Meet the Dark Side of development Head of Technologies at Gaia (http://gaia.is.it) @imperugo imperugo@gmail.com http://tostring.it
  • 2. MILAN november 28th/29th 2014 – Ugo Lattanzi What is node? 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.
  • 3. MILAN november 28th/29th 2014 – Ugo Lattanzi What can I do with Node? Http, networking, Websockets but also it is an invaluable tool for developers
  • 4. MILAN november 28th/29th 2014 – Ugo Lattanzi Why is it so cool? it’s javascript it’s fast optimised (low resources) runs everywhere
  • 5. MILAN november 28th/29th 2014 – Ugo Lattanzi but it’s also for nerd!
  • 6. MILAN november 28th/29th 2014 – Ugo Lattanzi everybody loves it … except Ted Dziuba, he defined “Node Js a cancer” http://teddziuba.com/2011/10/node-js-is-cancer.html (post removed)
  • 7. MILAN november 28th/29th 2014 – Ugo Lattanzi Node vs .NET IIS => Node.exe C# / VB => Javascript NuGet => npm ASP.NET WebForm => Express + EJS ASP.NET MVC => Express + Vash ASP.NET WebAPI => Express SignalR => Socket.io
  • 8. MILAN november 28th/29th 2014 – Ugo Lattanzi Visual Studio addicted? don’t worry, there is a free and open source plugin (NTVS) that turns Visual Studio into a Node.js IDE http://nodejstools.codeplex.com/ NTVS supports Editing, Intellisense, Profiling, npm, TypeScript, Debugging locally and remotely (Windows/MacOS/Linux), as well as Azure Web Sites and Cloud Service.
  • 9. MILAN november 28th/29th 2014 – Ugo Lattanzi Async
  • 10. MILAN november 28th/29th 2014 – Ugo Lattanzi Async http://www.toptal.com/nodejs/why-the-hell-would-i-use-node-js
  • 11. MILAN november 28th/29th 2014 – Ugo Lattanzi Async http://www.toptal.com/nodejs/why-the-hell-would-i-use-node-js
  • 12. MILAN november 28th/29th 2014 – Ugo Lattanzi Async
  • 13. MILAN november 28th/29th 2014 – Ugo Lattanzi Let’s start
  • 14. MILAN november 28th/29th 2014 – Ugo Lattanzi express.js npm init npm install express —save npm install vash —save
  • 15. MILAN november 28th/29th 2014 – Ugo Lattanzi express.js package.json is the same thing of packages.config in nuget and npm install restore the missing packages
  • 16. MILAN november 28th/29th 2014 – Ugo Lattanzi express.js
  • 17. MILAN november 28th/29th 2014 – Ugo Lattanzi express.js
  • 18. MILAN november 28th/29th 2014 – Ugo Lattanzi express.js / aspnet Controllers Model Views public ??
  • 19. MILAN november 28th/29th 2014 – Ugo Lattanzi express.js
  • 20. MILAN november 28th/29th 2014 – Ugo Lattanzi vash (@razor) Vash is a template engine that offers a swift flow between code and content using Razor Syntax it supports master pages, partial, helpers and so on it isn’t a porting of Razor View Engine but is very similar the file extension for the views is .vash
  • 21. MILAN november 28th/29th 2014 – Ugo Lattanzi vash (@razor)
  • 22. MILAN november 28th/29th 2014 – Ugo Lattanzi vash (@razor) partials are simple html files in the view folder to include a partial in your view all you have to do is @html.include(‘name_of_the_partial’)
  • 23. MILAN november 28th/29th 2014 – Ugo Lattanzi vash (@razor)
  • 24. MILAN november 28th/29th 2014 – Ugo Lattanzi express.js How to manage 404 and 500? add your view to the end of routing :-)
  • 25. MILAN november 28th/29th 2014 – Ugo Lattanzi express.js
  • 26. MILAN november 28th/29th 2014 – Ugo Lattanzi express.js (API) It’s very similar to render view but without the render command :)
  • 27. MILAN november 28th/29th 2014 – Ugo Lattanzi express.js (API)
  • 28. MILAN november 28th/29th 2014 – Ugo Lattanzi express.js (validation) there isn't data annotation so validation is more "challenging" than .net express-validator is a cool middleware for Express.Js that helps you to validate input data npm install express-validator —save
  • 29. MILAN november 28th/29th 2014 – Ugo Lattanzi express.js (validation)
  • 30. MILAN november 28th/29th 2014 – Ugo Lattanzi express middleware npm install body-parser —save npm install compression —save npm install cookie-parser —save npm install express-mailer —save npm install express-session —save
  • 31. MILAN november 28th/29th 2014 – Ugo Lattanzi database of course you can use MS Sql Server (npm install mssql —save) but MongoDb “could be better” with Node (npm install mongodb —save)
  • 32. MILAN november 28th/29th 2014 – Ugo Lattanzi database
  • 33. MILAN november 28th/29th 2014 – Ugo Lattanzi database
  • 34. MILAN november 28th/29th 2014 – Ugo Lattanzi edge.js An edge connects two nodes. This edge connects Node.js and .NET. V8 and CLR/Mono - in process. On Windows, MacOS, and Linux.
  • 35. MILAN november 28th/29th 2014 – Ugo Lattanzi edge.js
  • 36. MILAN november 28th/29th 2014 – Ugo Lattanzi edge.js
  • 37. MILAN november 28th/29th 2014 – Ugo Lattanzi Node vs .NET C# => NodeJs F# => NodeJs Python => NodeJs TSQL => NodeJs Powershell => NodeJs
  • 38. MILAN november 28th/29th 2014 – Ugo Lattanzi slide and demo http://tostring.it (next days)
  • 39. MILAN november 28th/29th 2014 – Ugo Lattanzi Q/A
  • 40. MILAN november 28th/29th 2014 – Ugo Lattanzi