43
Web Forms x ASP.NET MVC Daniel Ferreira Engenheiro de Sistemas @ C.E.S.A.R MSP | MCP | MCTS | MCPD

ASP.NET Web Forms X ASP.NET MVC

Embed Size (px)

DESCRIPTION

Segunda reunião do DotNetArchitects apresentada por Daniel Ferreira

Citation preview

Page 1: ASP.NET Web Forms X ASP.NET MVC

Web Forms x ASP.NET MVC

Daniel FerreiraEngenheiro de Sistemas @ C.E.S.A.RMSP | MCP | MCTS | MCPD

Page 2: ASP.NET Web Forms X ASP.NET MVC

About me

− Engenheiro de Sistemas C.E.S.A.R (Recife)− Formado em Ciências da Computação pela

UFPE− Mestrando em Bancos de Dados

Geográficos pela UFPE

− Microsoft Student Partner Co-lead (N/NE)− MCTS ASP.NET, MCTS WPF, MCPD ASP.NET

− Contato: [email protected]

Page 3: ASP.NET Web Forms X ASP.NET MVC

Agenda

− Entendendo o Web Forms− Vantagens e Desvantagens do WF− O padrão MVC− O ASP.NET MVC Framework− Comparativos− Conclusões

Page 4: ASP.NET Web Forms X ASP.NET MVC

Entendendo os Web Forms

− Primeiro framework de desenvolvimento web com ASP.NET

− Existe desde 2001/2002− Rapidamente tomou parte do

mercado, efetivamente matando o ASP 3

− Era a única solução de desenvolvimento web com .NET

Page 5: ASP.NET Web Forms X ASP.NET MVC

Usar esse trecotem vantagens?

Page 6: ASP.NET Web Forms X ASP.NET MVC

Sim, e muito!

− Rápido, realmente RAD− Designer Visual− Controles ricos− Gerenciamento de estado abstraído− Fácil de trabalhar− Migração de Windows Forms para Web

Forms é muito simples− Javascript “escondido”do programador− Fácil integração com o Sharepoint

Page 7: ASP.NET Web Forms X ASP.NET MVC

Mas nem tudosão flores…

Page 8: ASP.NET Web Forms X ASP.NET MVC

Na vida de Joseph Climber

− Difícil controle sobre o HTML gerado− Inicialmente tinha problemas com

standards− É fácil continuar sem standards

− Dificuldade de integração com frameworks javascript

− Arquitetura não estimula a busca de padrões arquiteturais, apesar de suportá-las

− Quase impossível testar GUI

Page 9: ASP.NET Web Forms X ASP.NET MVC

MVC

Page 10: ASP.NET Web Forms X ASP.NET MVC

O padrão MVC

− MVC = Model View Controller− Padrão de arquitetura que separa

lógica de negócio da apresentação

Model

ViewController

Page 11: ASP.NET Web Forms X ASP.NET MVC

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− Uma opção

− O que não é:− Um substituto ao Webforms− Uma nova versão dos Webforms

Page 12: ASP.NET Web Forms X ASP.NET MVC

Um novo template…

Page 13: ASP.NET Web Forms X ASP.NET MVC

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

Abstractions

Routing

MVC

Page 14: ASP.NET Web Forms X ASP.NET MVC

http://www.asp.net/mvc

Page 15: ASP.NET Web Forms X ASP.NET MVC

OpenSource!

Page 16: ASP.NET Web Forms X ASP.NET MVC

http://codeplex.com/aspnet

Page 17: ASP.NET Web Forms X ASP.NET MVC

Ciclo de Vida

− A tabela de rotas é criada− O UrlRoutingMode intercepta o

request e determina a rota− O MVC Handler é ativado e cria o

controlador esperado− A ação do controller é executada− Algum dado do modelo é obtido− O método View é chamado e uma

view é criada− A View é renderizada

Page 18: ASP.NET Web Forms X ASP.NET MVC

18

HTML Helpers

ouAntes

Agora

Page 19: ASP.NET Web Forms X ASP.NET MVC

Qualquer umpode usar?

Page 20: ASP.NET Web Forms X ASP.NET MVC

Não é para todos!

− É mais complexo− Exige mais do desenvolvedor− Exige conhecimento de HTML− Exige conhecimento de Javascript,

CSS, etc.− Curva de aprendizado do web forms

elevada.

Page 21: ASP.NET Web Forms X ASP.NET MVC

demo

Page 22: ASP.NET Web Forms X ASP.NET MVC

Devo usar Web Forms ou

MVC??

Page 23: ASP.NET Web Forms X ASP.NET MVC

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.

Page 24: ASP.NET Web Forms X ASP.NET MVC

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.

Page 25: ASP.NET Web Forms X ASP.NET MVC

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.

Page 26: ASP.NET Web Forms X ASP.NET MVC

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

Page 27: ASP.NET Web Forms X ASP.NET MVC

<form/>

<form/>

<form/>

Page 28: ASP.NET Web Forms X ASP.NET MVC

Mindset

- Nós precisamos de um controle Repeater!

- Nós já o temos, se chama: laço de foreach.

Conversa entre desenvolvedores da Microsoft, segundo relatado por Scott

Hanselman, do time do MVC.

Page 29: ASP.NET Web Forms X ASP.NET MVC

Arquitetando…

Page 30: ASP.NET Web Forms X ASP.NET MVC

Desvantagens do Web Forms− Não tem separação de preocupações (SoC)− Ambiente de runtime monolítico

− Não é facilmente estendido− 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

− Postback torna a página difícil de ser indexada por mecanismos de busca e classificação

− Estimula o arrastar-e-soltar

Page 31: ASP.NET Web Forms X ASP.NET MVC

Desvantagens do MVC

− Baixa produtividade− Não mantem estado− Sem facilidades para gerar HTML− Necessidade de conhecimento do padrão

MVC− Não tem controles “prontos”

Page 32: ASP.NET Web Forms X ASP.NET MVC
Page 33: ASP.NET Web Forms X ASP.NET MVC

Páginas X Ações

Page 34: ASP.NET Web Forms X ASP.NET MVC

Concluíndo…

Page 35: ASP.NET Web Forms X ASP.NET MVC

WebFormsPlug-and-Play

MVCExpõe a arquitetura

Page 36: ASP.NET Web Forms X ASP.NET MVC

WebFormsPágina Codificação

MVCMod. dos dados Página

Page 37: ASP.NET Web Forms X ASP.NET MVC
Page 38: ASP.NET Web Forms X ASP.NET MVC

System.Web.Mvc.GridView

?

Page 39: ASP.NET Web Forms X ASP.NET MVC

Segurança no MVC .NET

− Membership e Roles continuam valendo− Com exceção da restrição de paginas por

grupo/usuário

<location path="Contas/ContaCorrente.aspx">  <system.web>    <authorization>      <allow roles="Gerentes" />      <deny users="*" />    </authorization>  </system.web></location>

Page 40: ASP.NET Web Forms X ASP.NET MVC

Testes com Web Forms

− Uma única página/classe:− Tratar a exibição dos dados− Exibir os dados− Capturar as informações fornecidas pelo

usuário− Validar e manter estados− Enviar as informações novamente para a

aplicação.− Necessário execução dentro do IIS− = Forte acoplamento

Page 41: ASP.NET Web Forms X ASP.NET MVC

Testes com MVC .NET

− Facilidade devido ao desacoplamento do padrão MVC

− Cada classe, controler e método pode ser testado separadamente

− Testes unitários e template de projeto pronto

Page 42: ASP.NET Web Forms X ASP.NET MVC

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− Comparing WebForms and ASP.NET

MVC− Dino Esposito

42

Page 43: ASP.NET Web Forms X ASP.NET MVC

Concluíndo…