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 dese...
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;
 Des...
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çõe...
Soluções
 2007 – 2008: foi introduzido o framework MVC ao
ASP.NET:
 O MVC é distribuído separadamente, aumentando a entr...
Motivação para desenvolvimento do vNext
 A versão atual do ASP.NET te obriga a passar por um pipeline
gigantesco;
 Isso ...
O novo ASP.NET (vNext)
 Ainda em desenvolvimento;
 ASP.NET MVC, ASP.NET Web Forms e Web API agora é um só, chamado
MVC 6...
O novo ASP.NET (vNext)
 Possibilidade de hospedar sua aplicação no IIS ou em um
processo self hosted;
 Voltado para ambi...
O novo ASP.NET (vNext)
 Oferece suporte a gerenciadores de pacotes:
 GruntJS: é uma ferramenta que tem como objetivo aut...
Componentes / Comandos do ASP.NET
(vNext)
 Kruntime: é um SDK que contém todos os binários necessários para
compilação e ...
KVM
 List: lista os KREs disponíveis;
 Upgrade: instala a última versão do KRE
 Padrão é não usar o cloud optimized
 J...
KPM
 Restore: restaura os pacotes, colocando-os em
$HOME/.kpm/packages;
 Pack: prepara a aplicação para deploy (mas não ...
K
 run: executa uma aplicação console;
 web: executa aplicação Web e aplicação MVC (Windows);
 kestrel: compila e execu...
Project.json
 Dependências
{
"dependencies": {
"Kestrel": "1.0.0-beta4",
"Microsoft.AspNet.ConfigurationModel": “1.0.0-be...
Project.json
 Commands
{
"commands": {
"kestrel": "Microsoft.AspNet.Hosting --server Kestrel --
server.urls http://localh...
Project.json
 Configurações
{
"configurations": {
"Debug": {
"compilationOptions": {
"define": ["DEBUG", "TRACE"],
"debug...
Project.json
 Frameworks
{
"frameworks": {
“dnx451": {},
“dnxcore50": {
"dependencies": {
"System.Collections": "4.0.0.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...
Cadê o Web.Config?
 Você pode ter outros tipos de arquivo de config
 Web.Config
 Config.ini
 Config.json;
 Tudo depen...
O que roda sua aplicação não é uma dll
 O código que vai rodar é .cs;
 Você ainda pode pré-compilar;
 Deploy muito faci...
Servidor web
 IIS funciona;
 Self host;
 Kestrel (self host feito pela Microsoft baseado em libuv – o mesmo do
Nodejs)
...
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
...
Próximos SlideShares
Carregando em…5
×

ASP.NET vNext – MVC6

364 visualizações

Publicada em

Funcionamento do vNext

Publicada em: Software
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
364
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

ASP.NET vNext – MVC6

  1. 1. ASP.NET vNext – MVC6 Mailson de Queiroz Proença
  2. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 15. Project.json  Dependências { "dependencies": { "Kestrel": "1.0.0-beta4", "Microsoft.AspNet.ConfigurationModel": “1.0.0-beta-*"} }
  16. 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. 17. Project.json  Configurações { "configurations": { "Debug": { "compilationOptions": { "define": ["DEBUG", "TRACE"], "debugSymbols": true } }, "Release": { "compilationOptions": { "define": ["RELEASE", "TRACE"], "optimize": true, "debugSymbols": false } } } }
  18. 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. 19. Project.json  Sources { "code": "*.cs", "exclude": "buggy/**/*.cs", "resources": "embed/**/*.*" }
  20. 20. Project.json  Scripts { "scripts": { "postrestore": [ "npm install", "bower install" ], "prepare": [ "gulp copy" ] } }
  21. 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. 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. 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. 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).
  25. 25. Exemplo prático
  26. 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

×