Início » ASP.NET MVC » Visão Geral do ASP.NET MVC

Visão Geral do ASP.NET MVC

O conteúdo desta página resulta da tradução do artigo ASP.NET MVC Overview originalmente presente no site do MSDN. A página correspondente pode ser conferida aqui.

Neste artigo vamos aprender sobre as diferenças entre uma aplicação ASP.NET MVC e uma aplicação ASP.NET Web Forms. Vamos aprender, também, sobre como decidir quando construir uma aplicação ASP.NET MVC.

A arquitetura MVC (Model-View-Controller) separa uma aplicação em três componentes principais: o modelo, a visão e o controle. O framework ASP.NET MVC fornece uma alternativa ao ASP.NET Web Forms criando aplicações Web baseadas no MVC. O framework ASP.NET MVC é leve, e é um framework altamente testado que (assim como aplicações baseadas em Web Forms) é integrado com características existentes do ASP.NET, tais como master pages e autenticação baseada em filiação. O framework MVC é definido no namespace System.Web.Mvc e é fundamental, e tem parte suportado no namespace System.Web.

MVC é um padrão de design que muitos desenvolvedores estão familiarizados. Alguns tipos de aplicações Web serão beneficiados pelo framework MVC. Outros continuarão a usar aplicações ASP.NET tradicionais que é baseado em Web Forms e postbacks. Outros tipos de aplicações Web combinarão as duas abordagens; nenhuma abordagem exclui a outra.

O framework MVC inclui os seguintes componentes:

MVC

Figura 1: Invocando uma ação do controller que espera um valor como parâmetro

* Models: objetos do modelo são as partes da aplicação que implementa a lógica para a aplicação. Frequentemente, objetos do modelo recuperam e armazena estados do modelo numa base de dados. Por exemplo, um objeto Produto pode recuperar informação de uma base de dados, operar sobre ele, e então redigir informações atualizadas de volta numa tabela Produtos no SQL Server.

Em pequenas aplicações, o modelo é frequentemente um conceito separado ao invés de físico. Por exemplo, se a aplicação só lê um data set e envia-o para a view (visão), a aplicação não tem uma camada de modelo físico e classes associadas. Nesse caso, o data set assume o papel de um objeto do modelo.

* Views: visões são os componentes que mostram as UI (User Interface – Interface com o Usuário). Tipicamente, esse UI é criado a partir dos dados do modelo (model). Um exemplo seria uma visão editada de uma tabela de Produtos que mostra Text Boxes, Drop-Down Lists e Check Boxes baseados no estado atual dos objetos relacionados a Produtos.

* Controllers: controladores são os componentes que manipula a interação com o usuário, trabalha com o modelo (model), e, por último, seleciona uma visão (view) para exibir a UI. Numa aplicação MVC, a visão só exibe informações; o controlador manipula e replica ao usuário entrada e interação. Por exemplo, o controlador manipula valores de query e/ou string, e passa esses valores para o modelo, que, por sua vez consulta a base de dados usando esses valores.

O padrão MVC ajuda você a criar aplicações que separa diferentes aspectos da aplicação (lógica de entrada, regras de negócios e lógica da UI), enquanto fornece um acoplamento entre esses elementos. O padrão especifica onde cada tipo de lógica deverá estar na aplicação. A lógica da UI pertence a visão. A lógica de entrada pertence ao controlador. Regras de negócios pertencem ao modelo. Essa separação ajuda você a gerenciar a complexidade quando você construir uma aplicação, que permite a você focar em um aspecto da implementação numa hora. Por exemplo, você pode focar na visão sem depender da regra de negócios.

As aplicações feitas no padrão ASP.NET MVC são mais fáceis de serem testadas do que aplicações baseadas em ASP.NET Web Forms. Por exemplo, numa aplicação ASP.NET baseada em Web Forms, uma única classe é usada para mostrar a saída e para responder ao usuário. Testes automáticos para aplicações ASP.NET baseadas em Web Forms podem ser complexos, porque para testar uma página individual, você deve instanciar classes da página, todos seus controles, e classes dependentes na aplicação. Pelo fato de muitas classes serem instanciadas para rodar a página, pode ser difícil escrever testes que foquem exclusivamente em partes individuais da aplicação. Testes para aplicações ASP.NET baseadas em Web Forms podem, portanto, serem mais difícil para implementar do que testes de uma aplicação MVC. Além disso, testes para uma aplicação baseada em Web Forms requerem um servidor Web (Web server). O framework MVC desacopla os componentes e faz grande uso das interfaces, que fazem possível testar componentes individualmente, isolados do resto do framework.

O não-acoplamento entre os três componentes principais de uma aplicação MVC também promove desenvolvimento paralelo. Por exemplo, um desenvolvedor pode trabalhar na view, um segundo desenvolvedor pode trabalhar na lógica do controller, e um terceiro pode focar nas regras de negócios do model.

Decidindo quando criar uma aplicação MVC

Você deve considerar cuidadosamente se deve implementar uma aplicação Web utilizando ASP.NET MVC ou ASP.NET Web Forms. O framework MVC não substitui o modelo Web Forms; você pode usar outro framework para aplicações Web.

Antes de você decidir se deve usar o framework MVC ou Web Forms para um Web Site específico, pese as vantagens de cada um.

Vantagens de uma aplicação Web baseada no modelo MVC

O framework ASP.NET MVC oferece as seguintes vantagens:

  • Torna-se fácil gerenciar a complexidade da aplicação dividindo-a entre Model, View e Controller.
  • Não utiliza view state ou formulários baseados em servidor. Isso faz com que o framework MVC seja ideal para desenvolvedores que querem total controle sobre o comportamento da aplicação.

  • Utiliza o Front Controller que processa pedidos de uma aplicação Web através de um único controller. Isso permite que você projete uma aplicação que suporte uma infra-estrutura rica. Para mais informações, veja sobre Front Controller no site do MSDN.

  • Fornece melhor suporte para TDD (Test-Driven Development).
  • Funciona bem em aplicações Web que são suportadas por grandes times de desenvolvedores e Web Designers que precisam de um alto grau de controle sobre o comportamento da aplicação.

Vantagens de uma aplicação Web baseada em Web Forms

O framework baseado em Web Forms oferece as seguintes vantagens:

  • Suportam eventos que preservam o estado da aplicação sobre o HTTP, que beneficia os ramos de negócios no desenvolvimento de aplicações Web. As aplicações baseadas em Web Forms fornecem dezenas de eventos que são suportados em milhares de server controls.

  • Utiliza o padrão de Page Controller que adiciona funcionalidades individuais às páginas. Para mais informações, veja Page Controller no site do MSDN.

  • Utiliza view state ou formulários baseados em servidor, que pode tornar o gerenciamento do estado da informação mais fácil.

  • Funciona bem para pequenos times de desenvolvedores Web e designers que querem levar vantagem do grande número de componentes disponíveis para o rápido desenvolvimento de aplicações.

  • Em geral, é menos complexo para o desenvolvimento de aplicações, porque os componentes (classes da página, controles, etc.) são hermeticamente integrados e usualmente requerem menos código do que o modelo MVC.

Características do framework MVC

O framework MVC apresenta as seguintes características:

  • Separação das tarefas da aplicação (lógica de entrada, regras de negócios e lógica da UI), testes, e TDD por padrão. Todos os contratos do núcleo do framework MVC são baseados pela interface e podem ser testados usando objetos simulados, que imitam o comportamento dos objetos atuais na aplicação. Você pode testar unidade por unidade da aplicação sem ter que rodar os controladores de um processo ASP.NET, que faz testes unitários rápidos e flexíveis. Você pode usar algum framework de teste unitário que seja compatível com o .NET Framework.

  • Um framework extensível e conectável. Os componentes do framework ASP.NET MVC são projetados de forma que podem ser facilmente substituídos ou personalizados. Você pode ligar no seu próprio mecanismo de exibição, política de roteamento URL, ação e/ou método de serialização de parâmetros, e outros componentes. O framework ASP.NET MVC também suporta o uso de DI (Dependency Injection) e IOC (Inversion of Control), que são modelos de containers. DI permite que você “injete” objetos numa classe, ao invés de confiar numa classe para criar seus próprios objetos. IOC especifica que se um objeto requere outro objeto, os primeiros objetos devem obter o segundo objeto de uma fonte externa tal como um arquivo de configuração. Isso faz com que os testes sejam fáceis.

  • Um poderoso componente de mapeamento URL que deixa você construir aplicações que tem compreensíveis URLs. URLs não tem que incluir extensões de nomes de arquivos, e são projetados para suportar padrões de nomeação de URL que trabalha bem com abordagens SEO (Search Engine Optimization) e REST (Representational State Transfer).

  • Suporte ao usar markup existente em páginas ASP.NET (arquivos .aspx), user control (arquivos .ascx), e master pages (arquivos .master). você pode usar características existentes no ASP.NET com o framework ASP.NET MVC, aninhadas em master pages, expressões inlines (), server controls, templates, data-binding, localization e etc.

  • Suporte a características existentes no ASP.NET. ASP.NET MVC permite que você use características tais como Forms Authentication e Windows Authentication, autorização de URL, membership e roles, output e data caching, session e gerenciamento de profile state, health monitoring, configuração de sistema, e provider architecture.

Andrielle Azevedo de Paula


2 Comentários

  1. Silvio Ferreira disse:

    Andrielle,

    Ótimo artigo! Obrigado! Queria saber se você indica algum conjunto free (ou de baixo custo) de componentes de interface para construção de views ASP MVC, que enriqueçam o pacote básico.

  2. Felipe Guerra disse:

    Olá Silvio,
    Você usar qualquer Layout HTML ou CSS disponível na Internet, e adicionar jQuery para deixar a Interface mais rica!
    Abs!

Deixe uma resposta

Faça o login usando um destes métodos para comentar:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: