SlideShare uma empresa Scribd logo
1 de 29
ASP.NET 5, MVC 6 e além
DEV202
Fabrício Lopes Sanchez
Mais de 12 anos de experiência com desenvolvimento de software de diferentes tipos e
tamanhos. Graduado em Ciência da Computação e mestre em Engenharia Elétrica aplicada a
computação. Professor de cursos superiores de tecnologia por 6 anos. Arquiteto de soluções
web. Foi especialista técnico de nuvem na Microsoft Brasil. Atualmente dirige a Conio
Soluções em Tecnologia.
ASP.NET 5, MVC 6 e além
E-mail: fabricio.sanchez@gmail.com
Twitter: @SanchezFabricio
Facebook: http://facebook.com/fabriciolopessanchez
LinkedIn: https://br.linkedin.com/in/fabriciosanchez
André Baltieri
Microsoft MVP em ASP.NET/IIS, trabalha com desenvolvimento de aplicações web desde 2003, com
experiência em projetos de médio e grande porte no Brasil, EUA, Inglaterra e Holanda.
Palestrante em grandes eventos como TDC e ASP.NET Conference, criador do ASP.NET CAST, trabalha
ativamente com comunidades técnicas desde 2007, e mantém o título de MVP pela Microsoft desde
2013.
Atualmente realiza treinamentos e consultorias sobre plataforma Web em geral. É proprietário da
Imobee, onde também atua na área de desenvolvimento web.
Apesar do grande vínculo com a Microsoft, também adota muitas tecnologias abertas como NodeJs,
AngularJs, MongoDB, Firebase entre outros.
ASP.NET 5, MVC 6 e além
E-mail: contato@andrebaltieri.net
Twitter: @andrebaltieri
http://andrebaltieri.net/
 A mudança chegou. Por que?
 Grandes novidades:
 Visão geral
 OWIN
 Katana (vNext)
 MVC 6
 Injeção de dependência
 Roslyn
 Por que apoiar Open Source?
 Um novo mundo
 ASP.NET em todo lugar!
 Demo (Windows)
 Demo (Mac)
 Demo (Linux)
 Conclusões
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
A mudança chegou. Por que?
2014
 3.2 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
A mudança chegou. Por que?
Por conta disso...
- A web atual é leve e bela
- A web atual é padronizada (yes!)
- A web atual é livre de contexto
- A web atual é plugável
- A web atual é #cool
A mudança chegou. Por que?
Por que o ASP.NET precisou mudar de novo?
Webforms
Abstração pesada
Alto acoplamento
Dependência de ambiente
...
MVC, WebAPI e
SignalR
Primeira ruptura de modelo
Baixo acoplamento
Independência parcial de ambiente
Preocupação com arquitetura
Javascript e CSS não obstrusivos
...
ASP.NET 5 e MVC 6
Independencia de ambiente
Baixo acoplamento
ID nativa
MVC e Web API unificados
Execução on the fly
...
A mudança chegou. Por que?
#cool
Visão geral
Escreva aplicações web com VB.NET? / C# no
sistema operacional de sua preferência, usando o
framework MVC (com Web API integrado) sem
depender do IIS e do Visual Studio.
Visão geral – 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
Visão geral – ASP.NET 5 por dentro
Fonte: http://typecastexception.com/
Demo 1
Dissecando a estrutura do projeto
ASP.NET 5 com Visual Studio 2015
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.
OWIN host versus Host tradicional
Internet Information Server (IIS) ASP.NET
(Webforms, MVC, WebPages, SPA, etc.)
Host
IIS, OwinHost, CustomHost
ASP.NET 5
COMPONENTS
OWIN (interface)
Enviroment Dictionary
IDictionary<string, object>
Application Delegate
Func< IDictionary<string, object>, Task>
OWIN – Pipeline e Middleware
Application Delegate (Async)
Dictionary “Logging”
Logging Component
Dictionary “Auth”
Auth Component
Middleware
Middleware
Katana (vNext)
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.
Katana (vNext) - Arquitetura
Host
Processa e gerencia o workflow e os processos
IIS – Custom Host – OWIN Host
Server
Abre uma porta TCP, escuta os requests e dispara no OWIN pipeline
SystemWeb – HttpListener - WebListener
Middleware
Componente que implementa OWIN (delegate) que opera
dentro do pipeline. SignalR, Web API.
Application A aplicação em si, que implementa os componentes (middlewares).
Katana (vNext) - ArquiteturaNavegador
Host
Server
Pipeline da aplicação
Middleware Middleware Middleware
Demo 2
Hello Word com Visual Studio Code +
Katana
ASP.NET MVC 6
 ASP.NET no OSX e Linux
 Foi bom enquanto durou
webforms!
 No More Visual Basic
 Tag Helpers
 View Components
 Suporte para GruntJS, NPM e
Bower
 MVC e WebAPI com
controllers unificados
 AngularJS
 ASP.NET Dependency
Injection Framework
 xUnit.net
ASP.NET MVC 6
Demo 3
Uma aplicação MVC 6 + ID nativa +
Ubuntu
Demo 4
Uma aplicação ASP.NET MVC 6 + EF7
com InMemory Storage + MacOS
Demo 5
Publicando aplicações ASP.NET 5 com
Docker no MacOS
Conclusões
ASP.NET se modernizou. Está modular,
multiplataforma, performático, desacoplado e mais
poderoso. Enjoy!
Q&A
Visite o espaço Ask the Experts, próximo dos expositores
Sessões relacionadas
 Roslyn (Carlos dos Santos e Giovanni Bassi)
Continue sua capacitação
Microsoft Virtual
Academy
http://aka.ms/ch9 http://aka.ms/mva

Mais conteúdo relacionado

Mais procurados

Futuro do ASP.NET vNext - MVP ShowCast
Futuro do ASP.NET vNext - MVP ShowCast Futuro do ASP.NET vNext - MVP ShowCast
Futuro do ASP.NET vNext - MVP ShowCast Eduardo Pires
 
Comunicação em Tempo Real com ASP.Net SignalR
Comunicação em Tempo Real com ASP.Net SignalRComunicação em Tempo Real com ASP.Net SignalR
Comunicação em Tempo Real com ASP.Net SignalREduardo Pires
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebElenilson Vieira
 
Campus Party 2014 - Desenvolvimento Web com ASP.NET
Campus Party 2014 - Desenvolvimento Web com ASP.NETCampus Party 2014 - Desenvolvimento Web com ASP.NET
Campus Party 2014 - Desenvolvimento Web com ASP.NETEduardo Pires
 
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...Renato Groff
 
ITerior - .NET Core, usando .NET no Linux!
ITerior - .NET Core, usando .NET no Linux!ITerior - .NET Core, usando .NET no Linux!
ITerior - .NET Core, usando .NET no Linux!Vinicius Mussak
 
Escalabilidade com docker - ASP.NET Conference 2016
Escalabilidade com docker - ASP.NET Conference 2016Escalabilidade com docker - ASP.NET Conference 2016
Escalabilidade com docker - ASP.NET Conference 2016Rodolfo Fadino Junior
 
Performance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.jsPerformance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.jsWaldyr Felix
 
.NET Core Internals. O que é o .NET Platform Standard?
.NET Core Internals. O que é o .NET Platform Standard?.NET Core Internals. O que é o .NET Platform Standard?
.NET Core Internals. O que é o .NET Platform Standard?Victor Cavalcante
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosRodolfo Fadino Junior
 
Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...
Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...
Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...MVP ShowCast
 
Introdução ao ASP .NET Web API
Introdução ao ASP .NET Web APIIntrodução ao ASP .NET Web API
Introdução ao ASP .NET Web APIVinicius Mussak
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?akamud
 
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRJBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRElvis Rocha
 

Mais procurados (20)

Futuro do ASP.NET vNext - MVP ShowCast
Futuro do ASP.NET vNext - MVP ShowCast Futuro do ASP.NET vNext - MVP ShowCast
Futuro do ASP.NET vNext - MVP ShowCast
 
Comunicação em Tempo Real com ASP.Net SignalR
Comunicação em Tempo Real com ASP.Net SignalRComunicação em Tempo Real com ASP.Net SignalR
Comunicação em Tempo Real com ASP.Net SignalR
 
ASP .NET Core MVC
ASP .NET Core MVCASP .NET Core MVC
ASP .NET Core MVC
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias Web
 
Campus Party 2014 - Desenvolvimento Web com ASP.NET
Campus Party 2014 - Desenvolvimento Web com ASP.NETCampus Party 2014 - Desenvolvimento Web com ASP.NET
Campus Party 2014 - Desenvolvimento Web com ASP.NET
 
ASP.NET MVC 5.x
ASP.NET MVC 5.xASP.NET MVC 5.x
ASP.NET MVC 5.x
 
Apostila MVC
Apostila MVCApostila MVC
Apostila MVC
 
Middlewares ASP.NET
Middlewares ASP.NETMiddlewares ASP.NET
Middlewares ASP.NET
 
Desvendando ASP.NET MVC
Desvendando ASP.NET MVCDesvendando ASP.NET MVC
Desvendando ASP.NET MVC
 
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...
 
ITerior - .NET Core, usando .NET no Linux!
ITerior - .NET Core, usando .NET no Linux!ITerior - .NET Core, usando .NET no Linux!
ITerior - .NET Core, usando .NET no Linux!
 
Escalabilidade com docker - ASP.NET Conference 2016
Escalabilidade com docker - ASP.NET Conference 2016Escalabilidade com docker - ASP.NET Conference 2016
Escalabilidade com docker - ASP.NET Conference 2016
 
Performance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.jsPerformance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.js
 
.NET Core Internals. O que é o .NET Platform Standard?
.NET Core Internals. O que é o .NET Platform Standard?.NET Core Internals. O que é o .NET Platform Standard?
.NET Core Internals. O que é o .NET Platform Standard?
 
Estudo de caso ASP.NET MVC e Silverlight
Estudo de caso ASP.NET MVC e SilverlightEstudo de caso ASP.NET MVC e Silverlight
Estudo de caso ASP.NET MVC e Silverlight
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São Carlos
 
Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...
Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...
Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...
 
Introdução ao ASP .NET Web API
Introdução ao ASP .NET Web APIIntrodução ao ASP .NET Web API
Introdução ao ASP .NET Web API
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?
 
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRJBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
 

Semelhante a ASP.NET 5, MVC 6 e além

ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)Giovanni Bassi
 
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Rodrigo Branas
 
01 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.101 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.1César Augusto Pessôa
 
Campus Party - Desenvolvendo aplicações .Net com software gratuito
Campus Party  - Desenvolvendo aplicações .Net com software gratuitoCampus Party  - Desenvolvendo aplicações .Net com software gratuito
Campus Party - Desenvolvendo aplicações .Net com software gratuitoAlexandre Tarifa
 
.NET 2015, ASP.NET 5, C# 6 e tudo mais
.NET 2015, ASP.NET 5, C# 6 e tudo mais.NET 2015, ASP.NET 5, C# 6 e tudo mais
.NET 2015, ASP.NET 5, C# 6 e tudo maisakamud
 
Construindo aplicações robustas com a suíte de tecnologias gratuítas da Micro...
Construindo aplicações robustas com a suíte de tecnologias gratuítas da Micro...Construindo aplicações robustas com a suíte de tecnologias gratuítas da Micro...
Construindo aplicações robustas com a suíte de tecnologias gratuítas da Micro...Fabrício Lopes Sanchez
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014Giovanni Bassi
 
Introdução ao Aspnet Core
Introdução ao Aspnet CoreIntrodução ao Aspnet Core
Introdução ao Aspnet CoreYan Justino
 
CakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro boloCakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro boloelliando dias
 
T@rget trust asp.net avançado
T@rget trust   asp.net avançadoT@rget trust   asp.net avançado
T@rget trust asp.net avançadoTargettrust
 
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...tdc-globalcode
 
ASP.Net MVC no VS 2010
ASP.Net MVC no VS 2010ASP.Net MVC no VS 2010
ASP.Net MVC no VS 2010Giovanni Bassi
 

Semelhante a ASP.NET 5, MVC 6 e além (20)

ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)
 
Desenvolviemento web com ASP.Net e MVC
Desenvolviemento web com ASP.Net e MVCDesenvolviemento web com ASP.Net e MVC
Desenvolviemento web com ASP.Net e MVC
 
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
 
01 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.101 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.1
 
Campus Party - Desenvolvendo aplicações .Net com software gratuito
Campus Party  - Desenvolvendo aplicações .Net com software gratuitoCampus Party  - Desenvolvendo aplicações .Net com software gratuito
Campus Party - Desenvolvendo aplicações .Net com software gratuito
 
A Nova Web
A Nova WebA Nova Web
A Nova Web
 
O Futuro do ASP.NET (vNext)
O Futuro do ASP.NET (vNext)O Futuro do ASP.NET (vNext)
O Futuro do ASP.NET (vNext)
 
.NET 2015, ASP.NET 5, C# 6 e tudo mais
.NET 2015, ASP.NET 5, C# 6 e tudo mais.NET 2015, ASP.NET 5, C# 6 e tudo mais
.NET 2015, ASP.NET 5, C# 6 e tudo mais
 
Construindo aplicações robustas com a suíte de tecnologias gratuítas da Micro...
Construindo aplicações robustas com a suíte de tecnologias gratuítas da Micro...Construindo aplicações robustas com a suíte de tecnologias gratuítas da Micro...
Construindo aplicações robustas com a suíte de tecnologias gratuítas da Micro...
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014
 
Introdução ao Aspnet Core
Introdução ao Aspnet CoreIntrodução ao Aspnet Core
Introdução ao Aspnet Core
 
Web Dev Camp
Web Dev CampWeb Dev Camp
Web Dev Camp
 
Asp.Net Core - Meetup BH
Asp.Net Core - Meetup BHAsp.Net Core - Meetup BH
Asp.Net Core - Meetup BH
 
Asp.net core
Asp.net coreAsp.net core
Asp.net core
 
Docker para devs .NET
Docker para devs .NETDocker para devs .NET
Docker para devs .NET
 
Netbeans Slides
Netbeans SlidesNetbeans Slides
Netbeans Slides
 
CakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro boloCakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro bolo
 
T@rget trust asp.net avançado
T@rget trust   asp.net avançadoT@rget trust   asp.net avançado
T@rget trust asp.net avançado
 
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
 
ASP.Net MVC no VS 2010
ASP.Net MVC no VS 2010ASP.Net MVC no VS 2010
ASP.Net MVC no VS 2010
 

Mais de Fabrício Lopes Sanchez

QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o AzureQCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o AzureFabrício Lopes Sanchez
 
Por que Cloud Services é o melhor dos mundos?
Por que Cloud Services é o melhor dos mundos? Por que Cloud Services é o melhor dos mundos?
Por que Cloud Services é o melhor dos mundos? Fabrício Lopes Sanchez
 
Windows Azure: computação em nuvem no melhor estilo self-service
Windows Azure: computação em nuvem no melhor estilo self-serviceWindows Azure: computação em nuvem no melhor estilo self-service
Windows Azure: computação em nuvem no melhor estilo self-serviceFabrício Lopes Sanchez
 
Desenvolvimento de aplicações para Windows Azure
Desenvolvimento de aplicações para Windows AzureDesenvolvimento de aplicações para Windows Azure
Desenvolvimento de aplicações para Windows AzureFabrício Lopes Sanchez
 
Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisFabrício Lopes Sanchez
 
Interop Day 2011 - Construindo aplicações web com WebMatrix
Interop Day 2011 - Construindo aplicações web com WebMatrixInterop Day 2011 - Construindo aplicações web com WebMatrix
Interop Day 2011 - Construindo aplicações web com WebMatrixFabrício Lopes Sanchez
 
QS24 - REST e SOAP com Razor e WebMatrix
QS24 - REST e SOAP com Razor e WebMatrixQS24 - REST e SOAP com Razor e WebMatrix
QS24 - REST e SOAP com Razor e WebMatrixFabrício Lopes Sanchez
 
Conhecendo o NuGet e utilizando com ASP.NET MVC
Conhecendo o NuGet e utilizando com ASP.NET MVCConhecendo o NuGet e utilizando com ASP.NET MVC
Conhecendo o NuGet e utilizando com ASP.NET MVCFabrício Lopes Sanchez
 
Criando aplicações web com tecnologias Microsoft
Criando aplicações web com tecnologias MicrosoftCriando aplicações web com tecnologias Microsoft
Criando aplicações web com tecnologias MicrosoftFabrício Lopes Sanchez
 
Construindo aplicações web com WebMatrix e Razor
Construindo aplicações web com WebMatrix e RazorConstruindo aplicações web com WebMatrix e Razor
Construindo aplicações web com WebMatrix e RazorFabrício Lopes Sanchez
 

Mais de Fabrício Lopes Sanchez (17)

Azure Lab Services
Azure Lab ServicesAzure Lab Services
Azure Lab Services
 
Projetando aplicações para a nuvem
Projetando aplicações para a nuvemProjetando aplicações para a nuvem
Projetando aplicações para a nuvem
 
Microserviços na vida real
Microserviços na vida realMicroserviços na vida real
Microserviços na vida real
 
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o AzureQCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
 
Soluções de IoT no Microsoft Azure
Soluções de IoT no Microsoft AzureSoluções de IoT no Microsoft Azure
Soluções de IoT no Microsoft Azure
 
Por que Cloud Services é o melhor dos mundos?
Por que Cloud Services é o melhor dos mundos? Por que Cloud Services é o melhor dos mundos?
Por que Cloud Services é o melhor dos mundos?
 
Windows Azure: computação em nuvem no melhor estilo self-service
Windows Azure: computação em nuvem no melhor estilo self-serviceWindows Azure: computação em nuvem no melhor estilo self-service
Windows Azure: computação em nuvem no melhor estilo self-service
 
SSI 2012 - Computação em Nuvem
SSI 2012 - Computação em NuvemSSI 2012 - Computação em Nuvem
SSI 2012 - Computação em Nuvem
 
Desenvolvimento de aplicações para Windows Azure
Desenvolvimento de aplicações para Windows AzureDesenvolvimento de aplicações para Windows Azure
Desenvolvimento de aplicações para Windows Azure
 
Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentais
 
Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dados
 
Interop Day 2011 - Construindo aplicações web com WebMatrix
Interop Day 2011 - Construindo aplicações web com WebMatrixInterop Day 2011 - Construindo aplicações web com WebMatrix
Interop Day 2011 - Construindo aplicações web com WebMatrix
 
QS24 - REST e SOAP com Razor e WebMatrix
QS24 - REST e SOAP com Razor e WebMatrixQS24 - REST e SOAP com Razor e WebMatrix
QS24 - REST e SOAP com Razor e WebMatrix
 
Conhecendo o NuGet e utilizando com ASP.NET MVC
Conhecendo o NuGet e utilizando com ASP.NET MVCConhecendo o NuGet e utilizando com ASP.NET MVC
Conhecendo o NuGet e utilizando com ASP.NET MVC
 
Web em grande estilo com CSS 3
Web em grande estilo com CSS 3Web em grande estilo com CSS 3
Web em grande estilo com CSS 3
 
Criando aplicações web com tecnologias Microsoft
Criando aplicações web com tecnologias MicrosoftCriando aplicações web com tecnologias Microsoft
Criando aplicações web com tecnologias Microsoft
 
Construindo aplicações web com WebMatrix e Razor
Construindo aplicações web com WebMatrix e RazorConstruindo aplicações web com WebMatrix e Razor
Construindo aplicações web com WebMatrix e Razor
 

ASP.NET 5, MVC 6 e além

  • 1. ASP.NET 5, MVC 6 e além DEV202
  • 2. Fabrício Lopes Sanchez Mais de 12 anos de experiência com desenvolvimento de software de diferentes tipos e tamanhos. Graduado em Ciência da Computação e mestre em Engenharia Elétrica aplicada a computação. Professor de cursos superiores de tecnologia por 6 anos. Arquiteto de soluções web. Foi especialista técnico de nuvem na Microsoft Brasil. Atualmente dirige a Conio Soluções em Tecnologia. ASP.NET 5, MVC 6 e além E-mail: fabricio.sanchez@gmail.com Twitter: @SanchezFabricio Facebook: http://facebook.com/fabriciolopessanchez LinkedIn: https://br.linkedin.com/in/fabriciosanchez
  • 3. André Baltieri Microsoft MVP em ASP.NET/IIS, trabalha com desenvolvimento de aplicações web desde 2003, com experiência em projetos de médio e grande porte no Brasil, EUA, Inglaterra e Holanda. Palestrante em grandes eventos como TDC e ASP.NET Conference, criador do ASP.NET CAST, trabalha ativamente com comunidades técnicas desde 2007, e mantém o título de MVP pela Microsoft desde 2013. Atualmente realiza treinamentos e consultorias sobre plataforma Web em geral. É proprietário da Imobee, onde também atua na área de desenvolvimento web. Apesar do grande vínculo com a Microsoft, também adota muitas tecnologias abertas como NodeJs, AngularJs, MongoDB, Firebase entre outros. ASP.NET 5, MVC 6 e além E-mail: contato@andrebaltieri.net Twitter: @andrebaltieri http://andrebaltieri.net/
  • 4.  A mudança chegou. Por que?  Grandes novidades:  Visão geral  OWIN  Katana (vNext)  MVC 6  Injeção de dependência  Roslyn  Por que apoiar Open Source?  Um novo mundo  ASP.NET em todo lugar!  Demo (Windows)  Demo (Mac)  Demo (Linux)  Conclusões
  • 5. 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
  • 6. A mudança chegou. Por que? 2014  3.2 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
  • 7. A mudança chegou. Por que? Por conta disso... - A web atual é leve e bela - A web atual é padronizada (yes!) - A web atual é livre de contexto - A web atual é plugável - A web atual é #cool
  • 8. A mudança chegou. Por que? Por que o ASP.NET precisou mudar de novo? Webforms Abstração pesada Alto acoplamento Dependência de ambiente ... MVC, WebAPI e SignalR Primeira ruptura de modelo Baixo acoplamento Independência parcial de ambiente Preocupação com arquitetura Javascript e CSS não obstrusivos ... ASP.NET 5 e MVC 6 Independencia de ambiente Baixo acoplamento ID nativa MVC e Web API unificados Execução on the fly ...
  • 9. A mudança chegou. Por que? #cool
  • 10. Visão geral Escreva aplicações web com VB.NET? / C# no sistema operacional de sua preferência, usando o framework MVC (com Web API integrado) sem depender do IIS e do Visual Studio.
  • 11. Visão geral – 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
  • 12. Visão geral – ASP.NET 5 por dentro Fonte: http://typecastexception.com/
  • 13. Demo 1 Dissecando a estrutura do projeto ASP.NET 5 com Visual Studio 2015
  • 14. 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.
  • 15. OWIN host versus Host tradicional Internet Information Server (IIS) ASP.NET (Webforms, MVC, WebPages, SPA, etc.) Host IIS, OwinHost, CustomHost ASP.NET 5 COMPONENTS OWIN (interface) Enviroment Dictionary IDictionary<string, object> Application Delegate Func< IDictionary<string, object>, Task>
  • 16. OWIN – Pipeline e Middleware Application Delegate (Async) Dictionary “Logging” Logging Component Dictionary “Auth” Auth Component Middleware Middleware
  • 17. Katana (vNext) 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.
  • 18. Katana (vNext) - Arquitetura Host Processa e gerencia o workflow e os processos IIS – Custom Host – OWIN Host Server Abre uma porta TCP, escuta os requests e dispara no OWIN pipeline SystemWeb – HttpListener - WebListener Middleware Componente que implementa OWIN (delegate) que opera dentro do pipeline. SignalR, Web API. Application A aplicação em si, que implementa os componentes (middlewares).
  • 19. Katana (vNext) - ArquiteturaNavegador Host Server Pipeline da aplicação Middleware Middleware Middleware
  • 20. Demo 2 Hello Word com Visual Studio Code + Katana
  • 21. ASP.NET MVC 6  ASP.NET no OSX e Linux  Foi bom enquanto durou webforms!  No More Visual Basic  Tag Helpers  View Components  Suporte para GruntJS, NPM e Bower  MVC e WebAPI com controllers unificados  AngularJS  ASP.NET Dependency Injection Framework  xUnit.net
  • 23. Demo 3 Uma aplicação MVC 6 + ID nativa + Ubuntu
  • 24. Demo 4 Uma aplicação ASP.NET MVC 6 + EF7 com InMemory Storage + MacOS
  • 25. Demo 5 Publicando aplicações ASP.NET 5 com Docker no MacOS
  • 26. Conclusões ASP.NET se modernizou. Está modular, multiplataforma, performático, desacoplado e mais poderoso. Enjoy!
  • 27. Q&A Visite o espaço Ask the Experts, próximo dos expositores
  • 28. Sessões relacionadas  Roslyn (Carlos dos Santos e Giovanni Bassi)
  • 29. Continue sua capacitação Microsoft Virtual Academy http://aka.ms/ch9 http://aka.ms/mva

Notas do Editor

  1. 1. Última década: saimos de 600 milhões de usuários para 3.2 bilhões 2. Tinhamos 9.1% da população mundial conectada, hoje temos 40% 3. Em 2002 o tempo médio de uso da internet era de 46 minutos no dia, hoje é de 4 horas 4. Tinhamos cerca de 3 milhões de sites, hoje temos 555 milhões 5. Tinhamos 2 browsers principais. Hoje temos pelo menos 5 diferentes 6. Page load médio em 2002: 16 segundos. Hoje 6 segundos
  2. 1. Última década: saimos de 600 milhões de usuários para 3.2 bilhões 2. Tinhamos 9.1% da população mundial conectada, hoje temos 40% 3. Em 2002 o tempo médio de uso da internet era de 46 minutos no dia, hoje é de 4 horas 4. Tinhamos cerca de 3 milhões de sites, hoje temos 555 milhões 5. Tinhamos 2 browsers principais. Hoje temos pelo menos 5 diferentes 6. Page load médio em 2002: 16 segundos. Hoje 6 segundos
  3. 1. Última década: saimos de 600 milhões de usuários para 3.2 bilhões 2. Tinhamos 9.1% da população mundial conectada, hoje temos 40% 3. Em 2002 o tempo médio de uso da internet era de 46 minutos no dia, hoje é de 4 horas 4. Tinhamos cerca de 3 milhões de sites, hoje temos 555 milhões 5. Tinhamos 2 browsers principais. Hoje temos pelo menos 5 diferentes 6. Page load médio em 2002: 16 segundos. Hoje 6 segundos