Os desenvolvedores ASP.NET devem aprender ASP.NET MVC?

by Anderson 12. July 2009 15:50

Muitas discussões dos desenvolvedores sobre se devem usar ou aprender a ASP.NET MVC tem sido recorrente em blogs, Twitter e fóruns nas últimas semanas.  As opiniões variam de não recomendar até ao ponto de que todos os desenvolvedores deveriam aprender. InfoQ tentou resumir um pouco da recente atividade em relação a este tópico.

Rob Conerey (funcionário da Microsoft no time de ASP.NET MVC e criador do SubSonic) explica porque desenvolvedores deveriam aprender ASP.NET MVC, depois de observar questões levantadas na comunidade.

Em sua introdução ele começa descrevendo WebForms como "A Grande Mentira":

WebForms é uma mentira. Sua abstração embrulhada em decepção coberta com molho de mentira servido em um prato cheio de diversão e um truque bem pensado. Nada que você faz com WebForms tem é ver com Web - você deixa ele fazer o trabalho para você.

Isto, amigos, é algo importante (pelo menos para mim): Você está trabalhando em uma mentira. A web não é 'stateful' e trabalha com esta coisa chamada HTML enviada através de fios usando outra coisa chamada HTTP - você precisa sabê-los, amá-los e senti-los nas suas veias.

Rob lista 7 razões para usar ASP.NET MVC ou em suas próprias palavras - 7 Razões Para Parar de Me Chamar De Idiota:

  1. Testabilidade
  2. Controle sobre HTML
  3. Extensibilidade
  4. Faz você pensar
  5. ...Diferentemente: Javascript não enche o saco
  6. Aprendendo novos conceitos
  7. É engraçado

E conclui que:

Ponto proncipal: Eu estou me divertindo novamente ao programar web e acho que é muito motivador, pelo menos para mim e para meus gatos. Ainda uma comparação, com certeza, mas acredito que um pouco mais direto. Você não tem nenhum motivo para não aprender MVC "mas vou permitir que possa ter uma razão ou duas para você continuar com WebForms."

Joe Brinkman (desenvolvedor em tempo integral noDotNetNuke) rapidamente seguiu com uma resposta, criticando Rob por não escolher "UMA BOA razão para aprender MVC", e lista sua própria:

  1. Vai te expor a uma arquitetura diferente
  2. Você será forçado a se tornar intimamente faimilar com HTML e HTTP
  3. MVC promove testes unitários
  4. MVC o fará ver o quanto você ganha por lidar com WebForms

Joe conclui dizendo:

Então em resumo, você deve realmente conferir MVC.  Mas não pelas razões que Rob enumerou.  Você deve explorar MVC porque ao final você pode ter aprendido algo que o fará um programador web melhor, não importa que plataforma você escolha.

Rob e Joe basicamente concordam no mesmo, que desenvolvedores ASP.NET devem aprender ASP.NET MVC, mas discordam no porquê dos argumentos.Karl Seguin no entanto tem uma diferente opinião e pergunta "se ASP.NET é uma solução crua"?:

Ser capaz de escrever sistemas complexos de uma maneira limpa é um bom começo, mas dado onde o desenvolvimento web geralmente se encontra, e outras plataformas em específico, ASP.NET MVC larga muito atrás (Perl sendo a única que eu consigo pensar que é pior).

Há uma pequena questão que uma grande parte do problema é que este é realmente um stack VC - não há pensamento, suporte e ferramentas para o Modelo. Quando você compara as milhares de linhas que você vai acabar escrevendo para seu repositório/dal/linq/nhiberate para outros stacks MVC (que normalmente somente requerem que seus modelos herdem de uma classe), você já está em uma série desvantagem de produtividade. Mas o real impacto é na verdade muito pior - você perde qualquer coesão de propósito através dos controllers e views. Não há maneira de gerar labels HTML de propriedades modelo, ou validação no lado do cliente.
...
Existem algumas boas notícias, e que toda esta "infraestrutura" é reutilizada, que fazem projetos como S#arp Architecture possíveis. No entanto, eu ainda estou cético que estes projetos possam realmente ter sucesso contra frameworks melhor integrados.

 Jeremy D. Miller (um dos criadores do FubuMVC) lista alguns prós e contras:

CONTRAS:
"o framework MVC não é eficiente a não ser que você planeje arregaçar as mangas e produzir uma infraestrutura específica para seu projeto para preencher no "M", atingir melhor testabilidade, sincronização de tela mais fácil, e HTML helpers mais produtivos"

...
PRÓS:
É muito fácil e direto para pegar o framework MVC pelos chifres e customizar para seu benefício.

Jeremy conclui dizendo:

Eu fico com a afirmação que o ASP.Net MVC framework, no fim das contas, é uma melhor maneira de construir aplicações web que a "abstração embrulhada em decepção coberta com molho de mentira servido em um prato cheio de diversão e um truque bem pensado,"  mas neste ponto é provavelmente uma ferramenta restrita para amigos que sejam do tipo "early adopters"

Jeffrey Palermo (atualmente escrevendo o livro “ASP.NET MVC in action”) declara que “Você não deve usar ASP.NET MVC se…”:

  • Você não esta muito confortável com polimorfismo
  • Você não deseja escrever no topo de um framework
  • Você utiliza controles de terceiros para muito da interface de usu?rio
  • Você é contra utilizar bibliotecas open-source

Mas continua com:

O framework ASP.NET MVC é um framework facilitador.  Não é um framework que "pega na sua mão".   Não é um framework “ASP.NET 101” .  Você tem controle total sobre tudo.  Padrões de interface de usuário no espaço da Web não são tão padronizados para que nós possamos abandonar controles para usar frameworks que trabalham de uma maneira "padrão".   Acesso a dados alcançou este ponto onde nós sabemos que precisamos Criar, Ler, Atualizar e Apagar, cascateando persistência, lazy loading, etc.   Existe muitos mapeadores objeto-relacional (ORM) que suportam as operações comuns, e muitos desenvolvedores estão satisfeitos desistindo do controle completo sobre o acesso a dados devido a forma parecida que os ORMs líderes trabalham (Hibernate/NHibernate).

Existem é claro muitos outros que expressaram as suas opiniões, mas InfoQ acha que as acima resumem muitos dos argumentos a favor e contra de aprender/usar ASP.NET MVC.


Coteúdo do Site: http://www.infoq.com/br/news/2009/05/should-devs-learn-aspnetmvc
Postado por Jon Arild Tørresdal , traduzido por André Pantalião em 12 Mai 2009 05:06 PM

 
Sites relacionados ao assunto:
  1. Criando um aplicativo de Filme usando Banco de Dados:
    Stephen Walther desenvolve uma aplicação do início ao fim em ASP.NET MVC. Este tutorial é uma ótima introdução para as pessoas ques estão querendo aprender ASP.NET MVC Framework e que querem ter uma noção do processo de construção.
  2. Entendendo: Models, Views e Controllers:
    Confuso sobre Models, Views e Controllers? Neste tutorial, Stephen Walther introduz as diferentes camadas de uma aplicação ASP.NET MVC.
  3. Entendendo: Controllers, Controller Actions, and Action Results:
    Stephen Walther introduz os Controllers do ASP.NET MVC. Você aprenderá a criar novos controllers e retornar resultados diferentes para cada tipos de ação.
  4. Resumo sobre ASP.NET MVC Routing:
    Stephen Walther mostra como o ASP.NET MVC mapeia os request do Navegador.
  5. Prevenir ataques de JavaScript Injection:
    Este tutorial explica como você pode facilmente derrotar estes tipos de ataques codificando seu HTML.
  6. Criando HTML Helpers Customizado:
    O objetivo deste tutorial é mostrar como você pode criar HTML Helpers personalizada que você pode usar no seu projeto MVC. Você pode reduzir a quantidade de digitação de tags HTML.
  7. Exibindo uma tabela de banco de dados:
    Neste tutorial, demonstrar dois modos de exibição de um conjunto de registos de dados. Demonstra dois métodos de formatação de registro em uma tabela HTML.
  8. Autenticando usuários com Forms Authentication:
    Aprenda a usar o atributo [Authorize] para proteger determinadas páginas MVC na sua aplicação. Você aprenderá como usar o "Web Site Administration Tool" para criar e gerenciar users e roles.

Tags: ,

Artigos | C Sharp

Comments

9/19/2009 3:26:23 AM #

Hospedagem

Anderson tudo bem?
Sabe me dizer se existe algum filtro para bloquear o envio de mensagens na desejaveis para o blogengine?

Hospedagem Brazil

9/19/2009 7:48:14 PM #

anderson

Nunca tive dificuldades neste sentido, posso pesquisar algo para tentar te ajudar.

anderson Brazil

9/19/2009 8:13:10 PM #

Anderson Damasio

Voce deve estar se referindo no exemplo dessas mensagens que recebi neste post, é isso?

Anderson Damasio Brazil

9/19/2009 8:30:49 PM #

Hospedagem

Correto, gostei muito da solução tenho um cliente que estava querendo um blog  em solução dot.net para integrar com a ambiente dele, porém fiquei  meio preocupado quando vi esses spam acima e rosolvi a  perguntar para  você antes de indicar a solução para ele.

Hospedagem Brazil

9/19/2009 8:46:02 PM #

Anderson Damasio

Isso é complicado mesmo, porém voce pode deixar a opção de moderação de comentário abilitada no painel de controle, acho que isso pode resolver, dependendo da sua situação.

Anderson Damasio Brazil

Add comment


(Will show your Gravatar icon)

  Country flag

biuquote
  • Comment
  • Preview
Loading



Powered by BlogEngine.NET 1.5.0.7
Theme by Mads Kristensen

Anderson Damasio

Desenvolvedor Java e .Net C# atuando na área desde 2004.

Tags para Pesquisa