1. Globalcode – Open4education
ASP.NET vNext
Giovanni Bassi
giovanni@lambda3.com.br
@giovannibassi
Victor Cavalcante
victor@cavalcante.net
@vcavalcante
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.
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
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
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
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