Your SlideShare is downloading. ×
Curso ASP.NET MVC 3 - Vinicius Quaiato
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Curso ASP.NET MVC 3 - Vinicius Quaiato

10,539
views

Published on

Slides do minicurso de ASP.NET MVC 3 ministrado por Vinicius Quaiato na GlobalCode. …

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.

Published in: Technology

0 Comments
8 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
10,539
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
505
Comments
0
Likes
8
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Globalcode – open4educationVinicius Quaiato @vquaiato http://viniciusquaiato.com ASP.NET MVC 3 Mais poder no ASP.NET MVC
  • 2. Globalcode – open4educationVinicius 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
  • 3. Globalcode – open4educationVinicius Quaiato @vquaiato http://viniciusquaiato.com Contact: me • http://viniciusquaiato.com • vinicius.quaiato@gmail.com – msn e gtalk • @vquaiato
  • 4. Globalcode – open4educationVinicius Quaiato @vquaiato http://viniciusquaiato.com Lambda3 • Parceria • http://lambda3.com.br
  • 5. Globalcode – open4educationVinicius Quaiato @vquaiato http://viniciusquaiato.com Objetivos
  • 6. Globalcode – open4educationVinicius 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
  • 7. Globalcode – open4educationVinicius 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!
  • 8. Globalcode – open4educationVinicius Quaiato @vquaiato http://viniciusquaiato.com O que é ASP.NET?
  • 9. Globalcode – open4educationVinicius 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
  • 10. Globalcode – open4education0 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
  • 11. Globalcode – open4education1 Vinicius Quaiato @vquaiato http://viniciusquaiato.com O que é ASP.NET MVC?
  • 12. Globalcode – open4education2 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
  • 13. Globalcode – open4education3 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
  • 14. Globalcode – open4education4 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
  • 15. Globalcode – open4education5 Vinicius Quaiato @vquaiato http://viniciusquaiato.com ASP.NET Page life cycle
  • 16. Globalcode – open4education6 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
  • 17. Globalcode – open4education7 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
  • 18. Globalcode – open4education8 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
  • 19. Globalcode – open4education9 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
  • 20. Globalcode – open4education0 Vinicius Quaiato @vquaiato http://viniciusquaiato.com • Então...
  • 21. Globalcode – open4education1 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Não precisa ser tão complicado!
  • 22. Globalcode – open4education2 Vinicius Quaiato @vquaiato http://viniciusquaiato.com ASP.NET MVC é cool!
  • 23. Globalcode – open4education3 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
  • 24. Globalcode – open4education4 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
  • 25. Globalcode – open4education5 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Quando usar MVC? • Sempre?!
  • 26. Globalcode – open4education6 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Quando não usar MVC? • Projetos simples não devem usar MVC
  • 27. Globalcode – open4education7 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Quando não usar MVC? • Projetos simples não devem usar MVC Mentira!
  • 28. Globalcode – open4education8 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Quando não usar MVC? • A equipe não conhece o ASP.NET MVC
  • 29. Globalcode – open4education9 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Quando não usar MVC? • A equipe não conhece o ASP.NET MVC Mentira!
  • 30. Globalcode – open4education0 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Quando não usar MVC? • Precisar de controles prontos
  • 31. Globalcode – open4education1 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Quando não usar MVC? • Precisar de controles prontos Mentira!
  • 32. Globalcode – open4education2 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Quando não usar MVC? • Precisar trabalhar com AJAX
  • 33. Globalcode – open4education3 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Quando não usar MVC? • Precisar trabalhar com AJAX Mentira!
  • 34. Globalcode – open4education4 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Quando não usar MVC? • Meu projeto já é WebForms
  • 35. Globalcode – open4education5 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Quando não usar MVC? • Meu projeto já é WebForms Verdade!
  • 36. Globalcode – open4education6 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Quando não usar MVC? • Preciso de um framework maduro
  • 37. Globalcode – open4education7 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Quando não usar MVC? • Preciso de um framework maduro Mentira!
  • 38. Globalcode – open4education8 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Quando não usar MVC? • Precisar de mais profissionais do mercado
  • 39. Globalcode – open4education9 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Quando não usar MVC? • Precisar de mais profissionais do mercado Mentira!
  • 40. Globalcode – open4education0 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Quando não usar MVC? • Preciso fazer meu projeto rápido
  • 41. Globalcode – open4education1 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Quando não usar MVC? • Preciso fazer meu projeto rápido Mentira!
  • 42. Globalcode – open4education2 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Quando usar ASP.NET MVC? • Então... • ...use ASP.NET MVC em todas as situações anteriores!
  • 43. Globalcode – open4education3 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Qual usar? • ASP.NET MVC 1? • ASP.NET MVC 2? • ASP.NET MVC 3?
  • 44. Globalcode – open4education4 Vinicius Quaiato @vquaiato http://viniciusquaiato.com ASP.NET mvc 3
  • 45. Globalcode – open4education5 Vinicius Quaiato @vquaiato http://viniciusquaiato.com O que há de novo no MVC 3?
  • 46. Globalcode – open4education6 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Razor
  • 47. Globalcode – open4education7 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
  • 48. Globalcode – open4education8 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
  • 49. Globalcode – open4education9 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Demo • Primeiro contato com Razor
  • 50. Globalcode – open4education0 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!
  • 51. Globalcode – open4education1 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Demo • Conhecendo a sintaxe do Razor
  • 52. Globalcode – open4education2 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
  • 53. Globalcode – open4education3 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Demo • Escrevendo Helpers com Razor • Escrevendo functions com Razor
  • 54. Globalcode – open4education4 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
  • 55. Globalcode – open4education5 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Demo • Layout Pages com Razor
  • 56. Globalcode – open4education6 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
  • 57. Globalcode – open4education7 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Demo • Mantendo DRY com _ViewStart.cshtml
  • 58. Globalcode – open4education8 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
  • 59. Globalcode – open4education9 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Dynamic ViewModel
  • 60. Globalcode – open4education0 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Demo • Usando Dynamic ViewModels
  • 61. Globalcode – open4education1 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.
  • 62. Globalcode – open4education2 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
  • 63. Globalcode – open4education3 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Demo • WebChart, WebMail e WebGrid helpers
  • 64. Globalcode – open4education4 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
  • 65. Globalcode – open4education5 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Demo • Usando os novos ActionResult types
  • 66. Globalcode – open4education6 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
  • 67. Globalcode – open4education7 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Demo • Utilizando Global Filters
  • 68. Globalcode – open4education8 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
  • 69. Globalcode – open4education9 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Demo • Simplificando com IDependencyResolver
  • 70. Globalcode – open4education0 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
  • 71. Globalcode – open4education1 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
  • 72. Globalcode – open4education2 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Demo • Trabalhando com sessionless controllers
  • 73. Globalcode – open4education3 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
  • 74. Globalcode – open4education4 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Demo • Usando output cache para child actions
  • 75. Globalcode – open4education5 Vinicius Quaiato @vquaiato http://viniciusquaiato.com O que faltou? • JavaScript/JQuery não obstrusivo • Atributos de validação • Request Validations • IViewActivator e IControllerActivator
  • 76. Globalcode – open4education6 Vinicius Quaiato @vquaiato http://viniciusquaiato.com • Muito obrigado!
  • 77. Globalcode – open4education7 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Contact: me • http://viniciusquaiato.com • vinicius.quaiato@gmail.com – msn e gtalk • @vquaiato
  • 78. Globalcode – open4education8 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/

×