Web Forms x ASP.NET MVCDaniel FerreiraEngenheiro de Sistemas @ C.E.S.A.RMSP | MCP | MCTS | MCPD
About meEngenheiro de Sistemas C.E.S.A.R (Recife)FormadoemCiênciasdaComputaçãopela UFPEMestrandoemBancos de Dados GeográficospelaUFPEMicrosoft Student Partner Co-lead (N/NE)MCTS ASP.NET, MCTS WPF, MCPD ASP.NETContato: dfsdaniel@msn.com
AgendaEntendendo o Web FormsVantagens e Desvantagens do WFO padrão MVCO ASP.NET MVC FrameworkComparativosConclusões
Entendendoos Web FormsPrimeiro framework de desenvolvimento web com ASP.NETExistedesde 2001/2002Rapidamentetomou parte do mercado, efetivamentematando o ASP 3Era a únicasolução de desenvolvimento web com .NET
Usaressetrecotem vantagens?
Sim, e muito!Rápido, realmente RADDesigner VisualControlesricosGerenciamento de estadoabstraídoFácil de trabalharMigração de Windows Forms para Web Forms é muito simplesJavascript “escondido”doprogramadorFácilintegração com o Sharepoint
Masnemtudosãoflores…
Na vida de Joseph ClimberDifícilcontrolesobre o HTML geradoInicialmentetinhaproblemas com standardsÉ fácilcontinuarsem standardsDificuldade de integração com frameworks javascriptArquiteturanãoestimula a busca de padrõesarquiteturais, apesar de suportá-lasQuaseimpossíveltestar GUI
MVC
O padrão MVCMVC = Model View ControllerPadrão de arquiteturaqueseparalógica de negóciodaapresentação
O ASP.NET MVC FrameworkO que é:Implementação do padrão MVC para o ASP.NETUm novo template de projeto no Visual StudioUma nova maneira de desenvolver com ASP.NETUmaopçãoO quenão é:Um substitutoaoWebformsUma nova versão dos Webforms
Um novo template…
DependênciasUm único assembly e namespace:System.Web.MvcDepende 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
http://www.asp.net/mvc
OpenSource!
http://codeplex.com/aspnet
Ciclo de VidaA tabela de rotas é criadaO UrlRoutingModeintercepta o request e determina a rotaO MVC Handler é ativado e cria o controladoresperadoA ação do controller é executadaAlgum dado do modelo é obtidoO método View é chamado e uma view é criadaA View é renderizada
HTML Helpers18ouAntesAgora
Qualquer umpodeusar?
Não é paratodos!É maiscomplexoExigemais do desenvolvedorExigeconhecimento de HTMLExigeconhecimento de Javascript, CSS, etc.Curva de aprendizado do web forms elevada.
demo
Devo usar Web Forms ou MVC??
Web FormsSua 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.
Web FormsSuas 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.
MVCPrecisar mais controle sobre o HTML geradoQuiser 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.
MVCQuiser 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
<form/><form/><form/>
MindsetNósprecisamos de um controle Repeater!
Nósjá o temos, se chama: laço de foreach.Conversa entre desenvolvedoresdaMicrosoft, segundorelatadopor ScottHanselman, do time do MVC.
Arquitetando…
Desvantagens do Web FormsNão tem separação de preocupações (SoC)Ambiente de runtime monolíticoNão é facilmenteestendidoNão é conectável e flexívelAlta asbtração do HTMLAcessibilidadeCompatibilidade com navegadoresIntegração com estruturas de JavaScript popularesJQuery, Dojo e PrototypeJSPostbacktorna a páginadifícil de ser indexadapormecanismos de busca e classificaçãoEstimula o arrastar-e-soltar
Desvantagens do MVCBaixaprodutividadeNãomantemestadoSemfacilidadesparagerar HTMLNecessidade de conhecimento do padrão MVCNão tem controles “prontos”
Páginas X Ações
Concluíndo…
WebFormsPlug-and-PlayMVCExpõe a arquitetura
WebFormsPágina CodificaçãoMVCMod. dos dados  Página
?System.Web.Mvc.GridView
Segurança no MVC .NETMembership e Roles continuamvalendoCom exceçãodarestrição de paginasporgrupo/usuário<location path="Contas/ContaCorrente.aspx">  <system.web>    <authorization>      <allow roles="Gerentes" />      <deny users="*" />    </authorization>  </system.web></location>
Testes com Web FormsUmaúnicapágina/classe:Tratar a exibição dos dadosExibiros dadosCapturar as informaçõesfornecidaspelousuárioValidar e manterestadosEnviar as informaçõesnovamentepara a aplicação.Necessárioexecuçãodentro do IIS= Forte acoplamento
Testes com MVC .NETFacilidadedevidoaodesacoplamento do padrão MVCCadaclasse, controler e métodopode ser testadoseparadamenteTestes unitários e template de projeto pronto
Links úteisBlog do Phil Haackhttp://haacked.comBlog do ScottGuhttp://weblogs.asp.net/scottgu/http://weblogs.asp.net/scottguportugueseMSDN - ASP.NET MVC Forumhttp://social.msdn.microsoft.com/Forums/pt-BR/mvcpt/threadsComparingWebFormsand ASP.NET MVCDino Esposito 42

ASP.NET Web Forms X ASP.NET MVC

  • 1.
    Web Forms xASP.NET MVCDaniel FerreiraEngenheiro de Sistemas @ C.E.S.A.RMSP | MCP | MCTS | MCPD
  • 2.
    About meEngenheiro deSistemas C.E.S.A.R (Recife)FormadoemCiênciasdaComputaçãopela UFPEMestrandoemBancos de Dados GeográficospelaUFPEMicrosoft Student Partner Co-lead (N/NE)MCTS ASP.NET, MCTS WPF, MCPD ASP.NETContato: dfsdaniel@msn.com
  • 3.
    AgendaEntendendo o WebFormsVantagens e Desvantagens do WFO padrão MVCO ASP.NET MVC FrameworkComparativosConclusões
  • 4.
    Entendendoos Web FormsPrimeiroframework de desenvolvimento web com ASP.NETExistedesde 2001/2002Rapidamentetomou parte do mercado, efetivamentematando o ASP 3Era a únicasolução de desenvolvimento web com .NET
  • 5.
  • 6.
    Sim, e muito!Rápido,realmente RADDesigner VisualControlesricosGerenciamento de estadoabstraídoFácil de trabalharMigração de Windows Forms para Web Forms é muito simplesJavascript “escondido”doprogramadorFácilintegração com o Sharepoint
  • 7.
  • 8.
    Na vida deJoseph ClimberDifícilcontrolesobre o HTML geradoInicialmentetinhaproblemas com standardsÉ fácilcontinuarsem standardsDificuldade de integração com frameworks javascriptArquiteturanãoestimula a busca de padrõesarquiteturais, apesar de suportá-lasQuaseimpossíveltestar GUI
  • 9.
  • 10.
    O padrão MVCMVC= Model View ControllerPadrão de arquiteturaqueseparalógica de negóciodaapresentação
  • 11.
    O ASP.NET MVCFrameworkO que é:Implementação do padrão MVC para o ASP.NETUm novo template de projeto no Visual StudioUma nova maneira de desenvolver com ASP.NETUmaopçãoO quenão é:Um substitutoaoWebformsUma nova versão dos Webforms
  • 12.
  • 13.
    DependênciasUm único assemblye namespace:System.Web.MvcDepende 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
  • 14.
  • 15.
  • 16.
  • 17.
    Ciclo de VidaAtabela de rotas é criadaO UrlRoutingModeintercepta o request e determina a rotaO MVC Handler é ativado e cria o controladoresperadoA ação do controller é executadaAlgum dado do modelo é obtidoO método View é chamado e uma view é criadaA View é renderizada
  • 18.
  • 19.
  • 20.
    Não é paratodos!ÉmaiscomplexoExigemais do desenvolvedorExigeconhecimento de HTMLExigeconhecimento de Javascript, CSS, etc.Curva de aprendizado do web forms elevada.
  • 21.
  • 22.
    Devo usar WebForms ou MVC??
  • 23.
    Web FormsSua aplicaçãojá 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 FormsSuas necessidadesde 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.
    MVCPrecisar mais controlesobre o HTML geradoQuiser 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.
    MVCQuiser ter maisliberadade 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
  • 27.
  • 28.
    MindsetNósprecisamos de umcontrole Repeater!
  • 29.
    Nósjá o temos,se chama: laço de foreach.Conversa entre desenvolvedoresdaMicrosoft, segundorelatadopor ScottHanselman, do time do MVC.
  • 30.
  • 31.
    Desvantagens do WebFormsNão tem separação de preocupações (SoC)Ambiente de runtime monolíticoNão é facilmenteestendidoNão é conectável e flexívelAlta asbtração do HTMLAcessibilidadeCompatibilidade com navegadoresIntegração com estruturas de JavaScript popularesJQuery, Dojo e PrototypeJSPostbacktorna a páginadifícil de ser indexadapormecanismos de busca e classificaçãoEstimula o arrastar-e-soltar
  • 32.
    Desvantagens do MVCBaixaprodutividadeNãomantemestadoSemfacilidadesparagerarHTMLNecessidade de conhecimento do padrão MVCNão tem controles “prontos”
  • 34.
  • 35.
  • 36.
  • 37.
  • 39.
  • 40.
    Segurança no MVC.NETMembership e Roles continuamvalendoCom 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 WebFormsUmaúnicapágina/classe:Tratar a exibição dos dadosExibiros dadosCapturar as informaçõesfornecidaspelousuárioValidar e manterestadosEnviar as informaçõesnovamentepara a aplicação.Necessárioexecuçãodentro do IIS= Forte acoplamento
  • 42.
    Testes com MVC.NETFacilidadedevidoaodesacoplamento do padrão MVCCadaclasse, controler e métodopode ser testadoseparadamenteTestes unitários e template de projeto pronto
  • 43.
    Links úteisBlog doPhil Haackhttp://haacked.comBlog do ScottGuhttp://weblogs.asp.net/scottgu/http://weblogs.asp.net/scottguportugueseMSDN - ASP.NET MVC Forumhttp://social.msdn.microsoft.com/Forums/pt-BR/mvcpt/threadsComparingWebFormsand ASP.NET MVCDino Esposito 42
  • 44.