Introdução Ao MVC
Artigos Científicos: Introdução Ao MVC. Pesquise 862.000+ trabalhos acadêmicosPor: vitorfleal • 17/10/2014 • 8.779 Palavras (36 Páginas) • 258 Visualizações
Visão Geral ASP.NET MVC
A arquitetura Model-View-Controller (MVC) proporciona a separação da aplicação em três componentes: Model, View e Controller. O ASP.NET MVC é um framework de apresentação altamente testado e integrado aos recursos do ASP.NET, como master-pages e membership-based authentication (da mesma forma como as aplicações desenvolvidas com ASP.NET Web Forms). O framework MVC é definido pelo Namespace System.Web.Mvc, parte fundamental do Namespace System.Web.
Definição
MVC é um modelo de design padrão, utilizado por muitos desenvolvedores. Algumas aplicações Web explorarão os novos recursos do MVC framework. Outras continuarão utilizando o modelo tradicional baseado em Web Forms e postbacks. Outras aplicações combinarão as duas abordagens. Nenhuma das abordagens exclui a outra.
O MVC framework inclui os seguintes componentes:
Figura 1: Componentes do ASP.NET MVC
Models
O objeto Model é a parte da aplicação que implementa a lógica para a camada de dados da aplicação. Frequentemente, o objeto Model é responsável por recuperar e persistir o estado do modelo no banco de dados. Por exemplo, um objeto Produto pode recuperar informações do banco de dados, operar com estas informações, e então persistir a informação atualizada na tabela de Produtos no SQL Server.
Em aplicações pequenas, o objeto Model é frequentemente separado conceitualmente e não fisicamente. Por exemplo, se a aplicação faz apenas a leitura de um conjunto de dados e os exibe utilizando um objeto View, a aplicação não terá necessariamente uma camada de dados física. Neste caso, o objeto Model representaria esta camada.
Página 5
Views
Views são componentes que exibem a interface de usuário (UI). Tipicamente, esta UI é criada a partir do modelo de dados. Um exemplo seria um objeto View para editar a tabela de Produtos. Este objeto View exibe controles como caixas de texto (TextBox), caixas de listagem (DropDownList), e caixas de verificação (CheckBox) com dados que representam o estado atual do objeto Produto.
Controllers
Os objetos Controllers são componentes que gerenciam a interação do usuário, operam o objeto Model, e por último selecionam um objeto View para exibir os dados na camada do usuário (UI). Numa aplicação MVC, o objeto View apenas exibe informações, o objeto Controller gerencia e responde às entradas e interações do usuário. Por exemplo, o Controller gerencia os valores passados através de query-string, e passa esses valores para o objeto Model, que por sua vez consulta o banco de dados utilizando os valores recebidos.
Benefícios
A arquitetura MVC facilita a separação das diferentes camadas da aplicação (lógica de entrada de dados, lógica de negócios e lógica de apresentação), além de prover o conceito loose coupling entre esses componentes. Isto significa que cada componente tem ou usa, pouco ou nenhum conhecimento, sobre a implementação do outro. Esta arquitetura determina onde cada camada deverá ser implementada na aplicação. A camada de apresentação (UI) pertence aos objetos View. A lógica para gerenciar a entrada de dados e interações com o usuário pertence aos objetos Controller. As regras de negócio pertencem aos objetos Model. Esta separação auxilia a gerenenciar a complexidade durante a construção da aplicação, porque ela permite que você se concentre na implementação de uma camada de cada vez. Por exemplo, você pode focar na construção de um objeto View sem depender ou conhecer a implementação da lógica de negócios implementada no objeto Model.
Além de auxiliar no gerenciamento da complexidade durante o desenvolvimento da aplicação, o modelo MVC facilita o trabalho de testar sua implementação, tornando-o mais fácil se comparado ao modelo Web Forms. Por exemplo, numa aplicação ASP.NET baseada em Web Forms, uma única classe é utilizada para exibir os dados e gerenciar as interações com o usuário. Escrever testes automatizados para uma aplicação ASP.NET baseada em Web Forms pode ser complexo, porque para testar uma página individualmente, você precisa instanciar a classe da página testada, todos os controles e classes dependentes. Como muitas classes podem ser instanciadas para executar uma única página, pode tornar-se difícil a tarefa de testar partes específicas da aplicação. Por isso testar uma aplicação ASP.NET baseada em Web Forms é uma tarefa mais difícil do que testar uma aplicação baseada no modelo MVC. Além disso, para testar uma aplicação ASP.NET baseada em Web Forms é necessário um Web Server. O framework MVC desconecta os componentes e faz uso de Interfaces, o que torna possível testar componentes individualmente, isolados do resto do framework.
A separação entre os principais componentes de uma aplicação MVC também promove o desenvolvimento paralelo (parallel development), onde um desenvolvedor pode trabalhar no objeto View, um segundo desenvolvedor pode trabalhar no objeto Controller enquanto um terceiro desenvolvedor se concentra nas regras de negócio implementadas no objeto Model.
Página 6
Decidindo quando criar uma aplicação MVC
Você precisa considerar cuidadosamente quando construir uma aplicação utilizando ASP.NET MVC framework ou o modelo ASP.NET baseado em Web Forms. O framework MVC não substitui o modelo Web Forms; você pode utilizar qualquer das duas abordagens para desenvolver uma aplicação Web.
Antes de decidir pela arquitetura MVC ou Web Forms para um projeto específico, analise as vantagens e desvantagens de cada abordagem:
O modelo baseado em Web Forms oferece as seguintes vantagens:
Suporta o modelo de eventos que preserva o estado da página através do protocolo HTTP, o que beneficia o desenvolvimento de aplicações LOB (Line-of-Business). O modelo baseado em Web Forms oferece dúzias de eventos que são suportados em centenas de server-controls.
Utiliza View State e server-based Forms, que facilitam o gerenciamento de estado entre os postbacks.
Funciona bem para pequenos times de desenvolvedores e designers que podem explorar um grande número de componentes disponíveis para o modelo de desenvolvimento RAD (Rapid Application Development).
Em geral, apresenta uma complexidade menor, em razão dos componentes (Page Class, controles, modelo de eventos, etc.) bem integrados
...