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

ASP.NET Web Forms X ASP.NET MVC

Jun 15, 2015

Download

Documents

guest489a65e

Segunda reunião do DotNetArchitects apresentada por Daniel Ferreira
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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…