SlideShare uma empresa Scribd logo
1 de 43
Web Forms x ASP.NET MVC Daniel Ferreira Engenheiro de Sistemas @ C.E.S.A.R MSP | MCP | MCTS | MCPD
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
Agenda Entendendo o Web Forms Vantagens e Desvantagens do WF O padrão MVC O ASP.NET MVC Framework Comparativos Conclusões
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
Usaressetreco tem vantagens?
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
Masnemtudosãoflores…
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
MVC
O padrão MVC MVC = Model View Controller Padrão de arquiteturaqueseparalógica de negóciodaapresentação
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
Um novo template…
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
http://www.asp.net/mvc
Open Source!
http://codeplex.com/aspnet
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
HTML Helpers 18 ou Antes Agora
Qualquer um podeusar?
Não é paratodos! É maiscomplexo Exigemais do desenvolvedor Exigeconhecimento de HTML Exigeconhecimento de Javascript, CSS, etc. Curva de aprendizado do web forms elevada.
demo
Devo usar Web Forms ou 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.
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.
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.
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
<form/> <form/> <form/>
Mindset ,[object Object]
Nósjá o temos, se chama: laço de foreach.Conversa entre desenvolvedoresda Microsoft, segundorelatadopor Scott Hanselman, do time do MVC.
Arquitetando…
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
Desvantagens do MVC Baixaprodutividade Nãomantemestado Semfacilidadesparagerar HTML Necessidade de conhecimento do padrão MVC Não tem controles “prontos”
Páginas X Ações
Concluíndo…
WebForms Plug-and-Play MVC Expõe a arquitetura
WebForms Página Codificação MVC Mod. dos dados  Página
? System.Web.Mvc.GridView
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>
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
Testes com MVC .NET Facilidadedevidoaodesacoplamento do padrão MVC Cadaclasse, controler e métodopode ser testadoseparadamente Testes unitários e template de projeto pronto
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

Mais conteúdo relacionado

Mais procurados

ASP.Net MVC no VS 2010
ASP.Net MVC no VS 2010ASP.Net MVC no VS 2010
ASP.Net MVC no VS 2010Giovanni Bassi
 
Curso ASP.NET MVC 3 - Vinicius Quaiato
Curso ASP.NET MVC 3 - Vinicius QuaiatoCurso ASP.NET MVC 3 - Vinicius Quaiato
Curso ASP.NET MVC 3 - Vinicius QuaiatoVinicius Quaiato
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Daniel Makiyama
 
Testando uma aplicação AngularJS utilizando o Karma
Testando uma aplicação AngularJS utilizando o KarmaTestando uma aplicação AngularJS utilizando o Karma
Testando uma aplicação AngularJS utilizando o KarmaHenrique Limas
 
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Rodrigo Branas
 
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVAVRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVAYelken Heckman Ferreira Gonzales
 
Desenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual StudioDesenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual StudioGeovani Ferreira Gonçalves
 
Desenvolvimento Web com ASP.NET 4
Desenvolvimento Web com ASP.NET 4Desenvolvimento Web com ASP.NET 4
Desenvolvimento Web com ASP.NET 4Rodrigo Kono
 
Começando com Vue.js
Começando com Vue.jsComeçando com Vue.js
Começando com Vue.jsmarcusbalbi
 
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.jsJava script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.jsVinicius Reis
 
Introdução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsIntrodução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsCloves Moreira Junior
 
Rails - Wep-App-Theme no Liberdade Interativa Guarapari
Rails - Wep-App-Theme no Liberdade Interativa GuarapariRails - Wep-App-Theme no Liberdade Interativa Guarapari
Rails - Wep-App-Theme no Liberdade Interativa GuarapariAllan Freitas
 
TDC 2014 - Arquitetura front-end com AngularJS
TDC 2014 - Arquitetura front-end com AngularJSTDC 2014 - Arquitetura front-end com AngularJS
TDC 2014 - Arquitetura front-end com AngularJSLeonardo Zanivan
 
Drupal 8 e ReactJS - DrupalCamp Campinas 2016
Drupal 8 e ReactJS -  DrupalCamp Campinas 2016Drupal 8 e ReactJS -  DrupalCamp Campinas 2016
Drupal 8 e ReactJS - DrupalCamp Campinas 2016Taller Negócio Digitais
 

Mais procurados (20)

Estudo de caso ASP.NET MVC e Silverlight
Estudo de caso ASP.NET MVC e SilverlightEstudo de caso ASP.NET MVC e Silverlight
Estudo de caso ASP.NET MVC e Silverlight
 
ASP.Net MVC no VS 2010
ASP.Net MVC no VS 2010ASP.Net MVC no VS 2010
ASP.Net MVC no VS 2010
 
Curso ASP.NET MVC 3 - Vinicius Quaiato
Curso ASP.NET MVC 3 - Vinicius QuaiatoCurso ASP.NET MVC 3 - Vinicius Quaiato
Curso ASP.NET MVC 3 - Vinicius Quaiato
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
 
Java Web Fácil com VRaptor
Java Web Fácil com VRaptorJava Web Fácil com VRaptor
Java Web Fácil com VRaptor
 
Palestra ASP.NET MVC
Palestra ASP.NET MVCPalestra ASP.NET MVC
Palestra ASP.NET MVC
 
Testando uma aplicação AngularJS utilizando o Karma
Testando uma aplicação AngularJS utilizando o KarmaTestando uma aplicação AngularJS utilizando o Karma
Testando uma aplicação AngularJS utilizando o Karma
 
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
 
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVAVRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
 
Desenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual StudioDesenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual Studio
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Desenvolvimento Web com ASP.NET 4
Desenvolvimento Web com ASP.NET 4Desenvolvimento Web com ASP.NET 4
Desenvolvimento Web com ASP.NET 4
 
Apresentação angular js
Apresentação angular jsApresentação angular js
Apresentação angular js
 
Começando com Vue.js
Começando com Vue.jsComeçando com Vue.js
Começando com Vue.js
 
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.jsJava script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
 
Introdução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsIntrodução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular js
 
Rails - Wep-App-Theme no Liberdade Interativa Guarapari
Rails - Wep-App-Theme no Liberdade Interativa GuarapariRails - Wep-App-Theme no Liberdade Interativa Guarapari
Rails - Wep-App-Theme no Liberdade Interativa Guarapari
 
TDC 2014 - Arquitetura front-end com AngularJS
TDC 2014 - Arquitetura front-end com AngularJSTDC 2014 - Arquitetura front-end com AngularJS
TDC 2014 - Arquitetura front-end com AngularJS
 
Blazor #SnetTalks3
Blazor  #SnetTalks3Blazor  #SnetTalks3
Blazor #SnetTalks3
 
Drupal 8 e ReactJS - DrupalCamp Campinas 2016
Drupal 8 e ReactJS -  DrupalCamp Campinas 2016Drupal 8 e ReactJS -  DrupalCamp Campinas 2016
Drupal 8 e ReactJS - DrupalCamp Campinas 2016
 

Destaque

Server Side Responsive Layouts for ASP.NET WebForms using Telerik UI for ASP....
Server Side Responsive Layouts for ASP.NET WebForms using Telerik UI for ASP....Server Side Responsive Layouts for ASP.NET WebForms using Telerik UI for ASP....
Server Side Responsive Layouts for ASP.NET WebForms using Telerik UI for ASP....Lohith Goudagere Nagaraj
 
ProgramaçãO Com Threads – CóDigo Fonte “Conta BancáRia Conjunta”
ProgramaçãO Com Threads – CóDigo Fonte “Conta BancáRia Conjunta”ProgramaçãO Com Threads – CóDigo Fonte “Conta BancáRia Conjunta”
ProgramaçãO Com Threads – CóDigo Fonte “Conta BancáRia Conjunta”mauriciopel
 
MSDN Webcast: Trabalhando com covariância e contravariância no C# 4
MSDN Webcast: Trabalhando com covariância e contravariância no C# 4 MSDN Webcast: Trabalhando com covariância e contravariância no C# 4
MSDN Webcast: Trabalhando com covariância e contravariância no C# 4 Rogério Moraes de Carvalho
 
A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...
A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...
A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...Rogério Moraes de Carvalho
 
IAsyncResult Pattern ou Asynchronous Programming Model (APM)
IAsyncResult Pattern ou Asynchronous Programming Model (APM)IAsyncResult Pattern ou Asynchronous Programming Model (APM)
IAsyncResult Pattern ou Asynchronous Programming Model (APM)Rogério Moraes de Carvalho
 
Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...
Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...
Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...Rogério Moraes de Carvalho
 
Arquitetura MVC, JavaBeans e DAO
Arquitetura MVC, JavaBeans e DAOArquitetura MVC, JavaBeans e DAO
Arquitetura MVC, JavaBeans e DAOLeonardo Sousa
 

Destaque (7)

Server Side Responsive Layouts for ASP.NET WebForms using Telerik UI for ASP....
Server Side Responsive Layouts for ASP.NET WebForms using Telerik UI for ASP....Server Side Responsive Layouts for ASP.NET WebForms using Telerik UI for ASP....
Server Side Responsive Layouts for ASP.NET WebForms using Telerik UI for ASP....
 
ProgramaçãO Com Threads – CóDigo Fonte “Conta BancáRia Conjunta”
ProgramaçãO Com Threads – CóDigo Fonte “Conta BancáRia Conjunta”ProgramaçãO Com Threads – CóDigo Fonte “Conta BancáRia Conjunta”
ProgramaçãO Com Threads – CóDigo Fonte “Conta BancáRia Conjunta”
 
MSDN Webcast: Trabalhando com covariância e contravariância no C# 4
MSDN Webcast: Trabalhando com covariância e contravariância no C# 4 MSDN Webcast: Trabalhando com covariância e contravariância no C# 4
MSDN Webcast: Trabalhando com covariância e contravariância no C# 4
 
A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...
A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...
A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...
 
IAsyncResult Pattern ou Asynchronous Programming Model (APM)
IAsyncResult Pattern ou Asynchronous Programming Model (APM)IAsyncResult Pattern ou Asynchronous Programming Model (APM)
IAsyncResult Pattern ou Asynchronous Programming Model (APM)
 
Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...
Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...
Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...
 
Arquitetura MVC, JavaBeans e DAO
Arquitetura MVC, JavaBeans e DAOArquitetura MVC, JavaBeans e DAO
Arquitetura MVC, JavaBeans e DAO
 

Semelhante a Web Forms x MVC - Uma comparação concisa

ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)Giovanni Bassi
 
ASP.NET WebForms x ASP.NET MVC
ASP.NET WebForms x ASP.NET MVCASP.NET WebForms x ASP.NET MVC
ASP.NET WebForms x ASP.NET MVCFelipe Pimentel
 
Comtec2010 asp.net mvc
Comtec2010 asp.net mvcComtec2010 asp.net mvc
Comtec2010 asp.net mvcTadeu Matos
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Eric Gallardo
 
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010Rodrigo Kono
 
Introdução ao Asp.Net Mvc
Introdução ao Asp.Net MvcIntrodução ao Asp.Net Mvc
Introdução ao Asp.Net MvcGiovanni Bassi
 
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3André Luiz Forchesatto
 
Desenvolvimento web com tecnologias microsoft
Desenvolvimento web com tecnologias microsoftDesenvolvimento web com tecnologias microsoft
Desenvolvimento web com tecnologias microsoftDennes Torres
 
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...anybalrocha
 
JSP - Java Serves Pages
JSP - Java Serves PagesJSP - Java Serves Pages
JSP - Java Serves PagesAmanda Luz
 
Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Rodrigo Kono
 

Semelhante a Web Forms x MVC - Uma comparação concisa (20)

ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)
 
Conheça o ASP.NET MVC 3
Conheça o ASP.NET MVC 3Conheça o ASP.NET MVC 3
Conheça o ASP.NET MVC 3
 
ASP.NET WebForms x ASP.NET MVC
ASP.NET WebForms x ASP.NET MVCASP.NET WebForms x ASP.NET MVC
ASP.NET WebForms x ASP.NET MVC
 
Comtec2010 asp.net mvc
Comtec2010 asp.net mvcComtec2010 asp.net mvc
Comtec2010 asp.net mvc
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014
 
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010
 
Introdução ao Asp.Net Mvc
Introdução ao Asp.Net MvcIntrodução ao Asp.Net Mvc
Introdução ao Asp.Net Mvc
 
Apostila MVC
Apostila MVCApostila MVC
Apostila MVC
 
Web Dev Camp
Web Dev CampWeb Dev Camp
Web Dev Camp
 
Arquitetura de sistemas web
Arquitetura de sistemas webArquitetura de sistemas web
Arquitetura de sistemas web
 
Jheat
JheatJheat
Jheat
 
Java: Por onde começar nos dias de hoje?
Java: Por onde começar nos dias de hoje?Java: Por onde começar nos dias de hoje?
Java: Por onde começar nos dias de hoje?
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 
ASP.NET 5, MVC 6 e além
ASP.NET 5, MVC 6 e alémASP.NET 5, MVC 6 e além
ASP.NET 5, MVC 6 e além
 
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
 
Jsf
JsfJsf
Jsf
 
Desenvolvimento web com tecnologias microsoft
Desenvolvimento web com tecnologias microsoftDesenvolvimento web com tecnologias microsoft
Desenvolvimento web com tecnologias microsoft
 
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
 
JSP - Java Serves Pages
JSP - Java Serves PagesJSP - Java Serves Pages
JSP - Java Serves Pages
 
Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4
 

Web Forms x MVC - Uma comparação concisa

  • 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
  • 9. MVC
  • 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
  • 18. HTML Helpers 18 ou Antes Agora
  • 20. Não é paratodos! É maiscomplexo Exigemais do desenvolvedor Exigeconhecimento de HTML Exigeconhecimento de Javascript, CSS, etc. Curva de aprendizado do web forms elevada.
  • 21. demo
  • 22. Devo usar Web Forms ou MVC??
  • 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
  • 28.
  • 29. Nósjá o temos, se chama: laço de foreach.Conversa entre desenvolvedoresda Microsoft, segundorelatadopor Scott Hanselman, do time do MVC.
  • 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”
  • 33.
  • 36. WebForms Plug-and-Play MVC Expõe a arquitetura
  • 37. WebForms Página Codificação MVC Mod. dos dados  Página
  • 38.
  • 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