SlideShare uma empresa Scribd logo
1 de 48
Globalcode – Open4education 
ASP.NET vNext 
Giovanni Bassi 
giovanni@lambda3.com.br 
@giovannibassi 
Victor Cavalcante 
victor@cavalcante.net 
@vcavalcante
@VCavalcante 
@GiovanniBassi
Globalcode – Open4education 
História 
2002 – Lançado ASP.NET e WebForms 
Foco: trazer o desenvolvedor VB6 pra web 
Desenvolvedores web de verdade choram ou tiram sarro 
do WebForms 
2004 – Lançado JSF seguindo ideia muito 
semelhante ao WebForms 
2004 – Primeira versão do Ruby on Rails 
2005 – Victor já avisava todo mundo sobre o que a 
Web era e o que não era 
e criticava o WebForms
Globalcode – Open4education 
História 
~2005/2006 – Lançado MonoRail (Rails pra .NET) 
2007 – Nasce Silverlight 
E Microsoft desiste do HTML 
12/2007 – CTP do ASP.NET MVC 
E Microsoft volta pro HTML o/ 
2008 – Criado .NET Architects 
Discussões homéricas sobre Silverlight, WebForms e 
MVC 
(E DDD. O tempo todo. E repositórios. Sim, desde 2008.) 
2009 – 1.0 do ASP.NET MVC 
2009 – Lançado NodeJS
Globalcode – Open4education 
História 
2011 – Última versão do Silverlight 
2012 – SPA, SPA, SPA, SPA! 
2012 – Palestra sobre “Nova Web” no DNAD 
Nós avisamos!  
Final de 2013 – Começa desenvolvimento do 
ASP.NET vNext 
2014 – ASP.NET vNext aberto a público 
2015 – Lançamento do ASP.NET vNext?
Globalcode – Open4education 
Dúvidas comuns 
Muda alguma coisa na arquitetura? 
Cadê o WebForms? <o> 
Se não tem dll quer dizer que é interpretado? 
Vai ficar mais lento? 
Vou ter que codar na linha de comando? 
Vou conseguir migrar meus projetos? 
A Microsoft me abandonou?
ASP.NET vNext e a web moderna 
Totalmente modular 
Ciclo de desenvolvimento rápido 
Transição transparente entre nuvem e on-premises 
Escolha seus editores e ferramentas 
Código aberto com contribuições externas 
Cross-Platform 
Rápido 
Faster Development Cycle 
Globalcode – Open4education
Platform Framework Tools 
…or bring your own …or bring your own …or bring your own 
Globalcode – Open4education 
ASP.NET vNext - Resumo
Globalcode – Open4education 
HTML Helpers 
Controllers 
Actions 
Filters 
Model Biding 
DI 
Frameworks Web Hoje 
Razor Razor 
HTML Helpers 
Controllers 
Actions 
Filters 
Model Biding 
DI 
ASP.NET vNext
Globalcode – Open4education 
Pague pelo que usar 
A versão atual do ASP.NET te obriga a passar por 
um pipeline gigantesco 
Isso impacta desempenho 
No vNext você vai escolher o que vai usar, e o que 
não for carregado não traz overhead 
Você sabia que o IIS é um dos servidores web 
mais rápidos do mercado?
Globalcode – Open4education
Globalcode – Open4education 
github.com/aspnet/home 
Windows 7 ou maior 
Windows Server 2008 R2 + 
NET 4.5.1 for hosting in IIS 
Mono >= 3.41 
https://github.com/mono/mono
Globalcode – Open4education 
Uma conversa no Jabbr.net 
- Esse “vNext” é do .NET ou do ASP.NET? 
- É do ASP.NET. 
- Mas tem uma app console lá. Console, não é 
ASP.NET! 
- Porque não? 
- Ok, você venceu.
Globalcode – Open4education 
Diferenças 
fundamentais
Globalcode – Open4education 
Sem WebForms!
Globalcode – Open4education 
Diferenças fundamentais 
Assemblies em disco opcionais 
Sem WebForms 
Diferenças no framework, 
quebra de compatibilidade em APIs 
Linha de comando é um cenário 100% funcional 
Evolução independente do Windows Server e do 
.NET Framework 
100% testável 
100% portável
Globalcode – Open4education 
KRE
Globalcode – Open4education 
Estrutura do KRE 
Onde fica? 
%USERPROFILE%.kre 
O que tem lá?
Otimizado para a nuvem 
Globalcode – Open4education
MVC, Web API, Web Pages 6, SignalR 3, EF 7 
Globalcode – Open4education 
ASP.NET vNext - Resumo 
Feature ASP.NET 
vNext 
ASP.NET vNext (Cloud 
Optimized) 
Cloud Ready * * 
Design Modular * * 
Injeção de Dependência * * 
Tracing / Debugging Consistente * * 
Desenvolvimento Rápido (Sem o passo de build) * * 
Open Source * * 
Full Side by Side (framework deployed inside application) * 
Fast startup, Low memory / High throughput (best of class) *
Globalcode – Open4education 
Command Line 
K 
É a comando de entrada para o runtime 
KVM 
É o gerenciador de versão, ele é o responsável por 
manter várias versões ao mesmo tempo. 
KPM 
É o gerenciador de pacotes, ele é o responsável por 
instalar pacotes e empacotar sua aplicação
Globalcode – Open4education 
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
Globalcode – Open4education 
KPM 
restore 
Restaura seus pacotes 
Pacotes vão parar em $HOME/.kpm/packages 
pack 
Prepara a aplicação pra deploy (mas não compila) 
build 
Compila o projeto e gera a dll e o nupkg (para k10 e 
net45) 
add 
Adiciona uma dependência ao projeto
Globalcode – Open4education 
Onde ficam os pacotes do KPM? 
$HOME/.kpm/packages
Globalcode – Open4education 
Demo 
Hello World – Console
Globalcode – Open4education 
Anatomia
Globalcode – Open4education 
Demo 
Hello World – Visual Studio
Globalcode – Open4education 
Project.json 
Dependências 
{ 
"dependencies": { 
"Microsoft.AspNet.ConfigurationModel": "0.1-alpha-*", 
"SomeProject": "" 
} 
}
Globalcode – Open4education 
Project.json 
Configurações 
{ 
"configurations": { 
"Debug": { 
"compilationOptions": { 
"define": ["DEBUG", "TRACE"], 
"debugSymbols": true 
} 
}, 
"Release": { 
"compilationOptions": { 
"define": ["RELEASE", "TRACE"], 
"optimize": true, 
"debugSymbols": false 
} 
} 
} 
}
Globalcode – Open4education 
Project.json 
Frameworks 
{ 
"frameworks": { 
"net45": {}, 
"k10": { 
"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", 
} 
} 
} 
}
Globalcode – Open4education 
Project.json 
Sources 
{ 
"code": "*.cs", 
"exclude": "buggy/**/*.cs", 
"resources": "embed/**/*.*" 
}
Globalcode – Open4education 
Project.json 
Commands 
{ 
"commands": { 
"web": "Microsoft.AspNet.Hosting 
server.name=Microsoft.AspNet.Server.WebListener 
server.urls=http://localhost:5001", 
"test": "Xunit.KRunner" 
} 
}
Globalcode – Open4education 
Project.json 
Scripts 
{ 
"scripts": { 
"prebuild": "echo before building", 
"postbuild": "echo before building", 
"prepack": "echo before packing", 
"postpack": "echo after packing", 
"prerestore": "echo before restoring packages", 
"postrestore": "echo restoring packages" 
} 
}
Globalcode – Open4education 
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
Compilação em memória 
Globalcode – Open4education
Deploy do runtime e 
framework com a sua 
Globalcode – Open4education 
aplicação.
Globalcode – Open4education 
Nuget FTW!
Impactos na arquitetura 
(porque isso aqui é um evento de arquitetura) 
Globalcode – Open4education
Globalcode – Open4education
O que roda sua aplicação não é uma dll 
Globalcode – Open4education 
O código que vai rodar é .cs ou .vb 
Você ainda pode precompilar 
Deploy muito facilitado 
kpm pack 
xcopy 
Dependências locais, tudo que vai rodar está no 
diretório da aplicação 
As dependências são nupkgs, não dlls
Globalcode – Open4education 
Servidor web 
IIS funciona 
Suporte a outros servidores são esperados 
Self host 
Kestrel (self host feito pela Microsoft baseado em libuv – 
o mesmo do Nodejs) 
Nginx 
Apache 
Devices menores agora podem rodar (roteadores 
wifi, modem, RaspberryPi, IoT, carros, etc)
Globalcode – Open4education 
POCO Controllers 
Controllers não precisam mais herdar de uma 
classe base 
Colaboram com interfaces que recebem via DI 
100% testáveis 
Muda bastante 
E não muda quase nada
Globalcode – Open4education
Globalcode – Open4education 
Projetos no .NET Foundation 
ASP.NET MVC 
ASP.NET SignalR 
ASP.NET vNext 
ASP.NET Web Pages 
ASP.NET Web API 
Composition (MEF2) 
Couchbase for .NET 
Entity Framework 
Linq to Hive 
Mailkit 
Mimekit 
MEF 
MVVM Light Toolkit 
.NET API for Hadoop WebClient 
.NET Compiler Platform ("Roslyn") 
.NET Map Reduce API for Hadoop 
.NET Micro Framework 
Open XML SDK 
OWIN Authentication Middleware 
Web Protection Library 
Windows Azure .NET SDK 
Windows Phone Toolkit 
Salesforce Toolkits for .NET 
System.Drawing 
Xamarin.Auth 
Xamarin.Mobile
Globalcode – Open4education 
Mais recursos 
Home: http://asp.net/vnext 
Repositório principal: https://github.com/aspnet/Home 
Controle de projeto: http://huboard.com/aspnet/kruntime 
Sala de chat: https://jabbr.net/#/rooms/AspNetvNext 
Podcast Tecnoretórica: 
http://bit.ly/aspnetvnextpodcast1 
http://bit.ly/aspnetvnextpodcast2 
ASP.NET vNext no blog da Lambda3: 
http://bit.ly/aspnetvnextlambda3
Globalcode – Open4education 
Obrigado! 
Giovanni Bassi 
giovanni@lambda3.com.br 
@giovannibassi 
Victor Cavalcante 
victor@cavalcante.net 
@vcavalcante

Mais conteúdo relacionado

Mais procurados

É fácil ser ágil usando .NET
É fácil ser ágil usando .NETÉ fácil ser ágil usando .NET
É fácil ser ágil usando .NETGiovanni Bassi
 
Testes com xUnit + Coding Dojo
Testes com xUnit + Coding DojoTestes com xUnit + Coding Dojo
Testes com xUnit + Coding DojoLetticia Nicoli
 
.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
 
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobile
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobileXamarin + TDD - Reagindo rápido à mudanças no mundo mobile
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobileakamud
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a TestesGregorio Melo
 
Xamarin em 7 minutos
Xamarin em 7 minutosXamarin em 7 minutos
Xamarin em 7 minutosakamud
 
Desenvolvimento Web multiplataforma com ASP.NET Core 2.2 e Docker - Open Sour...
Desenvolvimento Web multiplataforma com ASP.NET Core 2.2 e Docker - Open Sour...Desenvolvimento Web multiplataforma com ASP.NET Core 2.2 e Docker - Open Sour...
Desenvolvimento Web multiplataforma com ASP.NET Core 2.2 e Docker - Open Sour...Renato Groff
 
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...Renato Groffe
 
ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018
ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018
ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018Renato Groff
 
.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 no Back e no Front - um exemplo com .NET Core e Angular - Campus Party...
Docker no Back e no Front - um exemplo com .NET Core e Angular - Campus Party...Docker no Back e no Front - um exemplo com .NET Core e Angular - Campus Party...
Docker no Back e no Front - um exemplo com .NET Core e Angular - Campus Party...Renato Groff
 
Docker: Introdução e Primeiros Passos - CEUNSP - Outubro-2018
Docker: Introdução e Primeiros Passos - CEUNSP - Outubro-2018Docker: Introdução e Primeiros Passos - CEUNSP - Outubro-2018
Docker: Introdução e Primeiros Passos - CEUNSP - Outubro-2018Renato Groff
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Renato Groff
 
9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometemFernando Henriques
 
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...Criciúma Dev
 
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...Renato Groff
 
Linux, Docker, Open Source e Tecnologias Microsoft - Dezembro/2017
Linux, Docker, Open Source e Tecnologias Microsoft - Dezembro/2017Linux, Docker, Open Source e Tecnologias Microsoft - Dezembro/2017
Linux, Docker, Open Source e Tecnologias Microsoft - Dezembro/2017Renato Groff
 
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
 
Docker para Desenvolvedores - Developers-BR - Julho-2018
Docker para Desenvolvedores - Developers-BR - Julho-2018Docker para Desenvolvedores - Developers-BR - Julho-2018
Docker para Desenvolvedores - Developers-BR - Julho-2018Renato Groff
 
Docker + Kubernetes: orquestrando containers e escalando rapidamente aplicaçõ...
Docker + Kubernetes: orquestrando containers e escalando rapidamente aplicaçõ...Docker + Kubernetes: orquestrando containers e escalando rapidamente aplicaçõ...
Docker + Kubernetes: orquestrando containers e escalando rapidamente aplicaçõ...Renato Groff
 

Mais procurados (20)

É fácil ser ágil usando .NET
É fácil ser ágil usando .NETÉ fácil ser ágil usando .NET
É fácil ser ágil usando .NET
 
Testes com xUnit + Coding Dojo
Testes com xUnit + Coding DojoTestes com xUnit + Coding Dojo
Testes com xUnit + Coding Dojo
 
.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?
 
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobile
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobileXamarin + TDD - Reagindo rápido à mudanças no mundo mobile
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobile
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a Testes
 
Xamarin em 7 minutos
Xamarin em 7 minutosXamarin em 7 minutos
Xamarin em 7 minutos
 
Desenvolvimento Web multiplataforma com ASP.NET Core 2.2 e Docker - Open Sour...
Desenvolvimento Web multiplataforma com ASP.NET Core 2.2 e Docker - Open Sour...Desenvolvimento Web multiplataforma com ASP.NET Core 2.2 e Docker - Open Sour...
Desenvolvimento Web multiplataforma com ASP.NET Core 2.2 e Docker - Open Sour...
 
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
 
ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018
ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018
ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018
 
.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 no Back e no Front - um exemplo com .NET Core e Angular - Campus Party...
Docker no Back e no Front - um exemplo com .NET Core e Angular - Campus Party...Docker no Back e no Front - um exemplo com .NET Core e Angular - Campus Party...
Docker no Back e no Front - um exemplo com .NET Core e Angular - Campus Party...
 
Docker: Introdução e Primeiros Passos - CEUNSP - Outubro-2018
Docker: Introdução e Primeiros Passos - CEUNSP - Outubro-2018Docker: Introdução e Primeiros Passos - CEUNSP - Outubro-2018
Docker: Introdução e Primeiros Passos - CEUNSP - Outubro-2018
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
 
9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem
 
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
 
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
 
Linux, Docker, Open Source e Tecnologias Microsoft - Dezembro/2017
Linux, Docker, Open Source e Tecnologias Microsoft - Dezembro/2017Linux, Docker, Open Source e Tecnologias Microsoft - Dezembro/2017
Linux, Docker, Open Source e Tecnologias Microsoft - Dezembro/2017
 
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
 
Docker para Desenvolvedores - Developers-BR - Julho-2018
Docker para Desenvolvedores - Developers-BR - Julho-2018Docker para Desenvolvedores - Developers-BR - Julho-2018
Docker para Desenvolvedores - Developers-BR - Julho-2018
 
Docker + Kubernetes: orquestrando containers e escalando rapidamente aplicaçõ...
Docker + Kubernetes: orquestrando containers e escalando rapidamente aplicaçõ...Docker + Kubernetes: orquestrando containers e escalando rapidamente aplicaçõ...
Docker + Kubernetes: orquestrando containers e escalando rapidamente aplicaçõ...
 

Destaque

Construindo uma ferramenta CLI multiplataforma com Node.js
Construindo uma ferramenta CLI multiplataforma com Node.jsConstruindo uma ferramenta CLI multiplataforma com Node.js
Construindo uma ferramenta CLI multiplataforma com Node.jsGiovanni Bassi
 
TFS REST API e Universal Apps
TFS REST API e Universal AppsTFS REST API e Universal Apps
TFS REST API e Universal AppsGiovanni Bassi
 
Comunicando com efetividade com Comunicação não violenta
Comunicando com efetividade com Comunicação não violentaComunicando com efetividade com Comunicação não violenta
Comunicando com efetividade com Comunicação não violentaGiovanni Bassi
 
.NET Core, ASP.NET Core e .NET Standard 2
.NET Core, ASP.NET Core e .NET Standard 2.NET Core, ASP.NET Core e .NET Standard 2
.NET Core, ASP.NET Core e .NET Standard 2Giovanni Bassi
 
Quando agile falha, segundo o PMI
Quando agile falha, segundo o PMIQuando agile falha, segundo o PMI
Quando agile falha, segundo o PMIGiovanni Bassi
 
Engenharia ágil de ponta a ponta do clone ao deploy
Engenharia ágil de ponta a ponta do clone ao deployEngenharia ágil de ponta a ponta do clone ao deploy
Engenharia ágil de ponta a ponta do clone ao deployGiovanni Bassi
 
Conheça a nova arquitetura do compilador do C# (DNAD 2015)
Conheça a nova arquitetura do compilador do C# (DNAD 2015)Conheça a nova arquitetura do compilador do C# (DNAD 2015)
Conheça a nova arquitetura do compilador do C# (DNAD 2015)Giovanni Bassi
 
Compartilhando código entre frontend e backend com Node.js
Compartilhando código entre frontend e backend com Node.jsCompartilhando código entre frontend e backend com Node.js
Compartilhando código entre frontend e backend com Node.jsGiovanni Bassi
 
.NET com contêineres Windows e Linux
.NET com contêineres Windows e Linux.NET com contêineres Windows e Linux
.NET com contêineres Windows e LinuxGiovanni Bassi
 
Entrega contínua fica mais fácil com contêineres
Entrega contínua fica mais fácil com contêineresEntrega contínua fica mais fácil com contêineres
Entrega contínua fica mais fácil com contêineresGiovanni Bassi
 
Async e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agoraAsync e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agoraGiovanni Bassi
 

Destaque (13)

Construindo uma ferramenta CLI multiplataforma com Node.js
Construindo uma ferramenta CLI multiplataforma com Node.jsConstruindo uma ferramenta CLI multiplataforma com Node.js
Construindo uma ferramenta CLI multiplataforma com Node.js
 
TFS REST API e Universal Apps
TFS REST API e Universal AppsTFS REST API e Universal Apps
TFS REST API e Universal Apps
 
Docker no Azure
Docker no AzureDocker no Azure
Docker no Azure
 
Comunicando com efetividade com Comunicação não violenta
Comunicando com efetividade com Comunicação não violentaComunicando com efetividade com Comunicação não violenta
Comunicando com efetividade com Comunicação não violenta
 
.NET Core, ASP.NET Core e .NET Standard 2
.NET Core, ASP.NET Core e .NET Standard 2.NET Core, ASP.NET Core e .NET Standard 2
.NET Core, ASP.NET Core e .NET Standard 2
 
Quando agile falha, segundo o PMI
Quando agile falha, segundo o PMIQuando agile falha, segundo o PMI
Quando agile falha, segundo o PMI
 
Engenharia ágil de ponta a ponta do clone ao deploy
Engenharia ágil de ponta a ponta do clone ao deployEngenharia ágil de ponta a ponta do clone ao deploy
Engenharia ágil de ponta a ponta do clone ao deploy
 
Conheça a nova arquitetura do compilador do C# (DNAD 2015)
Conheça a nova arquitetura do compilador do C# (DNAD 2015)Conheça a nova arquitetura do compilador do C# (DNAD 2015)
Conheça a nova arquitetura do compilador do C# (DNAD 2015)
 
O Futuro do C#: C#8
O Futuro do C#: C#8O Futuro do C#: C#8
O Futuro do C#: C#8
 
Compartilhando código entre frontend e backend com Node.js
Compartilhando código entre frontend e backend com Node.jsCompartilhando código entre frontend e backend com Node.js
Compartilhando código entre frontend e backend com Node.js
 
.NET com contêineres Windows e Linux
.NET com contêineres Windows e Linux.NET com contêineres Windows e Linux
.NET com contêineres Windows e Linux
 
Entrega contínua fica mais fácil com contêineres
Entrega contínua fica mais fácil com contêineresEntrega contínua fica mais fácil com contêineres
Entrega contínua fica mais fácil com contêineres
 
Async e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agoraAsync e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agora
 

Semelhante a ASP.NET vNext no .NET Architects Days 2014

.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
 
Aplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerAplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerWellington Silva
 
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
 
TDC2016SP - Por dentro do .Net Core
TDC2016SP - Por dentro do .Net CoreTDC2016SP - Por dentro do .Net Core
TDC2016SP - Por dentro do .Net Coretdc-globalcode
 
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...Renato Groff
 
TDC2016SP - O que há de novo no Entity Framework Core 1.0
TDC2016SP - O que há de novo no Entity Framework Core 1.0TDC2016SP - O que há de novo no Entity Framework Core 1.0
TDC2016SP - O que há de novo no Entity Framework Core 1.0tdc-globalcode
 
Entity Framework 7.0 a.k.a Entity Core 1.0
Entity Framework 7.0 a.k.a Entity Core 1.0Entity Framework 7.0 a.k.a Entity Core 1.0
Entity Framework 7.0 a.k.a Entity Core 1.0Caliel Costa
 
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...Renato Groff
 
Introdução ao NodeJS
Introdução ao NodeJSIntrodução ao NodeJS
Introdução ao NodeJSGiovanni Bassi
 
TDC2016POA | Trilha .NET - .NET Entity Core 1.0
TDC2016POA | Trilha .NET - .NET Entity Core 1.0TDC2016POA | Trilha .NET - .NET Entity Core 1.0
TDC2016POA | Trilha .NET - .NET Entity Core 1.0tdc-globalcode
 
Java e uma visão sobre PaaS
Java e uma visão sobre PaaSJava e uma visão sobre PaaS
Java e uma visão sobre PaaSEder Magalhães
 
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...Renato Groff
 
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
 
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
 
Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourceOpen4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourcetdc-globalcode
 
TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...
TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...
TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...tdc-globalcode
 
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...Renato Groff
 

Semelhante a ASP.NET vNext no .NET Architects Days 2014 (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
 
Aplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerAplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com Docker
 
O Futuro do ASP.NET (vNext)
O Futuro do ASP.NET (vNext)O Futuro do ASP.NET (vNext)
O Futuro do ASP.NET (vNext)
 
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
 
TDC2016SP - Por dentro do .Net Core
TDC2016SP - Por dentro do .Net CoreTDC2016SP - Por dentro do .Net Core
TDC2016SP - Por dentro do .Net Core
 
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
 
TDC2016SP - O que há de novo no Entity Framework Core 1.0
TDC2016SP - O que há de novo no Entity Framework Core 1.0TDC2016SP - O que há de novo no Entity Framework Core 1.0
TDC2016SP - O que há de novo no Entity Framework Core 1.0
 
Entity Framework 7.0 a.k.a Entity Core 1.0
Entity Framework 7.0 a.k.a Entity Core 1.0Entity Framework 7.0 a.k.a Entity Core 1.0
Entity Framework 7.0 a.k.a Entity Core 1.0
 
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
 
Introdução ao NodeJS
Introdução ao NodeJSIntrodução ao NodeJS
Introdução ao NodeJS
 
TDC2016POA | Trilha .NET - .NET Entity Core 1.0
TDC2016POA | Trilha .NET - .NET Entity Core 1.0TDC2016POA | Trilha .NET - .NET Entity Core 1.0
TDC2016POA | Trilha .NET - .NET Entity Core 1.0
 
Java e uma visão sobre PaaS
Java e uma visão sobre PaaSJava e uma visão sobre PaaS
Java e uma visão sobre PaaS
 
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
 
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 ...
 
ASP.NET 5, MVC 6 e além
ASP.NET 5, MVC 6 e alémASP.NET 5, MVC 6 e além
ASP.NET 5, MVC 6 e além
 
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
 
Netbeans Slides
Netbeans SlidesNetbeans Slides
Netbeans Slides
 
Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourceOpen4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSource
 
TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...
TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...
TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...
 
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
 

Mais de Giovanni Bassi

O que aprendi montando a arquitetura de microsserviços
O que aprendi montando a arquitetura de microsserviçosO que aprendi montando a arquitetura de microsserviços
O que aprendi montando a arquitetura de microsserviçosGiovanni Bassi
 
Analisando dumps de memória de aplicações .NET
Analisando dumps de memória de aplicações .NETAnalisando dumps de memória de aplicações .NET
Analisando dumps de memória de aplicações .NETGiovanni Bassi
 
Async e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agoraAsync e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agoraGiovanni Bassi
 
Conhecendo o AKS, o azure container services com kubernetes
Conhecendo o AKS, o azure container services com kubernetesConhecendo o AKS, o azure container services com kubernetes
Conhecendo o AKS, o azure container services com kubernetesGiovanni Bassi
 
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Giovanni Bassi
 
C#7, 7.1, 7.2, 7.3 e C# 8
C#7, 7.1, 7.2, 7.3 e C# 8C#7, 7.1, 7.2, 7.3 e C# 8
C#7, 7.1, 7.2, 7.3 e C# 8Giovanni Bassi
 
Apresentando o EcmaScript 6
Apresentando o EcmaScript 6Apresentando o EcmaScript 6
Apresentando o EcmaScript 6Giovanni Bassi
 
Brownbag: To sell is human
Brownbag: To sell is humanBrownbag: To sell is human
Brownbag: To sell is humanGiovanni Bassi
 

Mais de Giovanni Bassi (10)

O que aprendi montando a arquitetura de microsserviços
O que aprendi montando a arquitetura de microsserviçosO que aprendi montando a arquitetura de microsserviços
O que aprendi montando a arquitetura de microsserviços
 
Sendo ágil com git
Sendo ágil com gitSendo ágil com git
Sendo ágil com git
 
Analisando dumps de memória de aplicações .NET
Analisando dumps de memória de aplicações .NETAnalisando dumps de memória de aplicações .NET
Analisando dumps de memória de aplicações .NET
 
Novidades do c# 7 e 8
Novidades do c# 7 e 8Novidades do c# 7 e 8
Novidades do c# 7 e 8
 
Async e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agoraAsync e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agora
 
Conhecendo o AKS, o azure container services com kubernetes
Conhecendo o AKS, o azure container services com kubernetesConhecendo o AKS, o azure container services com kubernetes
Conhecendo o AKS, o azure container services com kubernetes
 
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
 
C#7, 7.1, 7.2, 7.3 e C# 8
C#7, 7.1, 7.2, 7.3 e C# 8C#7, 7.1, 7.2, 7.3 e C# 8
C#7, 7.1, 7.2, 7.3 e C# 8
 
Apresentando o EcmaScript 6
Apresentando o EcmaScript 6Apresentando o EcmaScript 6
Apresentando o EcmaScript 6
 
Brownbag: To sell is human
Brownbag: To sell is humanBrownbag: To sell is human
Brownbag: To sell is human
 

Último

Convergência TO e TI nas Usinas - Setor Sucroenergético
Convergência TO e TI nas Usinas - Setor SucroenergéticoConvergência TO e TI nas Usinas - Setor Sucroenergético
Convergência TO e TI nas Usinas - Setor SucroenergéticoMarcio Venturelli
 
Aula 01 - Introducao a Processamento de Frutos e Hortalicas.pdf
Aula 01 - Introducao a Processamento de Frutos e Hortalicas.pdfAula 01 - Introducao a Processamento de Frutos e Hortalicas.pdf
Aula 01 - Introducao a Processamento de Frutos e Hortalicas.pdfInocencioHoracio3
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo PagliusiPalestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo PagliusiPaulo Pagliusi, PhD, CISM
 
Entrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo PagliusiEntrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo PagliusiPaulo Pagliusi, PhD, CISM
 
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docxATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docxATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx2m Assessoria
 
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINASCOI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINASMarcio Venturelli
 

Último (8)

Convergência TO e TI nas Usinas - Setor Sucroenergético
Convergência TO e TI nas Usinas - Setor SucroenergéticoConvergência TO e TI nas Usinas - Setor Sucroenergético
Convergência TO e TI nas Usinas - Setor Sucroenergético
 
Aula 01 - Introducao a Processamento de Frutos e Hortalicas.pdf
Aula 01 - Introducao a Processamento de Frutos e Hortalicas.pdfAula 01 - Introducao a Processamento de Frutos e Hortalicas.pdf
Aula 01 - Introducao a Processamento de Frutos e Hortalicas.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo PagliusiPalestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
 
Entrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo PagliusiEntrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo Pagliusi
 
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docxATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
 
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docxATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
 
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINASCOI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
 

ASP.NET vNext no .NET Architects Days 2014

  • 1. Globalcode – Open4education ASP.NET vNext Giovanni Bassi giovanni@lambda3.com.br @giovannibassi Victor Cavalcante victor@cavalcante.net @vcavalcante
  • 3.
  • 4.
  • 5. Globalcode – Open4education História 2002 – Lançado ASP.NET e WebForms Foco: trazer o desenvolvedor VB6 pra web Desenvolvedores web de verdade choram ou tiram sarro do WebForms 2004 – Lançado JSF seguindo ideia muito semelhante ao WebForms 2004 – Primeira versão do Ruby on Rails 2005 – Victor já avisava todo mundo sobre o que a Web era e o que não era e criticava o WebForms
  • 6. Globalcode – Open4education História ~2005/2006 – Lançado MonoRail (Rails pra .NET) 2007 – Nasce Silverlight E Microsoft desiste do HTML 12/2007 – CTP do ASP.NET MVC E Microsoft volta pro HTML o/ 2008 – Criado .NET Architects Discussões homéricas sobre Silverlight, WebForms e MVC (E DDD. O tempo todo. E repositórios. Sim, desde 2008.) 2009 – 1.0 do ASP.NET MVC 2009 – Lançado NodeJS
  • 7. Globalcode – Open4education História 2011 – Última versão do Silverlight 2012 – SPA, SPA, SPA, SPA! 2012 – Palestra sobre “Nova Web” no DNAD Nós avisamos!  Final de 2013 – Começa desenvolvimento do ASP.NET vNext 2014 – ASP.NET vNext aberto a público 2015 – Lançamento do ASP.NET vNext?
  • 8. Globalcode – Open4education Dúvidas comuns Muda alguma coisa na arquitetura? Cadê o WebForms? <o> Se não tem dll quer dizer que é interpretado? Vai ficar mais lento? Vou ter que codar na linha de comando? Vou conseguir migrar meus projetos? A Microsoft me abandonou?
  • 9. ASP.NET vNext e a web moderna Totalmente modular Ciclo de desenvolvimento rápido Transição transparente entre nuvem e on-premises Escolha seus editores e ferramentas Código aberto com contribuições externas Cross-Platform Rápido Faster Development Cycle Globalcode – Open4education
  • 10. Platform Framework Tools …or bring your own …or bring your own …or bring your own Globalcode – Open4education ASP.NET vNext - Resumo
  • 11. Globalcode – Open4education HTML Helpers Controllers Actions Filters Model Biding DI Frameworks Web Hoje Razor Razor HTML Helpers Controllers Actions Filters Model Biding DI ASP.NET vNext
  • 12. Globalcode – Open4education Pague pelo que usar A versão atual do ASP.NET te obriga a passar por um pipeline gigantesco Isso impacta desempenho No vNext você vai escolher o que vai usar, e o que não for carregado não traz overhead Você sabia que o IIS é um dos servidores web mais rápidos do mercado?
  • 14. Globalcode – Open4education github.com/aspnet/home Windows 7 ou maior Windows Server 2008 R2 + NET 4.5.1 for hosting in IIS Mono >= 3.41 https://github.com/mono/mono
  • 15. Globalcode – Open4education Uma conversa no Jabbr.net - Esse “vNext” é do .NET ou do ASP.NET? - É do ASP.NET. - Mas tem uma app console lá. Console, não é ASP.NET! - Porque não? - Ok, você venceu.
  • 16. Globalcode – Open4education Diferenças fundamentais
  • 18. Globalcode – Open4education Diferenças fundamentais Assemblies em disco opcionais Sem WebForms Diferenças no framework, quebra de compatibilidade em APIs Linha de comando é um cenário 100% funcional Evolução independente do Windows Server e do .NET Framework 100% testável 100% portável
  • 20. Globalcode – Open4education Estrutura do KRE Onde fica? %USERPROFILE%.kre O que tem lá?
  • 21. Otimizado para a nuvem Globalcode – Open4education
  • 22. MVC, Web API, Web Pages 6, SignalR 3, EF 7 Globalcode – Open4education ASP.NET vNext - Resumo Feature ASP.NET vNext ASP.NET vNext (Cloud Optimized) Cloud Ready * * Design Modular * * Injeção de Dependência * * Tracing / Debugging Consistente * * Desenvolvimento Rápido (Sem o passo de build) * * Open Source * * Full Side by Side (framework deployed inside application) * Fast startup, Low memory / High throughput (best of class) *
  • 23. Globalcode – Open4education Command Line K É a comando de entrada para o runtime KVM É o gerenciador de versão, ele é o responsável por manter várias versões ao mesmo tempo. KPM É o gerenciador de pacotes, ele é o responsável por instalar pacotes e empacotar sua aplicação
  • 24. Globalcode – Open4education 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
  • 25. Globalcode – Open4education KPM restore Restaura seus pacotes Pacotes vão parar em $HOME/.kpm/packages pack Prepara a aplicação pra deploy (mas não compila) build Compila o projeto e gera a dll e o nupkg (para k10 e net45) add Adiciona uma dependência ao projeto
  • 26. Globalcode – Open4education Onde ficam os pacotes do KPM? $HOME/.kpm/packages
  • 27. Globalcode – Open4education Demo Hello World – Console
  • 29. Globalcode – Open4education Demo Hello World – Visual Studio
  • 30. Globalcode – Open4education Project.json Dependências { "dependencies": { "Microsoft.AspNet.ConfigurationModel": "0.1-alpha-*", "SomeProject": "" } }
  • 31. Globalcode – Open4education Project.json Configurações { "configurations": { "Debug": { "compilationOptions": { "define": ["DEBUG", "TRACE"], "debugSymbols": true } }, "Release": { "compilationOptions": { "define": ["RELEASE", "TRACE"], "optimize": true, "debugSymbols": false } } } }
  • 32. Globalcode – Open4education Project.json Frameworks { "frameworks": { "net45": {}, "k10": { "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", } } } }
  • 33. Globalcode – Open4education Project.json Sources { "code": "*.cs", "exclude": "buggy/**/*.cs", "resources": "embed/**/*.*" }
  • 34. Globalcode – Open4education Project.json Commands { "commands": { "web": "Microsoft.AspNet.Hosting server.name=Microsoft.AspNet.Server.WebListener server.urls=http://localhost:5001", "test": "Xunit.KRunner" } }
  • 35. Globalcode – Open4education Project.json Scripts { "scripts": { "prebuild": "echo before building", "postbuild": "echo before building", "prepack": "echo before packing", "postpack": "echo after packing", "prerestore": "echo before restoring packages", "postrestore": "echo restoring packages" } }
  • 36. Globalcode – Open4education 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
  • 37. Compilação em memória Globalcode – Open4education
  • 38. Deploy do runtime e framework com a sua Globalcode – Open4education aplicação.
  • 40. Impactos na arquitetura (porque isso aqui é um evento de arquitetura) Globalcode – Open4education
  • 42. O que roda sua aplicação não é uma dll Globalcode – Open4education O código que vai rodar é .cs ou .vb Você ainda pode precompilar Deploy muito facilitado kpm pack xcopy Dependências locais, tudo que vai rodar está no diretório da aplicação As dependências são nupkgs, não dlls
  • 43. Globalcode – Open4education Servidor web IIS funciona Suporte a outros servidores são esperados Self host Kestrel (self host feito pela Microsoft baseado em libuv – o mesmo do Nodejs) Nginx Apache Devices menores agora podem rodar (roteadores wifi, modem, RaspberryPi, IoT, carros, etc)
  • 44. Globalcode – Open4education POCO Controllers Controllers não precisam mais herdar de uma classe base Colaboram com interfaces que recebem via DI 100% testáveis Muda bastante E não muda quase nada
  • 46. Globalcode – Open4education Projetos no .NET Foundation ASP.NET MVC ASP.NET SignalR ASP.NET vNext ASP.NET Web Pages ASP.NET Web API Composition (MEF2) Couchbase for .NET Entity Framework Linq to Hive Mailkit Mimekit MEF MVVM Light Toolkit .NET API for Hadoop WebClient .NET Compiler Platform ("Roslyn") .NET Map Reduce API for Hadoop .NET Micro Framework Open XML SDK OWIN Authentication Middleware Web Protection Library Windows Azure .NET SDK Windows Phone Toolkit Salesforce Toolkits for .NET System.Drawing Xamarin.Auth Xamarin.Mobile
  • 47. Globalcode – Open4education Mais recursos Home: http://asp.net/vnext Repositório principal: https://github.com/aspnet/Home Controle de projeto: http://huboard.com/aspnet/kruntime Sala de chat: https://jabbr.net/#/rooms/AspNetvNext Podcast Tecnoretórica: http://bit.ly/aspnetvnextpodcast1 http://bit.ly/aspnetvnextpodcast2 ASP.NET vNext no blog da Lambda3: http://bit.ly/aspnetvnextlambda3
  • 48. Globalcode – Open4education Obrigado! Giovanni Bassi giovanni@lambda3.com.br @giovannibassi Victor Cavalcante victor@cavalcante.net @vcavalcante