nodejs for .net web developers
DESCRIPTION
by Ugo Lattanzi - Vuoi passare al lato oscuro? Questa è la sessione che fa per te. Un side by side tra il mondo .NET e quello NodeJs in modo da apprenderne vantaggi, differenze, frameworks da utilizzare. Il tutto orientato al web.TRANSCRIPT
Ugo Lattanzi
NodeJs for .NET Web developers and Viceversa:
Meet the Dark Side of development
Head of Technologies at Gaia (http://gaia.is.it)@[email protected] http://tostring.it
MILAN november 28th/29th 2014 - @imperugo
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, Websocket but also an helpful tool for developers
MILAN november 28th/29th 2014 – Ugo Lattanzi
Why is so cool?is javascript
is fast
optimised (low resources)
runs everywhere
MILAN november 28th/29th 2014 – Ugo Lattanzi
…but is also for nerd!
MILAN november 28th/29th 2014 – Ugo Lattanzi
everybody love it …
Ted Dziuba 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 .NETIIS => 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 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
npm init
npm install express —save
npm install vash —save
express.js
MILAN november 28th/29th 2014 – Ugo Lattanzi
package.json is the same thing of packages.config in nuget and npm install restore the missing packages
express.js
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 / aspnetControllers
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 into the view folder
to include a partial into your view is enough to use
@html.include(‘name_of_the_partial’)
MILAN november 28th/29th 2014 – Ugo Lattanzi
vash (@razor)
MILAN november 28th/29th 2014 – Ugo Lattanzi
How to manage 404 and 500?
add your view to the end of routing :-)
express.js
MILAN november 28th/29th 2014 – Ugo Lattanzi
express.js
MILAN november 28th/29th 2014 – Ugo Lattanzi
It’s very similar to render view but without the render command :)
express.js (API)
MILAN november 28th/29th 2014 – Ugo Lattanzi
express.js (API)
MILAN november 28th/29th 2014 – Ugo Lattanzi
there aren’t data annotation so the validation is “impractical” than .net
express-validator is a cool middleware for Express.Js that helps you to validate input data
npm install express-validator —save
express.js (validation)
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 mongoldb —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