curso asp.net mvc 3 - vinicius quaiato
DESCRIPTION
Slides do minicurso de ASP.NET MVC 3 ministrado por Vinicius Quaiato na GlobalCode.O ninicurso mostra as novidades do ASP.NET MVC: Razor, WebHelpers, IDependencyResolver, dynamic ViewModel, Global Filters, Output cache, etc.TRANSCRIPT
![Page 1: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/1.jpg)
Globalcode – open4education1 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
ASP.NET MVC 3Mais poder no ASP.NET MVC
![Page 2: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/2.jpg)
Globalcode – open4education2 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
About: Vinicius Quaiato
• Arquitetura e desenvolvimento• Apaixonado pelo que faz• Apaixonado por MVC• .NET Architects• .NET Magazine• Vegetariano• Pai• Santista• Geek
![Page 3: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/3.jpg)
Globalcode – open4education3 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Contact: me
• http://viniciusquaiato.com
• [email protected]– msn e gtalk
• @vquaiato
![Page 4: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/4.jpg)
Globalcode – open4education4 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Lambda3
• Parceria
• http://lambda3.com.br
![Page 5: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/5.jpg)
Globalcode – open4education5 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Objetivos
![Page 6: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/6.jpg)
Globalcode – open4education6 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
O que é ASP.NET?
• Framework web
• Free
• Roda em cima do .NET
• Utiliza-se C# ou VB.NET
• Independe de Browser
• Aplicações rodam no IIS
![Page 7: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/7.jpg)
Globalcode – open4education7 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
O que é ASP.NET?
• Conjunto de componentes
• Possibilita escolha de componentes– Terceiros– Microsoft
• Possui uma enorme comunidade
• Milhares de aplicações
• Não é o mesmo que WebForms!
![Page 8: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/8.jpg)
Globalcode – open4education8 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
O que é ASP.NET?
![Page 9: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/9.jpg)
Globalcode – open4education9 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
O que é ASP.NET MVC?
• Parte do ASP.NET
• Uma forma de programar ASP.NET
• Um framework– Classes– Componentes– Templates de projeto
![Page 10: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/10.jpg)
Globalcode – open4education10 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
O que é ASP.NET MVC?
• Framework que implementa padrão MVC
• MVC é um padrão arquitetural– Não é apenas uma tecnologia
![Page 11: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/11.jpg)
Globalcode – open4education11 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
O que é ASP.NET MVC?
![Page 12: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/12.jpg)
Globalcode – open4education12 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
WebForms é ruim?
• Depende!
• Uma plataforma madura
• Possui cerca de 10 anos de mercado
• Fornece uma vasta variedade de controles
• Trabalha com o modelo de Forms comum aos desenvolvedores desktop
![Page 13: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/13.jpg)
Globalcode – open4education13 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
WebForms é ruim?
• Ciclo de vida muito complexo
• Dificuldade em testar
• Difícil separar lógica de domínio de lógica de interface
• Difícil controlar a saída para o browser
• Difícil trabalhar com Ajax
• MS Ajax é muito ruim
![Page 14: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/14.jpg)
Globalcode – open4education14 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
![Page 15: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/15.jpg)
Globalcode – open4education15 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
ASP.NET Page life cycle
![Page 16: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/16.jpg)
Globalcode – open4education16 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
WebForms é ruim?
• Há quem consiga trabalhar bem com ele
• Há quem consiga fazer bons projetos
• Há quem esteja acostumado com ele
![Page 17: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/17.jpg)
Globalcode – open4education17 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
![Page 18: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/18.jpg)
Globalcode – open4education18 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
![Page 19: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/19.jpg)
Globalcode – open4education19 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
![Page 20: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/20.jpg)
Globalcode – open4education20 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
• Então...
![Page 21: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/21.jpg)
Globalcode – open4education21 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Não precisa ser tão complicado!
![Page 22: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/22.jpg)
Globalcode – open4education22 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
ASP.NET MVC é cool!
![Page 23: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/23.jpg)
Globalcode – open4education23 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Por que usar ASP.NET MVC?
• Padrão de arquitetura
• Framework possibilita SoC– Separação de conceitos/resposabilidades– Maior coesão– Maior clareza– Facilidade no desenvolvimento
![Page 24: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/24.jpg)
Globalcode – open4education24 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Por que usar ASP.NET MVC?
• Permite o trabalho com TDD– É tudo testável!
• Você tem controle do HTML gerado
• Lógica de negócios não se mistura com lógica de interface
![Page 25: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/25.jpg)
Globalcode – open4education25 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Quando usar MVC?
• Sempre?!
![Page 26: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/26.jpg)
Globalcode – open4education26 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Quando não usar MVC?
• Projetos simples não devem usar MVC
![Page 27: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/27.jpg)
Globalcode – open4education27 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Quando não usar MVC?
• Projetos simples não devem usar MVC
Mentira!
![Page 28: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/28.jpg)
Globalcode – open4education28 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Quando não usar MVC?
• A equipe não conhece o ASP.NET MVC
![Page 29: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/29.jpg)
Globalcode – open4education29 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Quando não usar MVC?
• A equipe não conhece o ASP.NET MVC
Mentira!
![Page 30: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/30.jpg)
Globalcode – open4education30 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Quando não usar MVC?
• Precisar de controles prontos
![Page 31: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/31.jpg)
Globalcode – open4education31 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Quando não usar MVC?
• Precisar de controles prontos
Mentira!
![Page 32: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/32.jpg)
Globalcode – open4education32 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Quando não usar MVC?
• Precisar trabalhar com AJAX
![Page 33: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/33.jpg)
Globalcode – open4education33 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Quando não usar MVC?
• Precisar trabalhar com AJAX
Mentira!
![Page 34: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/34.jpg)
Globalcode – open4education34 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Quando não usar MVC?
• Meu projeto já é WebForms
![Page 35: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/35.jpg)
Globalcode – open4education35 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Quando não usar MVC?
• Meu projeto já é WebForms
Verdade!
![Page 36: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/36.jpg)
Globalcode – open4education36 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Quando não usar MVC?
• Preciso de um framework maduro
![Page 37: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/37.jpg)
Globalcode – open4education37 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Quando não usar MVC?
• Preciso de um framework maduro
Mentira!
![Page 38: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/38.jpg)
Globalcode – open4education38 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Quando não usar MVC?
• Precisar de mais profissionais do mercado
![Page 39: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/39.jpg)
Globalcode – open4education39 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Quando não usar MVC?
• Precisar de mais profissionais do mercado
Mentira!
![Page 40: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/40.jpg)
Globalcode – open4education40 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Quando não usar MVC?
• Preciso fazer meu projeto rápido
![Page 41: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/41.jpg)
Globalcode – open4education41 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Quando não usar MVC?
• Preciso fazer meu projeto rápido
Mentira!
![Page 42: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/42.jpg)
Globalcode – open4education42 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Quando usar ASP.NET MVC?
• Então...
• ...use ASP.NET MVC em todas as situações anteriores!
![Page 43: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/43.jpg)
Globalcode – open4education43 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Qual usar?
• ASP.NET MVC 1?
• ASP.NET MVC 2?
• ASP.NET MVC 3?
![Page 44: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/44.jpg)
Globalcode – open4education44 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
ASP.NET
mvc 3
![Page 45: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/45.jpg)
Globalcode – open4education45 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
O que há de novo no MVC 3?
![Page 46: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/46.jpg)
Globalcode – open4education46 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Razor
![Page 47: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/47.jpg)
Globalcode – open4education47 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Razor
• View Engine
• Uma forma de criar as Views
• Não é uma nova linguagem– Usa-se C# ou VB
• Criado para facilitar o trabalho com as views
• Transição de HTML para server side quase transparente
• Ele é muito inteligente
![Page 48: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/48.jpg)
Globalcode – open4education48 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Razor
• Objetivo é facilitar
• Chega de <% %>
• Agora é simplesmente @
• Conhece HTML e conhece C#/VB
• Agora no Release Candidate há colorização e intellisense
![Page 49: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/49.jpg)
Globalcode – open4education49 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Demo
• Primeiro contato com Razor
![Page 50: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/50.jpg)
Globalcode – open4education50 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Razor
• Podemos trabalhar com statements– Condicionais– Declarações de variáveis– Multi line statements– Mesclar HTML + server code
• Sim, o Razor é inteligente demais!
![Page 51: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/51.jpg)
Globalcode – open4education51 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Demo
• Conhecendo a sintaxe do Razor
![Page 52: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/52.jpg)
Globalcode – open4education52 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Razor
• A idéia é facilitar o uso com o Razor:– Helpers– Functions
• Helpers no geral são código server side que produz código HTML
• Functions são métodos não não possuem output HTML
![Page 53: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/53.jpg)
Globalcode – open4education53 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Demo
• Escrevendo Helpers com Razor
• Escrevendo functions com Razor
![Page 54: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/54.jpg)
Globalcode – open4education54 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Razor
• Facilidades na criação de templates
• Não é necessário trabalhar com MasterPages
• Criam-se páginas de layout e sections– As sections são customizadas
![Page 55: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/55.jpg)
Globalcode – open4education55 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Demo
• Layout Pages com Razor
![Page 56: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/56.jpg)
Globalcode – open4education56 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Razor
• Possibilidade de executar código da View antes de carregar
• Ajuda a manter algumas coisas em um único ponto
• Mantém o DRY
![Page 57: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/57.jpg)
Globalcode – open4education57 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Demo
• Mantendo DRY com _ViewStart.cshtml
![Page 58: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/58.jpg)
Globalcode – open4education58 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Dynamic ViewModel
• Facilidade no acesso e manipulação do ViewData
• Utiliza recursos de programação dinâmica do .NET 4
• Funciona tanto do lado do controller quanto da view
• Mantém o código mais legível
![Page 59: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/59.jpg)
Globalcode – open4education59 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Dynamic ViewModel
![Page 60: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/60.jpg)
Globalcode – open4education60 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Demo
• Usando Dynamic ViewModels
![Page 61: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/61.jpg)
Globalcode – open4education61 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
WebHelpers
• Helpers criados para facilitar algumas ativiades:– Envio de emails– Criação e exibição de charts– Criação e manipulação de dados tabulares
(grid)– Anti forgery– Criptografia– Json– E outros.
![Page 62: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/62.jpg)
Globalcode – open4education62 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
WebHelpers
• A idéia é facilitar
• Reaproveitar o trabalho
• Se preocupar mais com o negócio do que com a tecnologia
• Utilizar o poder do framework
![Page 63: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/63.jpg)
Globalcode – open4education63 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Demo
• WebChart, WebMail e WebGrid helpers
![Page 64: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/64.jpg)
Globalcode – open4education64 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
ActionResult types
• Dois novos tipos de ActionResult
• Retornam status code apropriados
• HttpNotFound
• HttpStatusCode
• Informações importantes para search engines
![Page 65: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/65.jpg)
Globalcode – open4education65 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Demo
• Usando os novos ActionResult types
![Page 66: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/66.jpg)
Globalcode – open4education66 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Global Filters
• Filtros definidos para controllers
• Aplica-se de forma global a todos os controllers
• Conseguem fazer a interceptação das actions
• Conseguem executar atividades em momentos chave
• Mantém o DRY
![Page 67: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/67.jpg)
Globalcode – open4education67 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Demo
• Utilizando Global Filters
![Page 68: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/68.jpg)
Globalcode – open4education68 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
IDependencyResolver
• Uma forma simples de resolver dependências
• Tudo via configuração
• TDD fica mais simples
• Responsabilidades ficam separadas
• Só é necessário informar quem sabe resolver as coisas
![Page 69: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/69.jpg)
Globalcode – open4education69 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Demo
• Simplificando com IDependencyResolver
![Page 70: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/70.jpg)
Globalcode – open4education70 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
ASP.NET MVC 3 RC
• Suporte a controle de session state dos controllers
• Output cache para child actions
• Colorização e intellisense do Razor
• Novos atributos de validação– Compare– Remote
![Page 71: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/71.jpg)
Globalcode – open4education71 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Sessionless controllers
• HTTP é stateless, não mantém estado
• Ajuda evitar uso descabível se sessions
• Sessões não são para passar parâmetros
• Sessões não são “banco de dados”
• Session não é thread safe– Múltiplos requests do mesmo user criarão
uma fila– Sessionless permite processar em paralelo
![Page 72: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/72.jpg)
Globalcode – open4education72 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Demo
• Trabalhando com sessionless controllers
![Page 73: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/73.jpg)
Globalcode – open4education73 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Output cache
• Já existe no ASP.NET
• A novidade é output cache para child actions
• Faz cache da action e não de toda uma view
• Granular– Pode variar por parâmetros– Facilmente configurável com atributtes
![Page 74: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/74.jpg)
Globalcode – open4education74 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Demo
• Usando output cache para child actions
![Page 75: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/75.jpg)
Globalcode – open4education75 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
O que faltou?
• JavaScript/JQuery não obstrusivo
• Atributos de validação
• Request Validations
• IViewActivator e IControllerActivator
![Page 76: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/76.jpg)
Globalcode – open4education76 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
• Muito obrigado!
![Page 77: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/77.jpg)
Globalcode – open4education77 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Contact: me
• http://viniciusquaiato.com
• [email protected]– msn e gtalk
• @vquaiato
![Page 78: Curso ASP.NET MVC 3 - Vinicius Quaiato](https://reader031.vdocuments.net/reader031/viewer/2022020115/54922ac3ac79592a288b46ec/html5/thumbnails/78.jpg)
Globalcode – open4education78 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Links
• http://asp.net/mvc
• http://asp.net/mvc/mvc3
• http://weblogs.asp.net/scottgu/
• http://haacked.com/• http://viniciusquaiato.com/blog/asp-net-mvc-3/