SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Downloaden Sie, um offline zu lesen
ASP.NET vNext – MVC6
Mailson de Queiroz Proença
Agenda
 Breve história do Asp.NET;
 Dependência do System.Web;
 Algumas soluções implementadas;
 Motivição para o desenvolvimento do vNext;
 O novo ASP.NET (vNext):
 Vantagens;
 Componentes e Comandos;
 Exemplos;
 Conclusão.
ASP.NET – Um pouco de sua história
 Primeira versão em 2002 junto do .NET Framework 1.0;
 Utiliza-se C# ou VB.NET;
 Desenvolvido para rodar no IIS;
 Vários conceitos em um único pacote (System.WEB):
 Session;
 Cache;
 WebForms;
 Controls.
System.Web
 Um projeto MVC vazio já vem com vários
arquivos;
 Você tem que “pagar” por algo que não
quer ou não precisa;
ASP.NET – Um pouco de sua história
 O ASP.NET(System.Web) é entregue como parte do .NET
Framework;
 Ciclo de atualizações lentas;
 Os recursos do ASP.NET cresceram, aumentando o
tamanho e complexidade do System.Web;
 Isso ocasiona aumento no consumo de recursos para o
ASP.NET rodar;
 Uma única opção de host – O IIS.
Soluções
 2007 – 2008: foi introduzido o framework MVC ao
ASP.NET:
 O MVC é distribuído separadamente, aumentando a entrega
de atualizações;
 2012 – 2013: foi lançado o ASP.NET Web API e ASP.NET SignaIR:
 Escrito sem nenhuma dependência com o System.Web;
 Possui capacidade de Self-Hosting(Independente de IIS).
Motivação para desenvolvimento do vNext
 A versão atual do ASP.NET te obriga a passar por um pipeline
gigantesco;
 Isso impacta desempenho;
 No vNext pode-se escolher o que vai ser utilizado;
O novo ASP.NET (vNext)
 Ainda em desenvolvimento;
 ASP.NET MVC, ASP.NET Web Forms e Web API agora é um só, chamado
MVC 6;
 Acabou a depedência do System.Web;
 Ciclo de desenvolvimento rápido;
 Escolha seu editores e ferramentas;
 Cógido aberto com contribuições externas (disponível no GitHub);
 Maior portabilidade:
 não existe depedência de assemblies, facilitando o deploy em nuvem e em
ambientes não Windows;
O novo ASP.NET (vNext)
 Possibilidade de hospedar sua aplicação no IIS ou em um
processo self hosted;
 Voltado para ambiente Cloud Computing;
 Suporte ao legado do MVC 5, Web API 2, Web Page 3,
SignaIR 2 e EF 6;
 Baixíssimo consumo de memória;
 Completamente multiplataforma! Rode ASP.NET onde
quiser!
 Compatível com Mac OS e Linux através do projeto Mono.
O novo ASP.NET (vNext)
 Oferece suporte a gerenciadores de pacotes:
 GruntJS: é uma ferramenta que tem como objetivo automatizar
tarefas, principalmente com Javascript.
 Bower: gerenciar componentes de front-end;
 NPM(Node Package Manager): gerenciador de Pacotes do Node.JS.
Componentes / Comandos do ASP.NET
(vNext)
 Kruntime: é um SDK que contém todos os binários necessários para
compilação e execução da aplicação;
 KVM - K Version Manager: Script Powershell responsável por gerenciar
as versões do KRE em seu ambiente;
 KRE - K Runtime Environment: Runtime responsável por compilar e
rodar sua aplicação;
 KPM - K Package Manager: Gerenciador de pacotes, este comando
instala os pacotes necessários para rodar sua aplicação dentro da
versão do runtime que está sendo utilizado;
 K – Command: Utilize o commando K para rodar as aplicações (K run, K
web, etc.
KVM
 List: lista os KREs disponíveis;
 Upgrade: instala a última versão do KRE
 Padrão é não usar o cloud optimized
 Já deixa essa versão como sendo a padrão;
 Install: instala uma versão específica do KRE;
 Use: escolhe uma versão;
KPM
 Restore: restaura os pacotes, colocando-os em
$HOME/.kpm/packages;
 Pack: prepara a aplicação para deploy (mas não compila);
 Build: compila o projeto e gera a dll e o nupkg;
 Add: adiciona uma dependência ao projeto;
K
 run: executa uma aplicação console;
 web: executa aplicação Web e aplicação MVC (Windows);
 kestrel: compila e executa a aplicação Web;
Project.json
 Dependências
{
"dependencies": {
"Kestrel": "1.0.0-beta4",
"Microsoft.AspNet.ConfigurationModel": “1.0.0-beta-*"}
}
Project.json
 Commands
{
"commands": {
"kestrel": "Microsoft.AspNet.Hosting --server Kestrel --
server.urls http://localhost:5004",
"web": "Microsoft.AspNet.Hosting
server.name=Microsoft.AspNet.Server.WebListener
server.urls=http://localhost:5001",
"test": "Xunit.KRunner"
}
}
Project.json
 Configurações
{
"configurations": {
"Debug": {
"compilationOptions": {
"define": ["DEBUG", "TRACE"],
"debugSymbols": true
}
},
"Release": {
"compilationOptions": {
"define": ["RELEASE", "TRACE"],
"optimize": true,
"debugSymbols": false
}
}
}
}
Project.json
 Frameworks
{
"frameworks": {
“dnx451": {},
“dnxcore50": {
"dependencies": {
"System.Collections": "4.0.0.0",
"System.Collections.Concurrent": "4.0.0.0",
"System.ComponentModel": "4.0.0.0",
"System.Linq": "4.0.0.0",
"System.Reflection": "4.0.10.0",
}
}
}
}
Project.json
 Sources
{
"code": "*.cs",
"exclude": "buggy/**/*.cs",
"resources": "embed/**/*.*"
}
Project.json
 Scripts
{
"scripts": {
"postrestore": [
"npm install",
"bower install"
],
"prepare": [
"gulp copy"
] }
}
Startup.cs
 Classe de inicialização do projeto;
 Deve conter o método Configure:
 onde deve ser feita toda configuração do pipeline HTTP.
public class Startup{
public void Configure(IApplicationBuilder app)
{
app.UseServices(services => services.AddMvc());
app.UseMvc();
}
}
Cadê o Web.Config?
 Você pode ter outros tipos de arquivo de config
 Web.Config
 Config.ini
 Config.json;
 Tudo depende do Configuration Model escolhido
 Por padrão é o
Microsoft.Framework.ConfigurationModel.Json
O que roda sua aplicação não é uma dll
 O código que vai rodar é .cs;
 Você ainda pode pré-compilar;
 Deploy muito facilitado:
 kpm pack;
 Dependências locais, tudo que vai rodar está no diretório da
aplicação;
 As dependências são pacotes (Nuget), não dlls.
Servidor web
 IIS funciona;
 Self host;
 Kestrel (self host feito pela Microsoft baseado em libuv – o mesmo do
Nodejs)
 Suporte a outros servidores são esperados:
 Apache;
 Devices menores agora podem rodar (roteadores wifi, modem,
RaspberryPi, carros, etc).
Exemplo prático
Referências
 http://www.asp.net/vnext
 http://www.devmedia.com.br/novidades-do-asp-net-vnext-e-do-visual-
studio/31166
 http://eduardopires.net.br/2014/05/o-futuro-do-asp-net-vnext-mvc-6/
 https://blog.lambda3.com.br/2014/05/asp-net-vnext-impresses-iniciais/
 http://docs.asp.net/en/latest/conceptual-overview/aspnet.html
 http://www.theregister.co.uk/2015/02/24/now_with_grunt_and_gulp_aspnet_
goes_crossplatform_in_new_visual_studio_2015_preview/
 http://stephenwalther.com/archive/2015/01/12/asp-net-5-and-angularjs-part-
1-configuring-grunt-uglify-and-angularjs
 http://stephenwalther.com/archive/2015/02/24/top-10-changes-in-asp-net-5-
and-mvc-6
 https://github.com/aspnet/home
 http://xunit.github.io/docs/getting-started-aspnet.html
 http://www.hanselman.com/blog/ASPNET5VNextWorkInProgressExploringTa
gHelpers.aspx

Weitere ähnliche Inhalte

Was ist angesagt?

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
 
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
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao dockerBenicio Ávila
 
Flask e Docker - rumo a AWS!
Flask e Docker - rumo a AWS!Flask e Docker - rumo a AWS!
Flask e Docker - rumo a AWS!Ryan Padilha
 
ASP.NET Core em Linux - Canal .NET Dev Week
ASP.NET Core em Linux - Canal .NET Dev WeekASP.NET Core em Linux - Canal .NET Dev Week
ASP.NET Core em Linux - Canal .NET Dev WeekRenato Groff
 
Desenvolvendo uma App multiplataforma compartilhando 90% do código
Desenvolvendo uma App multiplataforma compartilhando 90% do códigoDesenvolvendo uma App multiplataforma compartilhando 90% do código
Desenvolvendo uma App multiplataforma compartilhando 90% do códigoGuilherme Heynemann Bruzzi
 
.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
 
Liferay com React - Boas práticas
Liferay com React - Boas práticasLiferay com React - Boas práticas
Liferay com React - Boas práticasRicardo Monteiro
 
WSO2 Application Server como Alternativa ao Tomcat
WSO2 Application Server como Alternativa ao TomcatWSO2 Application Server como Alternativa ao Tomcat
WSO2 Application Server como Alternativa ao TomcatEdgar Silva
 
.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
 
Docker para Desenvolvedores - Developers-BR - Agosto-2018
Docker para Desenvolvedores - Developers-BR - Agosto-2018Docker para Desenvolvedores - Developers-BR - Agosto-2018
Docker para Desenvolvedores - Developers-BR - Agosto-2018Renato Groff
 
.NET Core e C# 7.0 - InterCon 2016
.NET Core e C# 7.0 - InterCon 2016.NET Core e C# 7.0 - InterCon 2016
.NET Core e C# 7.0 - InterCon 2016Renato Groff
 
O novo ASP.NET - Stone Tech Saturday - Março/2017
O novo ASP.NET - Stone Tech Saturday - Março/2017O novo ASP.NET - Stone Tech Saturday - Março/2017
O novo ASP.NET - Stone Tech Saturday - Março/2017Renato Groff
 

Was ist angesagt? (20)

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
 
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
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
 
Alagoas Dev Day
Alagoas Dev DayAlagoas Dev Day
Alagoas Dev Day
 
Flask e Docker - rumo a AWS!
Flask e Docker - rumo a AWS!Flask e Docker - rumo a AWS!
Flask e Docker - rumo a AWS!
 
JBoss Fuse Workshop Desenvolvimento - Parte 1
JBoss Fuse Workshop Desenvolvimento - Parte 1JBoss Fuse Workshop Desenvolvimento - Parte 1
JBoss Fuse Workshop Desenvolvimento - Parte 1
 
Asp.Net Core - Meetup BH
Asp.Net Core - Meetup BHAsp.Net Core - Meetup BH
Asp.Net Core - Meetup BH
 
ASP.NET Core em Linux - Canal .NET Dev Week
ASP.NET Core em Linux - Canal .NET Dev WeekASP.NET Core em Linux - Canal .NET Dev Week
ASP.NET Core em Linux - Canal .NET Dev Week
 
Middlewares ASP.NET
Middlewares ASP.NETMiddlewares ASP.NET
Middlewares ASP.NET
 
Docker para devs .NET
Docker para devs .NETDocker para devs .NET
Docker para devs .NET
 
Desenvolvendo uma App multiplataforma compartilhando 90% do código
Desenvolvendo uma App multiplataforma compartilhando 90% do códigoDesenvolvendo uma App multiplataforma compartilhando 90% do código
Desenvolvendo uma App multiplataforma compartilhando 90% do código
 
Asp.net core
Asp.net coreAsp.net core
Asp.net core
 
.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?
 
Liferay com React - Boas práticas
Liferay com React - Boas práticasLiferay com React - Boas práticas
Liferay com React - Boas práticas
 
WSO2 Application Server como Alternativa ao Tomcat
WSO2 Application Server como Alternativa ao TomcatWSO2 Application Server como Alternativa ao Tomcat
WSO2 Application Server como Alternativa ao Tomcat
 
.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?
 
Docker para Desenvolvedores - Developers-BR - Agosto-2018
Docker para Desenvolvedores - Developers-BR - Agosto-2018Docker para Desenvolvedores - Developers-BR - Agosto-2018
Docker para Desenvolvedores - Developers-BR - Agosto-2018
 
.NET Core e C# 7.0 - InterCon 2016
.NET Core e C# 7.0 - InterCon 2016.NET Core e C# 7.0 - InterCon 2016
.NET Core e C# 7.0 - InterCon 2016
 
O novo ASP.NET - Stone Tech Saturday - Março/2017
O novo ASP.NET - Stone Tech Saturday - Março/2017O novo ASP.NET - Stone Tech Saturday - Março/2017
O novo ASP.NET - Stone Tech Saturday - Março/2017
 
O Futuro do ASP.NET (vNext)
O Futuro do ASP.NET (vNext)O Futuro do ASP.NET (vNext)
O Futuro do ASP.NET (vNext)
 

Ähnlich wie ASP.NET vNext – MVC6

.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
 
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
 
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
 
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
 
.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?Letticia Nicoli
 
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
 
Palestra de Asp.Net 5 no TDC floripa e DotnetFloripa
Palestra de Asp.Net 5 no TDC floripa e DotnetFloripaPalestra de Asp.Net 5 no TDC floripa e DotnetFloripa
Palestra de Asp.Net 5 no TDC floripa e DotnetFloripaRenato Haddad
 
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...Eliel Simoncelo
 
Desenvolvimento web no Linux
Desenvolvimento web no LinuxDesenvolvimento web no Linux
Desenvolvimento web no LinuxEduardo Rozario
 
Containers com docker #CPRecife4
Containers com docker #CPRecife4Containers com docker #CPRecife4
Containers com docker #CPRecife4David Ruiz
 
Dia 01 - Workshop ASP.NET CORE 1.1
Dia 01 - Workshop ASP.NET CORE 1.1Dia 01 - Workshop ASP.NET CORE 1.1
Dia 01 - Workshop ASP.NET CORE 1.1Rodrigo Kono
 
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
 
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
 
Fundamentos do asp.net
Fundamentos do asp.netFundamentos do asp.net
Fundamentos do asp.netleojr_0
 
ASP.NET Core - iMasters - Março/2016
ASP.NET Core - iMasters - Março/2016ASP.NET Core - iMasters - Março/2016
ASP.NET Core - iMasters - Março/2016Renato Groff
 

Ähnlich wie ASP.NET vNext – MVC6 (20)

.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
 
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
 
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
 
O Futuro do ASP.NET
O Futuro do ASP.NETO Futuro do ASP.NET
O Futuro do 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
 
.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?
 
Node js - Javascript Server Side
Node js - Javascript Server SideNode js - Javascript Server Side
Node js - Javascript Server Side
 
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
 
Palestra de Asp.Net 5 no TDC floripa e DotnetFloripa
Palestra de Asp.Net 5 no TDC floripa e DotnetFloripaPalestra de Asp.Net 5 no TDC floripa e DotnetFloripa
Palestra de Asp.Net 5 no TDC floripa e DotnetFloripa
 
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
 
Desenvolvimento web no Linux
Desenvolvimento web no LinuxDesenvolvimento web no Linux
Desenvolvimento web no Linux
 
Containers com docker #CPRecife4
Containers com docker #CPRecife4Containers com docker #CPRecife4
Containers com docker #CPRecife4
 
Dia 01 - Workshop ASP.NET CORE 1.1
Dia 01 - Workshop ASP.NET CORE 1.1Dia 01 - Workshop ASP.NET CORE 1.1
Dia 01 - Workshop ASP.NET CORE 1.1
 
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
 
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
 
Fundamentos do asp.net
Fundamentos do asp.netFundamentos do asp.net
Fundamentos do asp.net
 
Sessao2
Sessao2Sessao2
Sessao2
 
Sessao2 ASP
Sessao2 ASPSessao2 ASP
Sessao2 ASP
 
Sessao2
Sessao2Sessao2
Sessao2
 
ASP.NET Core - iMasters - Março/2016
ASP.NET Core - iMasters - Março/2016ASP.NET Core - iMasters - Março/2016
ASP.NET Core - iMasters - Março/2016
 

ASP.NET vNext – MVC6

  • 1. ASP.NET vNext – MVC6 Mailson de Queiroz Proença
  • 2. Agenda  Breve história do Asp.NET;  Dependência do System.Web;  Algumas soluções implementadas;  Motivição para o desenvolvimento do vNext;  O novo ASP.NET (vNext):  Vantagens;  Componentes e Comandos;  Exemplos;  Conclusão.
  • 3. ASP.NET – Um pouco de sua história  Primeira versão em 2002 junto do .NET Framework 1.0;  Utiliza-se C# ou VB.NET;  Desenvolvido para rodar no IIS;  Vários conceitos em um único pacote (System.WEB):  Session;  Cache;  WebForms;  Controls.
  • 4. System.Web  Um projeto MVC vazio já vem com vários arquivos;  Você tem que “pagar” por algo que não quer ou não precisa;
  • 5. ASP.NET – Um pouco de sua história  O ASP.NET(System.Web) é entregue como parte do .NET Framework;  Ciclo de atualizações lentas;  Os recursos do ASP.NET cresceram, aumentando o tamanho e complexidade do System.Web;  Isso ocasiona aumento no consumo de recursos para o ASP.NET rodar;  Uma única opção de host – O IIS.
  • 6. Soluções  2007 – 2008: foi introduzido o framework MVC ao ASP.NET:  O MVC é distribuído separadamente, aumentando a entrega de atualizações;  2012 – 2013: foi lançado o ASP.NET Web API e ASP.NET SignaIR:  Escrito sem nenhuma dependência com o System.Web;  Possui capacidade de Self-Hosting(Independente de IIS).
  • 7. Motivação para desenvolvimento do vNext  A versão atual do ASP.NET te obriga a passar por um pipeline gigantesco;  Isso impacta desempenho;  No vNext pode-se escolher o que vai ser utilizado;
  • 8. O novo ASP.NET (vNext)  Ainda em desenvolvimento;  ASP.NET MVC, ASP.NET Web Forms e Web API agora é um só, chamado MVC 6;  Acabou a depedência do System.Web;  Ciclo de desenvolvimento rápido;  Escolha seu editores e ferramentas;  Cógido aberto com contribuições externas (disponível no GitHub);  Maior portabilidade:  não existe depedência de assemblies, facilitando o deploy em nuvem e em ambientes não Windows;
  • 9. O novo ASP.NET (vNext)  Possibilidade de hospedar sua aplicação no IIS ou em um processo self hosted;  Voltado para ambiente Cloud Computing;  Suporte ao legado do MVC 5, Web API 2, Web Page 3, SignaIR 2 e EF 6;  Baixíssimo consumo de memória;  Completamente multiplataforma! Rode ASP.NET onde quiser!  Compatível com Mac OS e Linux através do projeto Mono.
  • 10. O novo ASP.NET (vNext)  Oferece suporte a gerenciadores de pacotes:  GruntJS: é uma ferramenta que tem como objetivo automatizar tarefas, principalmente com Javascript.  Bower: gerenciar componentes de front-end;  NPM(Node Package Manager): gerenciador de Pacotes do Node.JS.
  • 11. Componentes / Comandos do ASP.NET (vNext)  Kruntime: é um SDK que contém todos os binários necessários para compilação e execução da aplicação;  KVM - K Version Manager: Script Powershell responsável por gerenciar as versões do KRE em seu ambiente;  KRE - K Runtime Environment: Runtime responsável por compilar e rodar sua aplicação;  KPM - K Package Manager: Gerenciador de pacotes, este comando instala os pacotes necessários para rodar sua aplicação dentro da versão do runtime que está sendo utilizado;  K – Command: Utilize o commando K para rodar as aplicações (K run, K web, etc.
  • 12. KVM  List: lista os KREs disponíveis;  Upgrade: instala a última versão do KRE  Padrão é não usar o cloud optimized  Já deixa essa versão como sendo a padrão;  Install: instala uma versão específica do KRE;  Use: escolhe uma versão;
  • 13. KPM  Restore: restaura os pacotes, colocando-os em $HOME/.kpm/packages;  Pack: prepara a aplicação para deploy (mas não compila);  Build: compila o projeto e gera a dll e o nupkg;  Add: adiciona uma dependência ao projeto;
  • 14. K  run: executa uma aplicação console;  web: executa aplicação Web e aplicação MVC (Windows);  kestrel: compila e executa a aplicação Web;
  • 15. Project.json  Dependências { "dependencies": { "Kestrel": "1.0.0-beta4", "Microsoft.AspNet.ConfigurationModel": “1.0.0-beta-*"} }
  • 16. Project.json  Commands { "commands": { "kestrel": "Microsoft.AspNet.Hosting --server Kestrel -- server.urls http://localhost:5004", "web": "Microsoft.AspNet.Hosting server.name=Microsoft.AspNet.Server.WebListener server.urls=http://localhost:5001", "test": "Xunit.KRunner" } }
  • 17. Project.json  Configurações { "configurations": { "Debug": { "compilationOptions": { "define": ["DEBUG", "TRACE"], "debugSymbols": true } }, "Release": { "compilationOptions": { "define": ["RELEASE", "TRACE"], "optimize": true, "debugSymbols": false } } } }
  • 18. Project.json  Frameworks { "frameworks": { “dnx451": {}, “dnxcore50": { "dependencies": { "System.Collections": "4.0.0.0", "System.Collections.Concurrent": "4.0.0.0", "System.ComponentModel": "4.0.0.0", "System.Linq": "4.0.0.0", "System.Reflection": "4.0.10.0", } } } }
  • 19. Project.json  Sources { "code": "*.cs", "exclude": "buggy/**/*.cs", "resources": "embed/**/*.*" }
  • 20. Project.json  Scripts { "scripts": { "postrestore": [ "npm install", "bower install" ], "prepare": [ "gulp copy" ] } }
  • 21. Startup.cs  Classe de inicialização do projeto;  Deve conter o método Configure:  onde deve ser feita toda configuração do pipeline HTTP. public class Startup{ public void Configure(IApplicationBuilder app) { app.UseServices(services => services.AddMvc()); app.UseMvc(); } }
  • 22. Cadê o Web.Config?  Você pode ter outros tipos de arquivo de config  Web.Config  Config.ini  Config.json;  Tudo depende do Configuration Model escolhido  Por padrão é o Microsoft.Framework.ConfigurationModel.Json
  • 23. O que roda sua aplicação não é uma dll  O código que vai rodar é .cs;  Você ainda pode pré-compilar;  Deploy muito facilitado:  kpm pack;  Dependências locais, tudo que vai rodar está no diretório da aplicação;  As dependências são pacotes (Nuget), não dlls.
  • 24. Servidor web  IIS funciona;  Self host;  Kestrel (self host feito pela Microsoft baseado em libuv – o mesmo do Nodejs)  Suporte a outros servidores são esperados:  Apache;  Devices menores agora podem rodar (roteadores wifi, modem, RaspberryPi, carros, etc).
  • 26. Referências  http://www.asp.net/vnext  http://www.devmedia.com.br/novidades-do-asp-net-vnext-e-do-visual- studio/31166  http://eduardopires.net.br/2014/05/o-futuro-do-asp-net-vnext-mvc-6/  https://blog.lambda3.com.br/2014/05/asp-net-vnext-impresses-iniciais/  http://docs.asp.net/en/latest/conceptual-overview/aspnet.html  http://www.theregister.co.uk/2015/02/24/now_with_grunt_and_gulp_aspnet_ goes_crossplatform_in_new_visual_studio_2015_preview/  http://stephenwalther.com/archive/2015/01/12/asp-net-5-and-angularjs-part- 1-configuring-grunt-uglify-and-angularjs  http://stephenwalther.com/archive/2015/02/24/top-10-changes-in-asp-net-5- and-mvc-6  https://github.com/aspnet/home  http://xunit.github.io/docs/getting-started-aspnet.html  http://www.hanselman.com/blog/ASPNET5VNextWorkInProgressExploringTa gHelpers.aspx