SlideShare una empresa de Scribd logo
1 de 40
Descargar para leer sin conexión
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

Más contenido relacionado

Similar a 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 a 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...
 

Último

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
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
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
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
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 

Último (20)

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
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
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
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
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 

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