SlideShare uma empresa Scribd logo
1 de 22
ASP.NET – Um pouco de sua história
• Primeira versão em 2002 junto do .NET Framework 1.0
• Otimizado para programadores ASP e Visual Basic
• Desenvolvido para rodar no IIS
• Framework monobloco com N conceitos em um único pacote (System.Web)
 HTTP Intrinsics
 Modules
 Handlers
 Session
 Cache
 WebForms
 Controls
System.Web
System.Web
Um projeto MVC vazio já vem
com uma bagagem bem pesada.
Modelo de programação
“everything and the kitchen sink”.
Você tem que pagar por algo que
não quer ou não precisa.
Logo isso criou alguns desafios (problemas)...
• O ASP.NET (System.Web) é entregue como parte do .NET Framework.
• Causando um ciclo lento de atualizações. Durante anos o ASP.NET ficou sem receber atualizações.
• Para uma nova feature ser introduzida era quase sempre necessário atualizar o .NET Framework.
• A liberação e adoção de uma nova versão do .NET Framework é muito lenta.
• As features do ASP.NET cresceram com isso cresceu também o tamanho e complexidade do System.Web.
• Isso ocasiona um aumento no consumo de recursos para o ASP.NET rodar.
• Uma única opção de host – O IIS.
Solução 1 – Separar
• 2007 – 2008 – É introduzido o framework MVC ao ASP.NET sendo que é
distribuído separadamente, aumentando a velocidade de entrega.
Versões foram distribuídas como complementos.
Solução 2 – Quebrar as dependências
• 2012 – 2013 – É entregue o ASP.NET Web API e ASP.NET SignalR
• Escrito sem nenhuma dependência com o System.Web
• Possui capacidade de Self-Hosting (Independente de IIS).
Katana Project
É uma implementação Microsoft da especificação OWIN no ASP.NET.
OWIN – Open Web Interface for .NET
• É um “standart” uma especificação.
• Não existe exatamente como código ou componente.
• É a descrição de como idealmente o comportamento de sua implementação deve funcionar.
• Foi criado pela comunidade .NET baseado no projeto Rack da comunidade Ruby.
• Define a comunicação entre servidores e aplicações .NET para Web. O objetivo do OWIN é
desacoplar o servidor e a aplicação de forma que estimule o desenvolvimento de componentes
Web .NET de forma acelerada e aberta para a comunidade.
Arquitetura Tradicional ASP.NET
WEB HOST
(IIS)
ASP.NET
Components
O funcionamento do ASP.NET está diretamente acoplado ao IIS e ao
extenso pipeline do System.Web.
Arquitetura OWIN
WEB HOST
• IIS
• CustomHost
• OwinHost
ASP.NET
Components
Interface
Enviroment Dictionary
IDictionary<string, object>
Application Delegate
Func<IDictionary<string, object>, Task>
• Pequeno número de dependências necessárias para implementar OWIN, aumentando a acessibilidade para
desenvolvedores escreverem seus próprios componentes.
• Design assíncrono permite uma abstração muito eficiente, principalmente em operações onde o uso dos
recursos computacionais é mais intenso.
• Como o Enviroment Dictionary é utilizado como parâmetro para o Delegate vários componentes podem ser
facilmente encaixados e encadeados criando pipelines de processamento bem complexos.
Pipeline
Dictionary Dictionary Dictionary Dictionary
+Component +Component +Component
Application Delegate
Arquitetura Katana
Application
Middleware
Server
Host Orquestra o workflow e gerencia os processos
IIS/ASP.NET – Custom Host – OWIN Host
Abre uma porta TCP e escuta os requests e os
envia através do OWIN pipeline.
SystemWeb, HttpListener, WebListener
O componente que implementa OWIN (Delegate) que opera
dentro do pipeline. SignalR, Web API.
Sua aplicação, seu código que irá implementar algum
middleware (por ex. SignalR).
Resumindo a história...
• O OWIN proporciona o desacoplamento da aplicação no servidor (IIS).
• Uma vez que não dependemos mais do IIS que trabalha no pipeline do System.Web podemos
desenvolver aplicações mais leves e sem depender de modificações no .NET Framework
• As possibilidades de criar e distribuir novos componentes para ASP.NET cresceu potencialmente.
• Foram introduzidos mais duas opções de host o OWIN Host e o Custom Host.
• Isso significa que uma aplicações SignalR e WebAPI podem rodar em qualquer plataforma que
implemente OWIN (Linux/OSx/Windows).
• Existem outros componentes (middlewares) implementanto OWIN como NancyFX, FubuMVC, etc...
• Além do Katana que disponibiliza interfaces para Server, Host e Middleware, existe um projeto “não
Microsoft” chamado NOWIN que é um OWIN Server e promete ser mais rápido do que o próprio
NodeJS (mesmo rodando em Windows).
DEMO
• ASP.NET + OWIN +
Katana Project
Mas e se eu quiser todos esses benefícios + IIS?
• IIS lida com gerenciamento da vida útil aplicação.
• Ele pode suspender (em vez de encerrar) processos que estão ociosos para ajudar a equilibrar os
recursos disponíveis do sistema.
• IIS oferece um cache de modo de usuário embutido e pode comprimir automaticamente o conteúdo
dos responses se for o caso.
• IIS suporta filtragem de requests e transient worker process identities.
• Mais de 10 anos de implementações e melhorias de segurança.
• No cenário do Self Host você é responsável por muitas das responsabilidades que o IIS toma conta,
além disso ele já existe para isso por que não utilizá-lo?
Project Helios
• É baseado nos mesmos motivadores do Katana Project.
• Utiliza o IIS Core (extremamente poderoso) como se fosse uma API, não depende da implementação
do pipeline do System.Web.
• Oferece compatibilidade com o OWIN porém fornece todas as vantagens do IIS e com uma
velocidade de na média 96% superior ao do ASP.NET clássico.
• Pode ser utilizado independente do OWIN.
• Requerimentos Mínimos:
• Windows 8 ou Windows Server 2012
• .NET Framework 4.5.1
• Visual Studio 2012 ou 2013
DEMO
• ASP.NET Helios
vNext – O futuro do ASP.NET
Parte 2
• Assista no TechEd:
• DEV-B385 INTRODUCING: The Future of .NET on the Server
DEV-B411 DEEP DIVE: The Future of .NET on the Server
http://tena2014.eventpoint.com/topic/list
Referências
• OWIN:
http://owin.org/
• Project Katana:
http://www.asp.net/aspnet/overview/owin-and-katana
• http://channel9.msdn.com/series/Building-Modern-Web-Apps/06
• Helios Project:
http://blogs.msdn.com/b/webdev/archive/2014/02/18/introducing-asp-net-project-helios.aspx
http://blogs.msdn.com/b/webdev/archive/2014/02/18/supplemental-to-asp-net-project-
helios.aspx
• http://channel9.msdn.com/Series/Building-Modern-Web-Apps/07
• ASP.NET:
http://www.asp.net
Muito Obrigado!
Dúvidas?
Eduardo Pires
@EduardoPiresBR
www.eduardopires.net.br

Mais conteúdo relacionado

Mais procurados

Criar um sistema com asp net
Criar um sistema com asp netCriar um sistema com asp net
Criar um sistema com asp netAnderson Wernek
 
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Daniel Makiyama
 
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
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebElenilson Vieira
 
Microservices com ASP.NET 5
Microservices com ASP.NET 5Microservices com ASP.NET 5
Microservices com ASP.NET 5Waldyr Felix
 
Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Construindo aplicações leves e performáticas com ASP.NET Core 1.0Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Construindo aplicações leves e performáticas com ASP.NET Core 1.0Fabrício Lopes Sanchez
 
Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2Pablo Nóbrega
 
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
 
MVP Virtual Conference (MVP V-Conf) 2015: Executando ASP.NET MVC 6 no Mac OS ...
MVP Virtual Conference (MVP V-Conf) 2015: Executando ASP.NET MVC 6 no Mac OS ...MVP Virtual Conference (MVP V-Conf) 2015: Executando ASP.NET MVC 6 no Mac OS ...
MVP Virtual Conference (MVP V-Conf) 2015: Executando ASP.NET MVC 6 no Mac OS ...Rogério Moraes de Carvalho
 
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010Rodrigo Kono
 
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
 
TDC2016POA | Trilha .NET - O novo ASP.NET Core 1.0 multiplataforma
TDC2016POA | Trilha .NET - O novo ASP.NET Core 1.0 multiplataformaTDC2016POA | Trilha .NET - O novo ASP.NET Core 1.0 multiplataforma
TDC2016POA | Trilha .NET - O novo ASP.NET Core 1.0 multiplataformatdc-globalcode
 
.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
 
Angular 2, TypeScript e Além
Angular 2, TypeScript e AlémAngular 2, TypeScript e Além
Angular 2, TypeScript e AlémAndre Baltieri
 

Mais procurados (20)

Criar um sistema com asp net
Criar um sistema com asp netCriar um sistema com asp net
Criar um sistema com asp net
 
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
 
Desvendando ASP.NET MVC
Desvendando ASP.NET MVCDesvendando ASP.NET MVC
Desvendando ASP.NET MVC
 
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...
 
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
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias Web
 
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
 
Microservices com ASP.NET 5
Microservices com ASP.NET 5Microservices com ASP.NET 5
Microservices com ASP.NET 5
 
Middlewares ASP.NET
Middlewares ASP.NETMiddlewares ASP.NET
Middlewares ASP.NET
 
Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Construindo aplicações leves e performáticas com ASP.NET Core 1.0Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Construindo aplicações leves e performáticas com ASP.NET Core 1.0
 
Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2
 
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
 
MVP Virtual Conference (MVP V-Conf) 2015: Executando ASP.NET MVC 6 no Mac OS ...
MVP Virtual Conference (MVP V-Conf) 2015: Executando ASP.NET MVC 6 no Mac OS ...MVP Virtual Conference (MVP V-Conf) 2015: Executando ASP.NET MVC 6 no Mac OS ...
MVP Virtual Conference (MVP V-Conf) 2015: Executando ASP.NET MVC 6 no Mac OS ...
 
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010
 
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...
 
TDC2016POA | Trilha .NET - O novo ASP.NET Core 1.0 multiplataforma
TDC2016POA | Trilha .NET - O novo ASP.NET Core 1.0 multiplataformaTDC2016POA | Trilha .NET - O novo ASP.NET Core 1.0 multiplataforma
TDC2016POA | Trilha .NET - O novo ASP.NET Core 1.0 multiplataforma
 
ASP .NET Core MVC
ASP .NET Core MVCASP .NET Core MVC
ASP .NET Core MVC
 
.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?
 
Angular 2, TypeScript e Além
Angular 2, TypeScript e AlémAngular 2, TypeScript e Além
Angular 2, TypeScript e Além
 

Destaque

ASP.NET Identity - O Novo componente de Membership do ASP.NET
ASP.NET Identity - O Novo componente de Membership do ASP.NETASP.NET Identity - O Novo componente de Membership do ASP.NET
ASP.NET Identity - O Novo componente de Membership do ASP.NETEduardo Pires
 
Introdução ao Aspnet Core
Introdução ao Aspnet CoreIntrodução ao Aspnet Core
Introdução ao Aspnet CoreYan Justino
 
O que é esse tal de OWIN?
O que é esse tal de OWIN?O que é esse tal de OWIN?
O que é esse tal de OWIN?Andre Carlucci
 
Owin e o Projeto Katana
Owin e o Projeto KatanaOwin e o Projeto Katana
Owin e o Projeto KatanaAndre Carlucci
 
O novo ASP.NET: o futuro do desenvolvimento Web na plataforma .NET - OneDay
O novo ASP.NET: o futuro do desenvolvimento Web na plataforma .NET - OneDayO novo ASP.NET: o futuro do desenvolvimento Web na plataforma .NET - OneDay
O novo ASP.NET: o futuro do desenvolvimento Web na plataforma .NET - OneDayRenato Groff
 
O futuro do .NET : O que eu preciso saber
O futuro do .NET : O que eu preciso saberO futuro do .NET : O que eu preciso saber
O futuro do .NET : O que eu preciso saberDanilo Bordini
 
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...Clavis Segurança da Informação
 
Bounded Context e CQRS na evolução de aplicações .NET legadas
Bounded Context e CQRS na evolução de aplicações .NET legadasBounded Context e CQRS na evolução de aplicações .NET legadas
Bounded Context e CQRS na evolução de aplicações .NET legadasYan Justino
 
SOLID - Teoria e Prática
SOLID - Teoria e PráticaSOLID - Teoria e Prática
SOLID - Teoria e PráticaEduardo Pires
 
Modelo formatação artigo científico
Modelo formatação artigo científicoModelo formatação artigo científico
Modelo formatação artigo científicoMarcos Azevedo
 
Modelo de artigo científico básico - com normas ABNT
Modelo de artigo científico básico - com normas ABNTModelo de artigo científico básico - com normas ABNT
Modelo de artigo científico básico - com normas ABNTRosineia Oliveira dos Santos
 

Destaque (11)

ASP.NET Identity - O Novo componente de Membership do ASP.NET
ASP.NET Identity - O Novo componente de Membership do ASP.NETASP.NET Identity - O Novo componente de Membership do ASP.NET
ASP.NET Identity - O Novo componente de Membership do ASP.NET
 
Introdução ao Aspnet Core
Introdução ao Aspnet CoreIntrodução ao Aspnet Core
Introdução ao Aspnet Core
 
O que é esse tal de OWIN?
O que é esse tal de OWIN?O que é esse tal de OWIN?
O que é esse tal de OWIN?
 
Owin e o Projeto Katana
Owin e o Projeto KatanaOwin e o Projeto Katana
Owin e o Projeto Katana
 
O novo ASP.NET: o futuro do desenvolvimento Web na plataforma .NET - OneDay
O novo ASP.NET: o futuro do desenvolvimento Web na plataforma .NET - OneDayO novo ASP.NET: o futuro do desenvolvimento Web na plataforma .NET - OneDay
O novo ASP.NET: o futuro do desenvolvimento Web na plataforma .NET - OneDay
 
O futuro do .NET : O que eu preciso saber
O futuro do .NET : O que eu preciso saberO futuro do .NET : O que eu preciso saber
O futuro do .NET : O que eu preciso saber
 
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
 
Bounded Context e CQRS na evolução de aplicações .NET legadas
Bounded Context e CQRS na evolução de aplicações .NET legadasBounded Context e CQRS na evolução de aplicações .NET legadas
Bounded Context e CQRS na evolução de aplicações .NET legadas
 
SOLID - Teoria e Prática
SOLID - Teoria e PráticaSOLID - Teoria e Prática
SOLID - Teoria e Prática
 
Modelo formatação artigo científico
Modelo formatação artigo científicoModelo formatação artigo científico
Modelo formatação artigo científico
 
Modelo de artigo científico básico - com normas ABNT
Modelo de artigo científico básico - com normas ABNTModelo de artigo científico básico - com normas ABNT
Modelo de artigo científico básico - com normas ABNT
 

Semelhante a O Futuro do ASP.NET

TDC SP 2015 - Criando aplicações ASP.NET no Mac
TDC SP 2015 - Criando aplicações ASP.NET no MacTDC SP 2015 - Criando aplicações ASP.NET no Mac
TDC SP 2015 - Criando aplicações ASP.NET no MacAndre Baltieri
 
.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
 
NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.Filipe Morelli
 
AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk
AWS Experience Fortaleza: Escalando sua aplicação Web com BeanstalkAWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk
AWS Experience Fortaleza: Escalando sua aplicação Web com BeanstalkAmazon Web Services LATAM
 
TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma
TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataformaTDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma
TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataformaRogério Moraes de Carvalho
 
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
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev IntroduçãoMarcio Marinho
 
ASP.NET Core APIs: Performance Tips
ASP.NET Core APIs: Performance TipsASP.NET Core APIs: Performance Tips
ASP.NET Core APIs: Performance TipsAndre Baltieri
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasDevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasAmazon Web Services LATAM
 

Semelhante a O Futuro do ASP.NET (20)

TDC SP 2015 - Criando aplicações ASP.NET no Mac
TDC SP 2015 - Criando aplicações ASP.NET no MacTDC SP 2015 - Criando aplicações ASP.NET no Mac
TDC SP 2015 - Criando aplicações ASP.NET no Mac
 
.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
 
NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.
 
Owin e katana
Owin e katanaOwin e katana
Owin e katana
 
2006 - ASP.NET.ppt
2006 - ASP.NET.ppt2006 - ASP.NET.ppt
2006 - ASP.NET.ppt
 
Asp.net core
Asp.net coreAsp.net core
Asp.net core
 
ASP.NET vNext – MVC6
ASP.NET vNext – MVC6ASP.NET vNext – MVC6
ASP.NET vNext – MVC6
 
Docker para devs .NET
Docker para devs .NETDocker para devs .NET
Docker para devs .NET
 
Asp.Net Core - Meetup BH
Asp.Net Core - Meetup BHAsp.Net Core - Meetup BH
Asp.Net Core - Meetup BH
 
Node js - Javascript Server Side
Node js - Javascript Server SideNode js - Javascript Server Side
Node js - Javascript Server Side
 
AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk
AWS Experience Fortaleza: Escalando sua aplicação Web com BeanstalkAWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk
AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk
 
O Futuro do ASP.NET (vNext)
O Futuro do ASP.NET (vNext)O Futuro do ASP.NET (vNext)
O Futuro do ASP.NET (vNext)
 
Escalando sua aplicação Web com Beanstalk
Escalando sua aplicação Web com BeanstalkEscalando sua aplicação Web com Beanstalk
Escalando sua aplicação Web com Beanstalk
 
TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma
TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataformaTDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma
TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma
 
Escalando sua aplicação Web com Beanstalk
Escalando sua aplicação Web com BeanstalkEscalando sua aplicação Web com Beanstalk
Escalando sua aplicação Web com Beanstalk
 
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
 
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
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev Introdução
 
ASP.NET Core APIs: Performance Tips
ASP.NET Core APIs: Performance TipsASP.NET Core APIs: Performance Tips
ASP.NET Core APIs: Performance Tips
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasDevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
 

O Futuro do ASP.NET

  • 1.
  • 2.
  • 3.
  • 4. ASP.NET – Um pouco de sua história • Primeira versão em 2002 junto do .NET Framework 1.0 • Otimizado para programadores ASP e Visual Basic • Desenvolvido para rodar no IIS • Framework monobloco com N conceitos em um único pacote (System.Web)  HTTP Intrinsics  Modules  Handlers  Session  Cache  WebForms  Controls
  • 6. System.Web Um projeto MVC vazio já vem com uma bagagem bem pesada. Modelo de programação “everything and the kitchen sink”. Você tem que pagar por algo que não quer ou não precisa.
  • 7. Logo isso criou alguns desafios (problemas)... • O ASP.NET (System.Web) é entregue como parte do .NET Framework. • Causando um ciclo lento de atualizações. Durante anos o ASP.NET ficou sem receber atualizações. • Para uma nova feature ser introduzida era quase sempre necessário atualizar o .NET Framework. • A liberação e adoção de uma nova versão do .NET Framework é muito lenta. • As features do ASP.NET cresceram com isso cresceu também o tamanho e complexidade do System.Web. • Isso ocasiona um aumento no consumo de recursos para o ASP.NET rodar. • Uma única opção de host – O IIS.
  • 8. Solução 1 – Separar • 2007 – 2008 – É introduzido o framework MVC ao ASP.NET sendo que é distribuído separadamente, aumentando a velocidade de entrega. Versões foram distribuídas como complementos. Solução 2 – Quebrar as dependências • 2012 – 2013 – É entregue o ASP.NET Web API e ASP.NET SignalR • Escrito sem nenhuma dependência com o System.Web • Possui capacidade de Self-Hosting (Independente de IIS).
  • 9.
  • 10. Katana Project É uma implementação Microsoft da especificação OWIN no ASP.NET. OWIN – Open Web Interface for .NET • É um “standart” uma especificação. • Não existe exatamente como código ou componente. • É a descrição de como idealmente o comportamento de sua implementação deve funcionar. • Foi criado pela comunidade .NET baseado no projeto Rack da comunidade Ruby. • Define a comunicação entre servidores e aplicações .NET para Web. O objetivo do OWIN é desacoplar o servidor e a aplicação de forma que estimule o desenvolvimento de componentes Web .NET de forma acelerada e aberta para a comunidade.
  • 11. Arquitetura Tradicional ASP.NET WEB HOST (IIS) ASP.NET Components O funcionamento do ASP.NET está diretamente acoplado ao IIS e ao extenso pipeline do System.Web.
  • 12. Arquitetura OWIN WEB HOST • IIS • CustomHost • OwinHost ASP.NET Components Interface Enviroment Dictionary IDictionary<string, object> Application Delegate Func<IDictionary<string, object>, Task> • Pequeno número de dependências necessárias para implementar OWIN, aumentando a acessibilidade para desenvolvedores escreverem seus próprios componentes. • Design assíncrono permite uma abstração muito eficiente, principalmente em operações onde o uso dos recursos computacionais é mais intenso. • Como o Enviroment Dictionary é utilizado como parâmetro para o Delegate vários componentes podem ser facilmente encaixados e encadeados criando pipelines de processamento bem complexos.
  • 13. Pipeline Dictionary Dictionary Dictionary Dictionary +Component +Component +Component Application Delegate
  • 14. Arquitetura Katana Application Middleware Server Host Orquestra o workflow e gerencia os processos IIS/ASP.NET – Custom Host – OWIN Host Abre uma porta TCP e escuta os requests e os envia através do OWIN pipeline. SystemWeb, HttpListener, WebListener O componente que implementa OWIN (Delegate) que opera dentro do pipeline. SignalR, Web API. Sua aplicação, seu código que irá implementar algum middleware (por ex. SignalR).
  • 15. Resumindo a história... • O OWIN proporciona o desacoplamento da aplicação no servidor (IIS). • Uma vez que não dependemos mais do IIS que trabalha no pipeline do System.Web podemos desenvolver aplicações mais leves e sem depender de modificações no .NET Framework • As possibilidades de criar e distribuir novos componentes para ASP.NET cresceu potencialmente. • Foram introduzidos mais duas opções de host o OWIN Host e o Custom Host. • Isso significa que uma aplicações SignalR e WebAPI podem rodar em qualquer plataforma que implemente OWIN (Linux/OSx/Windows). • Existem outros componentes (middlewares) implementanto OWIN como NancyFX, FubuMVC, etc... • Além do Katana que disponibiliza interfaces para Server, Host e Middleware, existe um projeto “não Microsoft” chamado NOWIN que é um OWIN Server e promete ser mais rápido do que o próprio NodeJS (mesmo rodando em Windows).
  • 16. DEMO • ASP.NET + OWIN + Katana Project
  • 17. Mas e se eu quiser todos esses benefícios + IIS? • IIS lida com gerenciamento da vida útil aplicação. • Ele pode suspender (em vez de encerrar) processos que estão ociosos para ajudar a equilibrar os recursos disponíveis do sistema. • IIS oferece um cache de modo de usuário embutido e pode comprimir automaticamente o conteúdo dos responses se for o caso. • IIS suporta filtragem de requests e transient worker process identities. • Mais de 10 anos de implementações e melhorias de segurança. • No cenário do Self Host você é responsável por muitas das responsabilidades que o IIS toma conta, além disso ele já existe para isso por que não utilizá-lo?
  • 18. Project Helios • É baseado nos mesmos motivadores do Katana Project. • Utiliza o IIS Core (extremamente poderoso) como se fosse uma API, não depende da implementação do pipeline do System.Web. • Oferece compatibilidade com o OWIN porém fornece todas as vantagens do IIS e com uma velocidade de na média 96% superior ao do ASP.NET clássico. • Pode ser utilizado independente do OWIN. • Requerimentos Mínimos: • Windows 8 ou Windows Server 2012 • .NET Framework 4.5.1 • Visual Studio 2012 ou 2013
  • 20. vNext – O futuro do ASP.NET Parte 2 • Assista no TechEd: • DEV-B385 INTRODUCING: The Future of .NET on the Server DEV-B411 DEEP DIVE: The Future of .NET on the Server http://tena2014.eventpoint.com/topic/list
  • 21. Referências • OWIN: http://owin.org/ • Project Katana: http://www.asp.net/aspnet/overview/owin-and-katana • http://channel9.msdn.com/series/Building-Modern-Web-Apps/06 • Helios Project: http://blogs.msdn.com/b/webdev/archive/2014/02/18/introducing-asp-net-project-helios.aspx http://blogs.msdn.com/b/webdev/archive/2014/02/18/supplemental-to-asp-net-project- helios.aspx • http://channel9.msdn.com/Series/Building-Modern-Web-Apps/07 • ASP.NET: http://www.asp.net