SlideShare a Scribd company logo
1 of 40
Download to read offline
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 CrowdcoreENTER 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 GardenCorley 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.xCodemotion
 
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 2014Codemotion
 
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 developmentAlessio Ricco
 
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: KeynotePuppet
 
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 practiceManuel 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 CrowdcoreCodemotion
 
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 2015Codemotion
 
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
 
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
 
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
 
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

AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarPrecisely
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Adtran
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfDaniel Santiago Silva Capera
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDELiveplex
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding TeamAdam Moalla
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesMd Hossain Ali
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaborationbruanjhuli
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfJamie (Taka) Wang
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-pyJamie (Taka) Wang
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxUdaiappa Ramachandran
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...DianaGray10
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IES VE
 

Recently uploaded (20)

AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity Webinar
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
 
201610817 - edge part1
201610817 - edge part1201610817 - edge part1
201610817 - edge part1
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
 
20150722 - AGV
20150722 - AGV20150722 - AGV
20150722 - AGV
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-py
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptx
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
 

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