ASP.NET - MVC - Model-View-Controller - Introdução


 Antes de mais nada você deve saber que o padrão ou arquitetura MVC não é invenção nem propriedade da Microsoft. O padrão MVC existe a muito tempo e, em meu artigo de 2004 - Padrões de Projeto - O modelo MVC - Model View Controller - eu tive a oportunidade de apresentar os conceitos básicos sobre o MVC.

 Nesta mesma época participei de um projeto onde desenvolvemos uma aplicação web usando o padrão MVC com java, Servlets e páginas JSP.

Então para recordar vamos começar com uma indagação:

O que é afinal MVC ?

A arquitetura/padrão MVC - (Modelo Visualização Controle) fornece uma maneira de dividir a funcionalidade envolvida na manutenção e apresentação dos dados de uma aplicação. A arquitetura MVC não é nova e foi originalmente desenvolvida para mapear as tarefas tradicionais de entrada , processamento e saída para o modelo de interação com o usuário. Usando o padrão MVC fica fácil mapear esses conceitos no domínio de aplicações Web multicamadas.

Na arquitetura MVC o modelo representa os dados da aplicação e as regras do negócio que governam o acesso e a modificação dos dados. O modelo mantém o estado persistente do negócio e fornece ao controlador a capacidade de acessar as funcionalidades da aplicação encapsuladas pelo próprio modelo.

Um componente de visualização renderiza o conteúdo de uma parte particular do modelo e encaminha para o controlador as ações do usuário; acessa também os dados do modelo via controlador e define como esses dados devem ser apresentados.

Um controlador define o comportamento da aplicação , é ele que interpreta as ações do usuário e as mapeia para chamadas do modelo. Em um cliente de aplicações Web essas ações do usuário poderiam ser cliques de botões ou seleções de menus. As ações realizadas pelo modelo incluem ativar processos de negócio ou alterar o estado do modelo.

Com base na ação do usuário e no resultado do processamento do modelo , o controlador seleciona uma visualização a ser exibida como parte da resposta a solicitação do usuário. Há normalmente um controlador para cada conjunto de funcionalidades relacionadas.

A arquitetura de 3 camadas que esta representada abaixo é uma implementação do modelo MVC . O modelo MVC esta preocupado em separar a informação de sua apresentação.

Resumindo : O padrão Model-View-Controller (MVC) separa os diferentes componentes de uma aplicação WEB MVC de forma a dar mais controle sobre cada parte individual da aplicação tornando a aplicação mais fácil de desenvolver , modificar e testar.

Mas afinal o que é então o ASP .NET MVC ?

O ASP .NET MVC é uma implementação da arquitetura MVC para o ASP .NET em um framework com o objetivo de criar aplicações WEB no padrão MVC e fornecer uma alternativa ao modelo WebForm do ASP .NET disponível até então. O framework ASP .NET MVC fornece um ambiente robusto e leve que esta integrado aos recursos do ASP .NET como master pages e membership sendo definido no namespace System.Web.Mvc e apresenta os seguintes componentes:

Como eu posso usar o ASP .NET MVC ?

Para usar o ASP .NET MVC você precisa instalar a ASP.NET MVC Preview 3 (May 2008) release (faça o download aqui : Microsoft ASP.NET MVC page) ; você vai precisar ter a .NET Framework 3.5 instalada e o Visual Studio 2008 ( a versão RTM não suporta o MVC).

Quando usar o ASP .NET MVC ?

Como tudo na vida é uma questão de bom senso, e você deverá pesar bem os prós e contras antes de decidir se vai implementar o padrão MVC através do ASP .NET MVC na sua aplicação Web ou continuar a usar o modelo WebForm (sim ele vai continuar a existir). Lembre-se que o framework MVC não veio substituir o modelo Web Forms ele veio ser uma opção a mais a ser considerada.

Quais as vantagens e desvantagens envolvidas no ASP .NET MVC ?

Vantagens :

  1. Como o modelo MVC gerencia múltiplos visualizadores usando o mesmo modelo é fácil manter , testar e atualizar sistemas múltiplos;
  2. É muito simples incluir novos clientes apenas incluindo seus visualizadores e controles;
  3. Torna a aplicação escalável;
  4. É possível ter desenvolvimento em paralelo para o modelo , visualizador e controle pois são independentes;
  5. É mais fácil gerenciar a complexidade da aplicação dividindo-a em modelo, visualizador e controlador (MVC);

Desvantagens:

  1. Requer uma quantidade maior de tempo para analisar e modelar o sistema;
  2. Requer pessoal com conhecimento especializado;
  3. Não é aconselhável para pequenas aplicações;

Vantagens do modelo WebForms:

Existe somente o Framework MVC da Microsoft ?

Não , o projeto Castle disponibiliza o Framework web MVC MonoRail (Inspirado no Ruby on Rails) que pode ser baixado gratuitamente no site : http://www.castleproject.org/monorail/index.html

O MonoRail é um projeto anterior ao MVC da Microsoft e neste momento possui mais documentação e exemplos, vale a pena conferir.

Nota: http://pt.wikipedia.org/wiki/Ruby_on_Rails
Ruby on Rails é um meta-framework gratuito que promete aumentar velocidade e facilidade no desenvolvimento de sites orientados a banco de dados (database-driven web sites), uma vez que é possível criar aplicações com base em estruturas pré-definidas. Frequentemente referenciado como Rails ou RoR, o Ruby on Rails é um projeto de código aberto escrito na linguagem de programação Ruby. As aplicações criadas utilizando o framework Rails são desenvolvidas com base no padrão de projeto MVC (Model-View-Controller).

Aguarde em breve exemplo de criação de uma aplicação web usando o ASP .NET MVC.

Veja neste artigo uma introdução básica de como usar o ASP .NET MVC de forma prática: ASP .NET - Usando o ASP .NET MVC Framework (Preview 3)

Veja também como usar a versão ASP .NET MVC 2.0 : ASP .NET MVC 2.0 - Criando uma aplicação MVC básica (C#) - 1

Eu sei , é apenas ASP .NET , mas eu gosto..

Referências:


José Carlos Macoratti