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;
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).