» ASP.NET Core – Web Forms ou MVC?
ASP.NET Core – Web Forms ou MVC? 3 December,
2009 - Diversos - Tags :
ASP.NET, ASP.NET Core, MVC, Web Forms 9 Comments Tweet Este post não tem como objetivo apresentar profundamente as questões técnicas sobre cada tecnologia e sim sobre o ponto de vista de quais os melhores cenários para a aplicação delas. Para informações técnicas, o site www.asp.net trás todo o conteúdo em diversos tipos de formatos (artigos, vídeos, passo-a-passo, etc).
Eu costumo dividir o desenvolvimento Web em dois tipos de desenvolvimentos: sistemas e sites.
Normalmente é executado dentro de um ambiente conhecido e controlado, possui uma quantidade pequena de usuários (200 pessoas por exemplo), é fácilmente controlado com pré-requisitos (para executar utilize o Internet Explorer 7 ou superior na resolução XYZ) e executa processos administrativos, comerciais com um foco muito grande na implementação do negócio, ou seja, praticamente todo o sistema está desenvolvido dentro de uma camada de negócios/dados/banco de dados.
Neste cenário, não existe preocupação alguma com layout, HTML, resolução, etc etc etc.. e até mesmo é totalmente ignorado usuários com baixa velocidade de conexão com internet, padrões W3C, etc.
Este cenário é muito comum em sistemas internos (seja rodando na intranet ou internet).
As principais preocupações são: implementação dos requisitos de negócio, segurança, performance de processamento, infra-estrutura e distribuição. Dificilmente nesse cenário existe a figura de um designer.
Na minha experiência de consultoria, esse é o cenário mais comum nas empresas.
A dificuldade é muito superior em relação a camada de apresentação e claro, as implementações de negócios devem ser integras conforme as especificações e definições de negócio de cada empresa.
Neste cenário existe a necessidade de se rodar em qualquer lugar (navegador de mercado), performance da camada de apresentação é necessária, provavelmente poucos processamentos pesados em servidor, necessidade de seguir os padrões W3C, recursos no client para melhorar a experiência com o usuário, a figura do designer é presente, até mesmo conhecimento pesado em HTML é necessário e a integridade do layout X aplicação é algo extremamente trabalhoso.
Web Forms ou MVC
ASP.NET Core – plataforma ÚNICA da Microsoft para criação de aplicações Web. Os recursos do ASP .NET estão implementados aqui! Logo, Web Forms e MVC oferecem os mesmos recursos Core.
Web Forms - temos uma plataforma extremamente produtiva em questões de controles prontos, validação de dados de formulários, criação de formulários, etc. Além de total controle do ciclo de carregamento da página, oferece uma plataforma para os desenvolvedores ideal para o desenvolvimento de sistemas. Já para desenvolvimento de sites, pode trazer algumas dificuldades, principalmente no controle do HTML (em alguns casos temos que abrir mão da produtividade para controlar 100%), missão complicada de controlar/diminuir o tamanho do View State, que pode ser muito ruim em sites, resumindo, para desenvolvimento de sites podemos considerar que é uma plataforma boa porém com restrições de controle e produtividade.
MVC – temos uma plataforma que pode ser totalmente controlada pelo desenvolvedor, porém algumas implementações de produtividade disponíveis no Web Forms ainda não estão disponíveis. Sugere a utilização de um padrão, no caso o MVC (divisão de papeis, testável,etc), mas claro, não garante de forma alguma que isso será seguido, mas já faz com que as pessoas pensem em usá-lo. Para desenvolvimento de sistemas considero uma plataforma boa, porém com alguns prejuizos de produtividade e que talvez em algumas empresas será totalmente repreendido por misturar o código HTML com o código da lógica da interface (claro que se for seguido o padrão, estamos falando de pouco código aqui!). Já para desenvolvimento de sites é a plataforma ideal pois o desenvolvedor tem todo o poder de controlar 100% as suas necessidades.
Web Forms – Chega no framework 4.0 e Visual Studio 2010 na versão 4, a versão atual em produção é a 3.5.
MVC – Chega no framework 4.0 e Visual Studio 2010 na versão 2, a versão atual em produção é a 1.0.
A Microsoft está criando um leque, hoje temos duas possibilidades, Web Forms e MVC, e quem sabe futuramente não teremos mais… vale sempre lembrar que o Core será o mesmo, proporcionando uma evolução constante nas duas tecnologias.
Next Post: 5 dicas – Comunidade >> << Previous Post: 5 dicas – Implantação do Team Foundation Server 9 Responses to "ASP.NET Core – Web Forms ou MVC?"
Rodrigo Kono says:	03/12/2009 at 15:14	Muito bom Tarifa.
Eu também costumo fazer essa divisão entre sistemas/sites. Porém, a "não preocupação" com os padrões é válida para os sistemas que rodam em uma rede interna(intranet), onde se tem conhecimento de quais recursos o cliente usa e irá rodar a app. Para um sistema que irá rodar na web (internet) de forma geral, eu ainda acho importante realizar todos os passos (nesse caso seria um mix de site com sistema).
Sobre o ASP.NET MVC quem chegou a usar a versão 1.0 e agora testa a beta da versão 2.0 vê que deu uma melhorada boa. Creio que ainda irá melhorar bastante. Um dos grandes trunfos do ASP.NET MVC é o controle da saída no cliente (XHTML/CSS/JS). Para sites isso é perfeito! Com webform temos algumas dificuldades com o viewstate, id de controles etc.
Acho que essa discussão vai ser boa em 2010 com o ASP.NET MVC 2.0 x ASP.NET WEBFORMS 4.0 (ele vem com tudo). Eu tenho minhas impressões e cheguei a escrever nesse post: http://devgoias.net/artigo_ler.aspx?ID=52
Finalizando, quem não dá importância e não sabe trabalhar com a view/interface da app web, não vai conseguir se dar bem com ASP.NET MVC. #prontofalei.
ps.: quase um post dentro do post.
Reply	Bruno Kenj says:	03/12/2009 at 16:31	Senhores do conselho…
Usabilidade + Arquitetura de Informação = É básico!
Acessibilidade = Pode depender do publico alvo
Eu não condeno de maneira nenhuma o WebForms por conta do ViewState. Claro, tem que saber usar, se não, performance se torna um problema. Da mesma forma que não adianda por um UpdatePanel do começo ao final da página.
Com WebForms, tenho trabalhado com ASP.NET AJAX, WCF e Muito Javascript e na grande, grande maioria das vezes, tenho controle do HTML gerado, sendo bem satisfatório em termos de "cross-browser" e performance.
Na pior das hipóteses, podemos aplicar alguns padrões (Strategy, Factory, Singleton) para usarmos o ViewState em Cache ou Session, pra não ficar indo e vindo do Client a cada Request.
Com relação ao MVC, realmente temos total controle da apresentação, pois temos que fazer na mão, mas isso implica em uma equipe mais capacitada.
Também acredito, Tarifa, como você disse no Twitter durante o PDC09, que o futuro é o Core do ASP.NET permitir a flexibilidade dos dois cenários.
Já trabalharam com esses templates do ASP.NET AJAX Preview? Fantástico.
Reply	Cucharro says:	03/12/2009 at 16:50	Muito bom esse post. Vale ressaltar também que o asp.net mvc está em sua fase inicial, oferecendo poucos recursos de produtividade, porém, fornece mecanismos de extensibilidade muito bons, que permitem a criação de componentes de criação de interface e extensores que demandaram um trabalho maior no inicio do projeto mas que possibilitaram ganhos de produtividade para os outros projetos. E também a flexibilidade proporcionada pelo padrão mvc possibilita a criação de sistemas de alta qualidade devido a sua testabilidade através de testes unitários.
Reply	Cialis says:	10/03/2010 at 23:08	Xz0Xez Excellent article, I will take note. Many thanks for the story!
Reply	Raphael Marques says:	16/03/2010 at 11:39	Caros… realmente é válida a divisão entre sites e sistemas… tendo ambos particularidades que os definem bem… Quanto ao uso do MVC… Participei recentemente da implementação de um projeto de complexidade relativamente alta todo baseado em MVC… e realmente… é um encanto !!! A dificuldade inicial é obvia… a produtividade é reduzida em realação ao webforms… porém os ganhos justificam todos os entraves… principalmente a questão do código que está todo em sua mão… e o principal… a produtividade que se perde inicialmente… é recuperada na Manutenção que se dá de forma mais tranquila uma vez que as camadas são completamente independentes e lógico se utilizarmos bom senso na implementação e isolarmos bem as regras do restante…. Sem contar a testabilidade do sistema/site… o que no final das contas reflete em um produto final de maior qualidade!
Reply	Heróis da T.I. » Blog Archive » HeroCast 09 – WebForms ou MVC? says:	21/12/2011 at 07:10	[...] http://www.alexandretarifa.com.br/?p=9 [...] Reply	fernando says:	29/06/2012 at 15:43	Acho totalmente o contrario do que você descorreu no artigo.
Entrou muito na sua opinião, no que você usa, enfim..é totalmente o oposto.
O ASP.NET MVC é muito amarrado, pouco mutável, para dar manutenção nele você precisa seguir aquela estrutura, se você precisar adotar métodos alternativos mais práticos, a curto prazo, acaba ficando amarrado naquele formato.
Ja webforms dão mais liberdade pra você mexer no HTML. Trabalhar com controles mais genéricos, tags, e outros recursos que dependem menos do framework
Reply	Alexandre Tarifa says:	05/07/2012 at 19:36	Olá Fernando, sem problemas é sua visão e concordo com ela por essa visão.
Como é uma opinião minha, tenho certeza que não terei 100% de aprovação Abs
Reply	minecraft for free says:	01/03/2013 at 11:38	I'll immediately seize your rss feed as I can't in