Futuro ASP.net: WebForms ou MVC?

Olá e um feliz ano novo caros amigos do PTI!

O post de hoje é sobre a mais nova discussão dos programadores .Net.

Amigos, essa discussão é tão épica quanto as tradicionais Pelé ou Maradona para os futebolísticos (eu),  Ragnarok ou Priston Tale para os Old Geeks (eu) ou ainda férias no ap. de NY ou Miami (piada, né?).

Eu, como desenvolvedor desktop há quase 5 anos, não posso deixar de exaltar a mão na roda que o WebForm foi pra mim. Arrasta aqui, cria DataSource ali, pagina o grid, Membership control lá e Validation Controls acolá. Fim. Engraçado Marcelo, você fala de WebForms e tem a covardia de não citar os controles Ajax. O que é melhor do que escrever uma tag HTML que tudo que estiver dentro dela funcionará de forma assíncrona com o servidor? E ainda por cima, ao invés de eu escrever Javascript, escreverei C# manipulando o JSON apenas no retorno e só quando for preciso. Eu lhe respondo: melhor que isso, é ter controle de tudo isso.

Baseado nas leituras/experiências que venho tendo nos últimos raros projetos WEB que participo, compartilharei com vocês algumas observações sobre WebForms e MVC:

  • Nunca tenha um projeto parte MVC, parte WebForm. Ponto de vista técnico: OK. Ponto de vista de manutenção: Catástrofe de proporções bíblicas;
  • Se o projeto é novo e a sua equipe não está acostumada com linguagens gerenciadas pelo .Net (vide C#, C++ e VB), aconselho o uso de WebForms. O framework MVC foi programado em C# e faz uso extensivo de recursos complexos da plataforma, como Delegates e Events, Métodos de Extensão (lembre-se dos HtmlHelpers), Lambda Expressions etc. Observe, não estou encoranjando você de não aprender estes termos, estou apenas sendo realista. Os projetos sempre são pra ontem e quanto mais conhecimento você adquire em menos tempo, melhor. E acredite amigo, são assuntos complexos (para de se achar leitor .Net, admita que você comeu unhas ao ver estes termos pela primeira vez);
  • Uso intenso de Ajax? WebForms por favor. Atenção: Essa minha afirmação tende a ficar arcaica a cada minuto que passa.
  • O WebForms foi destinado a programadores Desktop. Se você conhece C# e já está acostumado a lógica HTTP – Request e Reponse, Client e Server,  feche os olhos para WebForms e caia de cabeça no MVC. A learning Curve é rápida, a padronização é séria e você tem controle total do html gerado.
  • Necessita de modularização total no seu software? Use MVC. A microsoft seguiu a risca a programação para interfaces e abstract classes. As classes são todas fechadas para modificação e abertas para extensão, de forma que todo o Framework é plugável.
  • No MVC você pode utilizar Design Patterns com mais naturalidade. As Views não são engessadas que nem os aspx dos WebForms. Em contra partida, diga adeus a aqueles seus “Server Controls” favoritos.
  • Marcelo! Minha página tem 9845104 kbytes! Apesar de poder desabilitar o ViewState, o WebForm faz uso de uma sequência absurda de eventos e roundtrips client/server. Atenção: não estou afirmando que o MVC roda mais rápido que o WebForms, apenas que as páginas ocupam menos espaço. Se você acha que estou sendo ambíguo, saiba que o MVC usa reflection com manipulação de strings pra alcançar as páginas, enquanto no WebForms é simplesmente escolhido o arquivo o que é anos luz mais rápido.
  • O MVC foi projetado para adequar cada partezinha a um Test Unitário. Ponto final.

Amigo leitor, estas foram algumas breves observações trazendo alguns prós e contras destes caras.

Se você leu tudo e entendeu, tenho três teorias :

1)Você não tem mais nada pra fazer.
2)Você vai esquecer tudo isso e vai pro PHP.
3)Você vai aprender AGORA mesmo MVC e vai jurar nunca mais adiar aquela semaninha de estudo do Design Pattern mais admirado e usado no mundo.

“Eu devia ter sido fazendeiro, assim como meu pai me disse.”

Um abraço

Marcelo Bernart Schmidt

Mais artigos deste autor »

Programador .NET certificado MCP, MCTS F2.0, MCTS F3.5 e MCTS W2.0 nas linguagens VB.Net e C#.Net. Tem como hobbie ministrar cursos de programação em C# e orientação a objeto. O pai de Marcelo gostaria que ele fosse fazendeiro, fato ao qual não se concretizou. Marcelo ainda sente remorso do conselho do pai ao ver um programa com problemas de compilação.


6 Comentários

Abraão Levi
2

Já trabalhei com projetos web na plataforma .net por cerca de 1 ano e meio e realmente tenho que concordar com isso e acredito que o futuro do asp.net seja MVC mesmo… para projetos pequenos os webforms dão conta do recado e até torne mais rápido o desenvolvimento se você não está familiarizado com o asp .net MVC, mas se tratando de projetos maiores você pode ter problemas na organização e manutenção se utilizar webforms.
Coisas que eu aprendi com asp.net: Não abuse de ajax! e que um dia você vai migrar para outras tecnologias como php (principalmente frameworks como zend e cakephp) e ruby (on rails)
abraços 🙂

Carlos Junior
4

Eu realmente não entendo. Todos falam que o MVC é a panacéia para grandes projetos. Em contra partida, o não uso de AJAX.
Como não usar AJAX? Estamos falando de Web 2.0 e quem sabe Web 2.x! Alguém consegue ver um mundo Web 2.0 sem Ajax?
Temos como exemplo o próprio Facebook, Twitter entre muitos outros. Eles não usam Ajax?
A minha intenção neste comentário não é gerar polêmica, mas sim saber realmente, qual o motivo do futuro do desenvolvimento no .NET ser o MVC (grandes projetos) ir de encontro a utilização do framework mais utilizado por todos os desenvolvedores (JQuery).
Um grande abraço!

infbiro
5

Como Desenvolvedor c# nativo acho que o MVC veio para somar
é o que sempre falo sempre é melhor conhecer mais sempre

Renato Mattos
6

Não existe a tão sonhada “Bala de Prata” e MVC esta longe de ser. Desenvolvo a 12 anos, dos quais 6 em C# com Asp.Net e Windows Forms. A melhor arquitetura nem sempre é a viável. Tudo é para ontem e tudo possui o fator custo. A realidade e bem diferente da ilusão que temos da tecnologia. Nos empolgamos com patterns, vamos na crista da onda do modismo mas até hoje nada é mais rapido do que o cobol para tratamento de dados eheheheheh. Absolutamente nada!! MongosDB talvez…mas o principio do cobol é justamente esse.
Não pensar em Ajax impossível!!! na web atual. Crie uma grid cheio de opções, arrasta pra ca, ordena daqui, faz um total ali, tudo dinamico, sem refresh da pagina em MVC. Quando a demanda começar a exigir telas ricas com controles inteligentes e dinamicos vão recorrer a pacotes de controles MVC prontos no mercado, pq fazer isso na unha vai pesar no bolso de quem paga e muito, podendo afundar o projeto.
De fato o MVC resolve o problema das regras de negocio de telas alem dos testes unitários em tela. E o ganho com isso ao meu ver é um fator de peso muito forte. Mas vai ter muito trabalho para fazer views ricas em controles, vai se matar em javascript, vai se matar para colocar ajax.
Não sou contra MVC, nem sou contra WebForms e nem a nenhum patterns, apenas devemos avaliar com a realidade do projeto e não levantar bandeiras , bater o pé e se fechar no nosso proprio orgulho de desenvolvedor que sempre acha saber tudo.
O fator escolha do patterns de um projeto quem define são as caracteristicas do projeto (tempo, orçamento, qualidade da equipe, complexidade do negocio, caracteristicas dos usuarios, performance necessária e etc) Se um arquiteto fizer sua escolha olhando apenas o modismo pode afundar uma empresa, mascarar parte dos seus erros com elevado custo de hardware.
[]’s

Deixe seu comentário

Seu endereço de e-mail não será publicado. Campos com * são obrigatórios!