Node.js para .NET Developers
-
Upload
concrete-solutions -
Category
Technology
-
view
588 -
download
1
Transcript of Node.js para .NET Developers
Sob a perspectiva de um .Net Developer
Node.js
O que é Node.js?● Plataforma construída sob a “Chrome´s Javascript runtime” para facilitar a
construção de aplicações:● Rápidas● Escaláveis
● Utiliza um modelo de “I/O” orientado a eventos não “blockantes”, o que o torna leve e eficiente, perfeito para aplicações distribuídas e/ou de tempo real com lido de grandes massas de dados.
● É um servidor mais simples que o IIS, possui implementações que se aproximam de OWIN e KATANA.
Server Side Javascript
● O fato de rodar sob o Google V8 engine faz com que ele se torne um código muito mais previsível, não sujeito às mesmas variações que o código javascript que roda no browser;
● Modular e Assíncrono;
● HTTP, Networking e Web Sockets tratados como cidadãos de 1ª classe
Algumas Características
● Open-source;● Cross-platform;● Suporta integração com vários tipos de fonte de dados, mesmo as mais
tradicionais, como SqlServer e Oracle;● Focado em I/O● Problemas para lidar com intensivas operações de CPU
○ Processamento de Imagens○ Computações complexas
● Rico ecossistema para a criação de aplicações web modernas
The Node Package Manager
O Npm é um gerenciador de pacotes que facilita o compartilhamento e reutilização de código.
O conteúdo do Npm se divide em pacotes e módulos, em alguns casos.
O arquivo packages.json faz com que eles sejam independentes e desacoplados.
Se o javascript é uma linguagem interpretada, Node.js não deveria ser mais lento do que o .Net Framework, já que suas linguagens são compiladas?
● Node.js propriamente dito não foi escrito em javascript. É uma plataforma para a execução de javascript.
● Quando se compila o código .net, o que se obtém como resultado não é código de máquina nativo, mas código de linguagem intermediária. Esta linguagem está para a linguagem de máquina no mesmo nível que o Javascript.
● O Google v8 vai fazer para javascript o que a CLR faz para o código IL;
● V8 suporta JIT e Compilação Otimizada
Node.js vs .NET/CLR● Escrita em C, C++
● Multi-Threaded para web por princípio
● Cada requisição é tratada em pelo menos uma Thread
● “Schedulling” abstraído para o developer (a menos que ele queira controlar isso)
● Escrita em C, C++ e Javascript
● Single-threaded, com um processo
● Operações “blockantes” de CPU podem causar Thread Starvation
● Developers precisam ser conscientes de “schedulling” e preparar sua aplicação para lidar com isso desde o início
Tooling
● Visual Studio 2012+○ Node.js Tools
● Visual Studio Code● Sublime ⅔
○ JavaScript & NodeJS Snippets
● Atom● Notepad++● Brackets● VI● VIM
Um Paralelo entre as duas PlataformasIIS
C#/VB/F#
EF/SQL Server
Nuget
ASP.NET Web Forms
ASP.NET MVC/Razor
ASP.NET MVC/Web API
AngularJS/Ember/KnockoutJS
SignalR
Node.exe
JavaScript
MongoDB ou qualquer outro SGBD
NPM
Express + EJS
Express + Vesh
Express
AngularJS/Ember/KnockoutJS
WebSockets
Referências:● https://strongloop.com/node-js/api-platform/
● http://www.sitepoint.com/beginners-guide-node-package-manager/
● https://www.codeschool.com/courses/real-time-web-with-node-js
● http://www.pluralsight.com/courses/nodejs-dotnet-developers
● http://darrenderidder.github.io/talks/ModulePatterns/#/11