sexta-feira, 17 de abril de 2009

ASP.NET: WebForms X MVC

No começo deste mês de Abril foi o lançamento da versão numero 1 do ASP.NET MVC Framework. Você pode realizar o download gratuito através do seguinte site: http://www.asp.net/mvc/. Além do instalador, você também pode baixar uma infinidade de material de apoio, e também o código fonte que é aberto.

A Microsoft anuncia o MVC Framework como uma alternativa ao modelo tradicionalmente utilizado no ASP.NET, baseado no conceito de WebForms. Mas não significa que o MVC vem pra substituir os WebForms, ele vem como uma opção adicional no desenvolvimento de aplicações ASP.NET. O que em minha opinião é muito acertado.

E nesse contexto surge uma polêmica, quase que uma “briga” entre os que defendem os WebForms, e os que agora são a favor do modelo MVC.

Resumindo um pouco a história, o ASP.NET (WebForm) surgiu à oito anos atrás como uma forma de popularizar o desenvolvimento de aplicações Web, adotando o mesmo conceito de eventos que já tínhamos no Windows Forms.

Muita gente não gostou (e ainda não gosta). Reclamam dos eventos, do complexo request, da linguagem baseada em tags, das Sessions, Postbacks e por aí vai. Todas as reclamações, em um grau ou outro tem seu fundamento.

Mas apesar dos defeitos (muitos deles contornáveis), os WebForms sempre tiveram ótimas qualidades, tanto que muita gente utilizou e ainda utiliza. Eu diria que a grande vantagem do ASP.NET WebForms são as ferramentas que o acompanham. Tanto ferramentas da Microsoft quanto de terceiros, que aumentam muito a produtividade.

Ferramentas que oferecem recursos visuais para o desenvolvimento da aplicação, ou os famosos Wizards! Ahh... Esse sim, o grande mal dos desenvolvedores! (rsrsrs) Essa inclusive é outra “briga”. Ou você nunca ouviu (ou disse) a frase: “Programador de verdade não usa Wizard, faz tudo na unha!”. (rsrsrs) É hilário.

Eu sou plenamente a favor de Wizards, geradores de código ou qualquer ferramenta que automatize partes ou todo o processo do desenvolvimento de software! É claro que como desenvolvedores, temos a obrigação de saber fazer sozinhos o que os Wizards fazem, e também saber o momento certo de utilizá-los (tem muita ferramenta ruim por aí, deve se saber identificar).

Mas toda automação se converte em produtividade, que por sua vez se converte em lucro. Qualquer programador com um pouco de visão empreendedora sabe tirar proveito disso. E parte da popularidade e do sucesso do ASP.NET WebForm está aí, na facilidade e produtividade que trouxe no desenvolvimento de aplicações Web.

É nesse cenário que chega o ASP.NET MVC. Como uma opção da casa, para criar no ASP.NET aplicações sob o cultuado padrão MVC (Model-View-Controller). E é claro que ele trás algumas vantagens, como:

- Facilidade para implementação de testes unitários, e possibilidade de um desenvolvimento TDD (Desenvolvimento orientado à testes);

- Maior controle sobre o código HTML gerado, o que agrada bastante aquele povo ali de cima que não gosta das taglibs;

- Uma arquitetura baseada no mapeamento de rotas (ASP.NET Routing), em substituição aos eventos, o que realmente é uma forma mais elegante de se controlar as requisições.

Isso só pra citar as mais evidentes.

Porém, se você está acostumado a utilizar os controles de interface dos WebForms, como GridView, FormsView, etc. Ou usa alguma bilblioteca de terceiros como o DevExpress, esqueça do MVC por enquanto. No MVC nenhum controle desses funciona! E isso vai de encontro ao quesito produtividade. Porque por enquanto meu amigo, o desenvolvimento de aplicações ASP.NET MVC é todo baseado em código.

Até existem alguns Wizards (vejam só.. rsrs) pra facilitar a geração de parte desse código, mas nada comparado ao resultado final que um XtraGrid do DevExpress oferece (http://demos.devexpress.com/ASPxGridViewDemos/Default.aspx), só pra citar um exemplo.

No final das contas essa discussão entre WebForms X MVC é ótima e tomara que perdure. O ASP.NET nunca foi tão democrático. Não importa se um é melhor que o outro, o que importa é que você pode usar qualquer um deles, então faça a sua escolha e siga em frente.

Vamos esperar para, quem sabe um dia, o ASP.NET MVC oferecer a mesma produtividade que os WebForms oferecem hoje. Esse sim seria o ASP.NET ideal!

Mas eu ainda vou fazer uma camiseta: “Eu uso Wizards, e daí?”. Aceito pedidos, alguém topa? (rsrsr)

2 comentários:

  1. Não topo, Rodrigo! Hahaha.

    Talvez seja uma deficiência minha, e talvez afete minha produtividade, mas não consigo usar wizards. Me sinto engessado, de certa forma preso.

    De qualquer forma, endosso o coro da compra. Teria uma camiseta dessas só pelo bom humor. Mas falta o elemento de identificação do humor, que tal colocar uma figura de um real wizard? Pode ser aqueles bem "pixelados" de RPG antigo.

    Parabéns pelo trabalho na .Net Magazine e na Engenharia de Software Magazine, acompanho sempre suas colunas. Ah, e parabéns pelo blog, espero que você aumente a quantidade de posts por aqui!

    ResponderExcluir
  2. Olá Ricardo!

    Excelente idéia!! Já vou procurar essa imagem. rsrsrsr

    Brincadeiras a parte, eu uso wizards, geradores, assistentes, etc, sempre que há ganho em produtividade, mas sem perder o controle e o entendimento do código gerado.

    O importante é usar com moderação... rsrsrs

    Valeu pelo feedback! Prometo aumentar o número de posts em breve.

    Grande Abraço!

    ResponderExcluir