ASP.NET Web Forms X ASP.NET MVC

9,829 views

Published on

Segunda reunião do DotNetArchitects apresentada por Daniel Ferreira

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

No Downloads
Views
Total views
9,829
On SlideShare
0
From Embeds
0
Number of Embeds
32
Actions
Shares
0
Downloads
226
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

ASP.NET Web Forms X ASP.NET MVC

  1. 1. Web Forms x ASP.NET MVC<br />Daniel Ferreira<br />Engenheiro de Sistemas @ C.E.S.A.R<br />MSP | MCP | MCTS | MCPD<br />
  2. 2. About me<br />Engenheiro de Sistemas C.E.S.A.R (Recife)<br />FormadoemCiênciasdaComputaçãopela UFPE<br />MestrandoemBancos de Dados GeográficospelaUFPE<br />Microsoft Student Partner Co-lead (N/NE)<br />MCTS ASP.NET, MCTS WPF, MCPD ASP.NET<br />Contato: dfsdaniel@msn.com<br />
  3. 3. Agenda<br />Entendendo o Web Forms<br />Vantagens e Desvantagens do WF<br />O padrão MVC<br />O ASP.NET MVC Framework<br />Comparativos<br />Conclusões<br />
  4. 4. Entendendoos Web Forms<br />Primeiro framework de desenvolvimento web com ASP.NET<br />Existedesde 2001/2002<br />Rapidamentetomou parte do mercado, efetivamentematando o ASP 3<br />Era a únicasolução de desenvolvimento web com .NET<br />
  5. 5. Usaressetreco<br />tem vantagens?<br />
  6. 6. Sim, e muito!<br />Rápido, realmente RAD<br />Designer Visual<br />Controlesricos<br />Gerenciamento de estadoabstraído<br />Fácil de trabalhar<br />Migração de Windows Forms para Web Forms é muito simples<br />Javascript “escondido”doprogramador<br />Fácilintegração com o Sharepoint<br />
  7. 7. Masnemtudosãoflores…<br />
  8. 8. Na vida de Joseph Climber<br />Difícilcontrolesobre o HTML gerado<br />Inicialmentetinhaproblemas com standards<br />É fácilcontinuarsem standards<br />Dificuldade de integração com frameworks javascript<br />Arquiteturanãoestimula a busca de padrõesarquiteturais, apesar de suportá-las<br />Quaseimpossíveltestar GUI<br />
  9. 9. MVC<br />
  10. 10. O padrão MVC<br />MVC = Model View Controller<br />Padrão de arquiteturaqueseparalógica de negóciodaapresentação<br />
  11. 11. O ASP.NET MVC Framework<br />O que é:<br />Implementação do padrão MVC para o ASP.NET<br />Um novo template de projeto no Visual Studio<br />Uma nova maneira de desenvolver com ASP.NET<br />Umaopção<br />O quenão é:<br />Um substitutoaoWebforms<br />Uma nova versão dos Webforms<br />
  12. 12. Um novo template…<br />
  13. 13. Dependências<br />Um único assembly e namespace:<br />System.Web.Mvc<br />Depende de:<br />System.Web (2.0)<br />System.Web (3.0)<br />System.Web.Extensions (3.5)<br />System.Web.Abstractions (3.5 SP1)<br />System.Web.Routing (3.5 SP1)<br />Não é parte do SP1 do .NET 3.5/VS 2008<br />
  14. 14. http://www.asp.net/mvc<br />
  15. 15. Open<br />Source!<br />
  16. 16. http://codeplex.com/aspnet<br />
  17. 17. Ciclo de Vida<br />A tabela de rotas é criada<br />O UrlRoutingModeintercepta o request e determina a rota<br />O MVC Handler é ativado e cria o controladoresperado<br />A ação do controller é executada<br />Algum dado do modelo é obtido<br />O método View é chamado e uma view é criada<br />A View é renderizada<br />
  18. 18. HTML Helpers<br />18<br />ou<br />Antes<br />Agora<br />
  19. 19. Qualquer um<br />podeusar?<br />
  20. 20. Não é paratodos!<br />É maiscomplexo<br />Exigemais do desenvolvedor<br />Exigeconhecimento de HTML<br />Exigeconhecimento de Javascript, CSS, etc.<br />Curva de aprendizado do web forms elevada.<br />
  21. 21. demo<br />
  22. 22. Devo usar Web Forms ou MVC??<br />
  23. 23. Web Forms<br />Sua aplicação já está concluída (ou com boa parte pronta) com Web Forms. Não faça uma aplicação meio MVC, meio Web Forms.<br />Tiver pouco tempo de desenvolvimento e a equipe não conhecer o padrão MVC, o framework ASP.Net MVC, ou os dois.<br />Você gostar muito do modelo proporcionado pelo Web Forms de ilusão de manutenção de estado proporcionado pelo Viewstate.<br />
  24. 24. Web Forms<br />Suas necessidades de AJAX ou manipulação de Javascript forem muito altas, ou você odeia programar Javascript.<br />Você é fã de carteirinha de alguns controles complexos, como o gridview, os de membership, ou ainda, você gosta muito de databinding;<br />Você precisar utilizar programação de webparts para o Sharepoint.<br />
  25. 25. MVC<br />Precisar mais controle sobre o HTML gerado<br />Quiser ter uma aplicação focada em padrões mais reconhecidos, inclusive no front-end.<br />Quiser trabalhar com testes unitários também na interface com o usuário.<br />Precisar de uma aplicação mais modular, inclusive no front-end.<br />
  26. 26. MVC<br />Quiser ter mais liberadade para extender alguns pedaços do framework. Com ASP.Net MVC você pode substituir os controllers, o engine de View, a maneira de procurar Views, o framework de testes, etc.<br />Quiser utilizar XSLT, XML, texto puro, ou sei lá o que mais para renderizar as páginas web.<br />Tiver a intenção de gerar uma página menor em bytes<br />
  27. 27. <form/><br /><form/><br /><form/><br />
  28. 28. Mindset<br /><ul><li>Nósprecisamos de um controle Repeater!
  29. 29. Nósjá o temos, se chama: laço de foreach.</li></ul>Conversa entre desenvolvedoresda<br />Microsoft, segundorelatadopor Scott<br />Hanselman, do time do MVC.<br />
  30. 30. Arquitetando…<br />
  31. 31. Desvantagens do Web Forms<br />Não tem separação de preocupações (SoC)<br />Ambiente de runtime monolítico<br />Não é facilmenteestendido<br />Não é conectável e flexível<br />Alta asbtração do HTML<br />Acessibilidade<br />Compatibilidade com navegadores<br />Integração com estruturas de JavaScript populares<br />JQuery, Dojo e PrototypeJS<br />Postbacktorna a páginadifícil de ser indexadapormecanismos de busca e classificação<br />Estimula o arrastar-e-soltar<br />
  32. 32. Desvantagens do MVC<br />Baixaprodutividade<br />Nãomantemestado<br />Semfacilidadesparagerar HTML<br />Necessidade de conhecimento do padrão MVC<br />Não tem controles “prontos”<br />
  33. 33.
  34. 34. Páginas X Ações<br />
  35. 35. Concluíndo…<br />
  36. 36. WebForms<br />Plug-and-Play<br />MVC<br />Expõe a arquitetura<br />
  37. 37. WebForms<br />Página Codificação<br />MVC<br />Mod. dos dados  Página<br />
  38. 38.
  39. 39. ?<br />System.Web.Mvc.GridView<br />
  40. 40. Segurança no MVC .NET<br />Membership e Roles continuamvalendo<br />Com exceçãodarestrição de paginasporgrupo/usuário<br /><location path="Contas/ContaCorrente.aspx">  <system.web>    <authorization>      <allow roles="Gerentes" />      <deny users="*" />    </authorization>  </system.web></location><br />
  41. 41. Testes com Web Forms<br />Umaúnicapágina/classe:<br />Tratar a exibição dos dados<br />Exibiros dados<br />Capturar as informaçõesfornecidaspelousuário<br />Validar e manterestados<br />Enviar as informaçõesnovamentepara a aplicação.<br />Necessárioexecuçãodentro do IIS<br />= Forte acoplamento<br />
  42. 42. Testes com MVC .NET<br />Facilidadedevidoaodesacoplamento do padrão MVC<br />Cadaclasse, controler e métodopode ser testadoseparadamente<br />Testes unitários e template de projeto pronto<br />
  43. 43. Links úteis<br />Blog do Phil Haack<br />http://haacked.com<br />Blog do ScottGu<br />http://weblogs.asp.net/scottgu/<br />http://weblogs.asp.net/scottguportuguese<br />MSDN - ASP.NET MVC Forum<br />http://social.msdn.microsoft.com/Forums/pt-BR/mvcpt/threads<br />ComparingWebFormsand ASP.NET MVC<br />Dino Esposito <br />42<br />
  44. 44. Concluíndo…<br />

×