construindo aplicações leves e performáticas com asp.net core 1.0

32
Construindo aplicações web leves e performáticas com ASP.NET 5 ASP.NET Core 1.0 Fabrício Sanchez Microsoft Technical Evangelist @SanchezFabricio

Upload: fabricio-lopes-sanchez

Post on 22-Feb-2017

972 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: Construindo aplicações leves e performáticas com ASP.NET Core 1.0

Construindo aplicações web leves e performáticas com ASP.NET 5 ASP.NET Core 1.0Fabrício SanchezMicrosoft Technical Evangelist@SanchezFabricio

Page 2: Construindo aplicações leves e performáticas com ASP.NET Core 1.0

A mudança chegou. Por que?

2002 600 milhões de usuários 9,1% da população mundial

online Tempo de uso médio: 46 minutos 3 milhões de sites 2 browsers Page load: 16 segundos

Page 3: Construindo aplicações leves e performáticas com ASP.NET Core 1.0

A web mudou a arquitetura das apps3

~2000 Hoje

Consumo de serviços

Vários pequenos servidores

Atualização rápida

Monolítica

Servidores robustos

Mudanças lentas

Page 4: Construindo aplicações leves e performáticas com ASP.NET Core 1.0

A mudança chegou. Por que?

2016 3.5 bilhões de usuários 40% da população mundial online Tempo de uso médio: 4 horas 555 milhões de sites 5 browsers Page load: 6 segundos

Page 5: Construindo aplicações leves e performáticas com ASP.NET Core 1.0

Por isso, “distribuir” é preciso

Máquinas virtuais

Servidor de apliação Nuvem pública

Disaster Recovery

Máquina de desenvolvimento

Cluster

Data Center

Páginas estática

s

Web Front EndAlgoritmos de background

BD do usuário BD de analytics

Filas API’s

Dev Teste Produção Escalar

Page 6: Construindo aplicações leves e performáticas com ASP.NET Core 1.0

Desktop & ASP.NET .NET

Por isso, precisamos evoluir…

Windows Store

Browsers & Win Phone

ASP.NET 5 Core 1.0

Framewor

k

Silverlight .NET Core Multi-Framewor

k

Window

s Mobile

Compact Framewor

k

Page 7: Construindo aplicações leves e performáticas com ASP.NET Core 1.0

.NET Framework 4.6 .NET Core 5 1.0 Implementação full do framework para

Windows.Implementação cross-plataform para atender o

universo open souce.

.NET 2015

• Dependência do ambiente operacional• Windows• Soluções para desktop, web e cloud• Mais controle

• Linux, OS X, Windows• Execução lado a lado• Modular• Otimizado para web, cloud e devices (IoT)

Page 8: Construindo aplicações leves e performáticas com ASP.NET Core 1.0

Next gen JIT (RyuJIT)SIMD

ComponentesRuntime Compiladores

Inovação das linguagensRoslyn

Libs .NET Core 5Libs .NET Framework 4.6

Pacotes NuGetComum

.NET 2015

.NET Framework 4.6 .NET Core 5 1.0

Page 9: Construindo aplicações leves e performáticas com ASP.NET Core 1.0

.NET Framework 4.6 .NET Core 5 1.0

WPF Windows Forms

Universal Windows Apps

.NET 2015

ASP.NET (4.X) ASP.NET Core 1.0ASP.NET 5

Next gen JIT (RyuJIT)SIMD

Runtime Components Compilers

Languages innovation.NET Compiler Platform

.NET Core 5 Libraries

.NET Framework 4.6 Libraries

NuGet packagesCommonNext gen JIT (RyuJIT)SIMD

ComponentesRuntime Compiladores

Inovação das linguagensRoslyn

Libs .NET Core 5Libs .NET Framework 4.6

Pacotes NuGetComum

Page 10: Construindo aplicações leves e performáticas com ASP.NET Core 1.0

.NET 2015

Windows Forms

Universal Windows Apps

WPF ASP.NET (4.X) ASP.NET Core 1.0ASP.NET 5

Next gen JIT (RyuJIT)SIMD

ComponentesRuntime Compiladores

Languages innovation.NET Compiler Platform

.NET Core 5 Libraries

.NET Framework 4.6 Libraries

Pacotes NuGetCommon

.NET Framework 4.6 .NET Core 5

Next gen JIT (RyuJIT)SIMD

ComponentesRuntime Compiladores

Inovação das linguagensRoslyn

Libs .NET Core 5Libs .NET Framework 4.6

Pacotes NuGetComum

Page 11: Construindo aplicações leves e performáticas com ASP.NET Core 1.0

ASP.NET 5

ASP.NET 4.6

Open Source

Operating System

Runtime Loader

Runtime

Platform Libraries

Application Host

Web Server

Application Frameworks

Libraries

Application

Windows

IIS: WebEngine4.dllExe: OS

.NET CLR

.NET BCL & FCL

System.Web

IIS

FCL, GAC, NuGet

Loose, GAC, NuGet

MSBuild -> csc.exeCodeDOM -> csc.exe

Windows, OSX, Linux

DNX

.NET CLR.NET Core CLR

.NET BCL & FCL.NET on NuGet

DNX

IIS, HTTP.SYSKestrel

NuGet

NuGet

DNX (Roslyn)

Page 12: Construindo aplicações leves e performáticas com ASP.NET Core 1.0

Você tem opções…

ASP.NET 4.6

.NET Framework

ASP.NET Core 1.0ASP.NET 5

.NET Framework

ASP.NET Core 1.0ASP.NET 5

.NET Core;-)

Page 13: Construindo aplicações leves e performáticas com ASP.NET Core 1.0

Um tour pelo ASP.NET 5 ASP.NET Core 1.0

Page 14: Construindo aplicações leves e performáticas com ASP.NET Core 1.0

ASP.NET 5 ASP.NET Core 1.0

Escolha sua IDE preferida

Open Source deverdade Cross-PlatformOSS

Transição entre ambientessimplificada

Ciclo de dev rápidoTotalmente modular

Rápido

Page 15: Construindo aplicações leves e performáticas com ASP.NET Core 1.0

Principais aspectos System.Web.dll free .NET Native possível .NET Full ou .NET Core Compilação on the fly

(Roslyn) Otimização da CLR (DNX) Dev multiplataforma Deploy no IIS ou via Self-

host Linux e Mac: execução em

Mono

Injeção de dependência nativa (MVC 6)

Componentes entregues como middlewares

Pronto pra nuvem Código aberto e

disponível no GitHub Implementa o modelo

OWIN Projetado para containers

Page 16: Construindo aplicações leves e performáticas com ASP.NET Core 1.0

ASP.NET 5 ASP.NET Core 1.0 por dentro

Page 17: Construindo aplicações leves e performáticas com ASP.NET Core 1.0

DEMO 1Entendendo a estrutura

Page 18: Construindo aplicações leves e performáticas com ASP.NET Core 1.0

OWIN

Trata-se da especificação do modelo de execução do novo

ASP.NET. Ele determina todas as diretrizes do servidor web.

Podemos dizer que OWIN está para o servidor web como o

HTML está para o navegador.

Page 19: Construindo aplicações leves e performáticas com ASP.NET Core 1.0

OWIN host versus Host tradicional

Internet Information Server (IIS)

ASP.NET (Webforms, MVC, WebPages, SPA, etc.)

HostIIS, OwinHost, CustomHost

ASP.NET 5ASP.NET Core 1.0

COMPONENTS

OWIN (interface)Enviroment Dictionary

IDictionary<string, object>

Application DelegateFunc< IDictionary<string,

object>, Task>

Page 20: Construindo aplicações leves e performáticas com ASP.NET Core 1.0

Katana

Implementação do modelo OWIN feita pela Microsoft para rodar

aplicações ASP.NET.Outras implementações também encontram-se disponíveis:

Helios, Nowin, dentre outros.

Page 21: Construindo aplicações leves e performáticas com ASP.NET Core 1.0

Katana (vNext) - Arquitetura

Host Processa e gerencia o workflow e os processosIIS – Custom Host – OWIN Host

Server Abre uma porta TCP, escuta os requests e dispara no OWIN pipelineSystemWeb – HttpListener - WebListener

Middleware Componente que implementa OWIN (delegate) que operadentro do pipeline. SignalR, Web API.

Application A aplicação em si, que implementa os componentes (middlewares).

Page 22: Construindo aplicações leves e performáticas com ASP.NET Core 1.0

Katana (vNext) - Arquitetura

Nave

gado

r

Host

Server

Pipeline da aplicação

Middleware Middleware Middleware

Page 23: Construindo aplicações leves e performáticas com ASP.NET Core 1.0

MVC 6 ASP.NET no OSX e Linux Tag Helpers View Components Suporte para GruntJS,

NPM e Bower MVC e WebAPI com

controllers unificados

AngularJS ASP.NET Dependency

Injection Framework xUnit.net

Page 24: Construindo aplicações leves e performáticas com ASP.NET Core 1.0

DEMO 2Algo mais elaborado…

Page 25: Construindo aplicações leves e performáticas com ASP.NET Core 1.0

Runtime Performance

Footprint• Startup rápido (Roslyn!)• Redução considerável no

consumo de memória (>90%)

Modular• Use apenas o que precisar• StaticFiles? Socket? Framework?

Remova o que não precisa

Infraestrutura• OWIN• [MVC, EF] Performance!

Page 26: Construindo aplicações leves e performáticas com ASP.NET Core 1.0

github.com/aspnet/benchmarks

Nós queremos chegar aqui!

Page 27: Construindo aplicações leves e performáticas com ASP.NET Core 1.0

Cloud-ReadyFerramentas bem integradas com o

Microsoft Azure

Transição de on-premises para a nuvem pública suave

Ferramentas de diagnóstico

Suporte para Containers• Docker tools como extensão

para o Visual Studio• Publicação de containers docker

para Windows, Linux• Escreva uma vez, rode em

qualquer lugar

Page 28: Construindo aplicações leves e performáticas com ASP.NET Core 1.0

ASP.NET 5 ASP.NET 5 Core 1.0 @ Github

Page 29: Construindo aplicações leves e performáticas com ASP.NET Core 1.0

Roslyn + .NET 2015

Unleash .NET 2015 in your appsGiovanni Bassi

Page 30: Construindo aplicações leves e performáticas com ASP.NET Core 1.0

http://docs.asp.netlearn & contribute!

Page 31: Construindo aplicações leves e performáticas com ASP.NET Core 1.0

Install .NET Framework 4.6Visual Studio 2015Visual Studio CodeDNX / ASP.NET 5

Activate your Azure account

Watch Connect 2015Channel9Introduction to ASP.NET 5 MVA

Course

Stay Tuned www.asp.netASP.NET Community Standup

(live.asp.net)

Q & A

Page 32: Construindo aplicações leves e performáticas com ASP.NET Core 1.0

Session Evaluations Sign in to the Schedule Builder and select ‘My Evaluations’ to complete your Session Evaluations after each session.

http://aka.ms/cloud.saopaulo