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