Date post: | 07-Jul-2015 |
Category: |
Technology |
Upload: | ugo-lattanzi |
View: | 3,134 times |
Download: | 3 times |
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)@[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, 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 .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 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
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 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
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 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
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 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