Se você programa em Java ou Ruby on Rails, saia da sala, pois o assunto aqui é carne de vaca para vocês. Vamos falar do Design Pattern MVC e sua implementação .Net “ASP.NET MVC”.

O objetivo deste padrão de desenvolvimento é uma separação total das três camadas da aplicação, são elas:

Modelo, esta camada contem toda a parte de negócio, ou seja, programação pesada da aplicação, como acesso ao banco de dados, validação, fórmulas etc.

Controle, é responsável por receber uma requisição do usuário. Pode ser reutilizado para requisições com retorno em html, xml ou wml etc. de forma que a mesma requisição web serviria para todos, com o mesmo processamento e apenas o retorno diferente.

Visão, é a apresentação que será mostrada para o usuário ao término do processamento feito pelo controle e, se for o caso, pela camada de modelo.

Segue uma imagem para simplificar o entendimento:

Fluxo

O usuário faz uma chamada http para o controller, este nada mais é do que uma classe com um ou vários métodos. Por exemplo:

namespace Controllers
{
    public class HomeController : Controller
    {
        [ControllerAction]
        public void Index()
        {
            RenderView("Index");
        }
    }
}

Para este exemplo a chamada http seria a seguinte: http://meusite.com.br/Home/Index

Você deve estar se perguntando, mas esta pasta não existe, como posso usar esta url?

Simples. A página é virtual, não existe de verdade. Porém o MVC faz uma conversão da primeira pasta /Home/ para uma instanciação da classe Home e a pasta Index para uma chamada ao método Index e por aí vai.

Nosso método Index é muito simples, apenas manda carregar o arquivo de visão chamado Index.aspx, não é necessário informar a extensão do arquivo.

Porém, este método poderia chamar uma dll, webservices e outros componentes. Esses componentes executados pelo controle é a camada de modelo.

Bem, para não estender a conversa, que tal por a mão na massa? É muito fácil. Primeiramente, baixe o Visual Web Developer 2008 (é grátis) em http://www.microsoft.com/express/download/#webInstall. Em seguida, faça o download do nosso projeto exemplo em: http://daviwin.servicos.ws/mvc.zip

Depois de instalar o Visual Studio e baixar o projeto exemplo, abra o Visual Studio, clique em Open Web Site e selecione a pasta do projeto, já descompactado.

Para testar, basta apertar o F5. As urls para teste são: http://localhost:xxx/MVC/Home/Index e http://localhost:xxx/MVC/Home/Pagina2.

Também é possível usar o MVC na Locaweb, basta adicionar a extensão .ashx ao nome do controlador, por exemplo, sitedoze.com.br/Home.ashx/Index e sitedoze.com.br/Home.ashx/Pagina2.

Até a próxima!