SlideShare uma empresa Scribd logo
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

Mais conteúdo relacionado

Mais procurados

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
Rodrigo 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 2016
Rodolfo Fadino Junior
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
Benicio Ávila
 
Alagoas Dev Day
Alagoas Dev DayAlagoas Dev Day
Alagoas Dev Day
Marcio Trindade
 
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
 
JBoss Fuse Workshop Desenvolvimento - Parte 1
JBoss Fuse Workshop Desenvolvimento - Parte 1JBoss Fuse Workshop Desenvolvimento - Parte 1
JBoss Fuse Workshop Desenvolvimento - Parte 1
Paulo Roberto de Castro Filho
 
Asp.Net Core - Meetup BH
Asp.Net Core - Meetup BHAsp.Net Core - Meetup BH
Asp.Net Core - Meetup BH
André Paulovich
 
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
Renato Groff
 
Middlewares ASP.NET
Middlewares ASP.NETMiddlewares ASP.NET
Middlewares ASP.NET
Bruno Belarmino
 
Docker para devs .NET
Docker para devs .NETDocker para devs .NET
Docker para devs .NET
Fabrício Lopes Sanchez
 
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
Guilherme Heynemann Bruzzi
 
Asp.net core
Asp.net coreAsp.net core
Asp.net core
Tanato Cartaxo
 
.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áticas
Ricardo 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 Tomcat
Edgar 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-2018
Renato 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 2016
Renato 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/2017
Renato Groff
 
O Futuro do ASP.NET (vNext)
O Futuro do ASP.NET (vNext)O Futuro do ASP.NET (vNext)
O Futuro do ASP.NET (vNext)
Fabrício Lopes Sanchez
 

Mais procurados (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)
 

Semelhante a 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 mais
akamud
 
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
Giovanni 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
 
O Futuro do ASP.NET
O Futuro do ASP.NETO Futuro do ASP.NET
O Futuro do ASP.NET
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.0
Fabrí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
 
Node js - Javascript Server Side
Node js - Javascript Server SideNode js - Javascript Server Side
Node js - Javascript Server Side
Gustavo Corrêa Alves
 
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
Andre 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 DotnetFloripa
Renato 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 Linux
Eduardo Rozario
 
Containers com docker #CPRecife4
Containers com docker #CPRecife4Containers com docker #CPRecife4
Containers com docker #CPRecife4
David 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.1
Rodrigo 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 multiplataforma
Rogé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 multiplataforma
tdc-globalcode
 
Fundamentos do asp.net
Fundamentos do asp.netFundamentos do asp.net
Fundamentos do asp.net
leojr_0
 
Sessao2 ASP
Sessao2 ASPSessao2 ASP
Sessao2 ASP
gueste32066
 
Sessao2
Sessao2Sessao2
Sessao2
Nelson Sousa
 
Sessao2
Sessao2Sessao2
Sessao2
Nelson Sousa
 
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
Renato Groff
 

Semelhante a 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 ASP
Sessao2 ASPSessao2 ASP
Sessao2 ASP
 
Sessao2
Sessao2Sessao2
Sessao2
 
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