Vous êtes sur la page 1sur 3

Padres de Projeto - O modelo MVC - Model View Controller

http://www.macoratti.net/vbn_mvc.htm

Padres de Projeto : O modelo MVC - Model View Controller


Os padres de projeto so muito teis para resolver problemas de modelagem de projetos se usados de forma adequada. Mas o que so estes benditos padres de projetos ou Design Patterns ? Padres de projetos so solues para problemas que algum um dia teve e resolveu aplicando um modelo que foi documentado e que voc pode adaptar integralmente ou de acordo com necessidade de sua soluo. Vou abordar neste artigo o padro de modelo MVC que tem por objetivo bsico separar a lgica de negcio da apresentao. Nota: No Super CD.NET voc encontra a edio eletrnica do bestseller "Design Patterns" publicao voltada a desenvolvedores que utilizam a metodologia de orientao a objetos. O grande desafio das equipes de desenvolvimento de aplicaes cada vez mais produzir aplicativos seguros , eficientes , de fcil manuteno , reutilizveis e em prazos cada vez menores. O paradigma da orientao a objetos tem tido um grande avano nestes ltimos tempos (leia-se Java e agora .NET) , tanto que , segundo o Partner Group , dentre as tecnologias que vo sobreviver no mercado nos prximos anos esto Java e .NET. Voc ento j percebeu por que a Microsoft lanou a tecnologia .NET e tornou orientada a objetos o bom e velho Visual Basic , trazendo consigo o C# para quem usa Java. Estima-se que a partir de agora ser impensvel produzir aplicaes que no sejam orientadas a objetos desde sua concepo. O sucesso para o desenvolvimento de aplicaes com tecnologia orientada a objetos esta intimamente ligada arquitetura que vamos usar para construir a aplicao. A tendncia indica que esta arquitetura estar baseada na organizao da aplicao em camadas e na observao dos padres utilizados pelo mercado. A organizao em camadas a chave para a independncia entre os componentes e esta independncia que vai atingir os objetivos de eficincia , escalabilidade , reutilizao e facilidade de manuteno. Num primeiro instante produzir aplicativos multicamadas pode parecer mais complexo por isto vou procurar mostrar como evolumos para chegar a esta soluo. O termo camada pode significar uma separao fsica ou uma camada lgica , no nosso caso , a produo de software vamos considerar camada como uma referncia a separao de responsabilidades. Aplicaes monolticas Nos tempos antigos do reinado do grande porte e do computador pessoal independente um aplicativo era desenvolvido para ser usado em uma nica mquina . Geralmente este aplicativo continha todas a funcionalidades em um nico mdulo gerado por uma grande quantidade de linhas de cdigo e de manuteno nada fcil. A entrada do usurio , verificao , lgica de negcio e acesso a banco de dados estava presente em um mesmo lugar. Podemos definir este tipo de aplicao como aplicao de uma camada ou monoltica , esquematizada a seguir :

Aplicaes em duas camadas A necessidade de compartilhar a lgica de acesso a dados entre vrios usurios simultneos fez surgir as aplicaes em duas camadas. Nesta estrutura a base de dados foi colocada em uma mquina especfica, separada das mquinas que executavam as aplicaes. Nesta abordagem temos aplicativos instalados em estaes clientes contendo toda a lgica da aplicao (clientes ricos ou gordos). Um grande problema neste modelo o gerenciamento de verses pois para cada alterao os aplicativos precisam ser atualizados em todas as mquinas clientes.

Aplicaes em trs camadas Com o advento da internet houve um movimento para separar a lgica de negcio da interface com o usurio. A

1 de 3

2/8/2011 18:44

Padres de Projeto - O modelo MVC - Model View Controller

http://www.macoratti.net/vbn_mvc.htm

idia que os usurios da WEB possam acessar sa mesmas aplicaes sem ter que instalar estas aplicaes em suas mquinas locais. Como a lgica do aplicativo , inicialmente contida no cliente rico no reside mais na mquina do usurio este tipo de cliente passo a ser chamado de cliente pobre ou magro.(thin). Neste modelo o aplicativo movido para o Servidor e um navegador Web usado como um cliente magro. O aplicativo executado em servidores Web com os quais o navegador Web se comunica e gera o cdigo HTML para ser exibido no cliente.

Neste modelo a lgica de apresentao esta separada em sua prpria camada lgica e fsica.A separao em camadas lgicas torna os sistemas mais flexveis permitindo que as partes possam ser alteradas de forma independente. As funcionalidades da camada de negcio podem ser divididas em classes e essas classes podem ser agrupadas em pacotes ou componentes reduzindo as dependncias entre as classes e pacotes ; podem ser reutilizadas por diferentes partes do aplicativo e at por aplicativos diferentes. O modelo de 3 camadas tornou-se a arquitetura padro para sistemas corporativos com base na Web. A modelagem orientada a objetos ajuda a promover a modularidade pois os objetos encapsulam seus dados (propriedades , estados) e oferecem funcionalidades atravs de seus mtodos. Projetando-se de forma adequada os objetos podem ter reduzidas as dependncias entre si ficando assim fracamente acoplados e sero mais fceis de manter e evoluir. O padro MVC O modelo de trs camadas fiscas ( 3-tier ) divide um aplicativo de modo que a lgica de negcio resida no meio das trs camadas fsicas. Isto chamado de camada fsica intermediria ou camada fsica de negcios. A maior parte do cdigo escrito reside na camada de apresentao e de negcio. A arquitetura MVC - (Modelo Visualizao Controle) fornece uma maneira de dividir a funcionalidade envolvida na manuteno e apresentao dos dados de uma aplicao. A arquitetura MVC no nova e foi originalmente desenvolvida para mapear as tarefas tradicionais de entrada , processamento e sada para o modelo de interao com o usurio. Usando o padro MVC fica fcil mapear esses conceitos no domnio de aplicaes Web multicamadas. Na arquitetura MVC o modelo representa os dados da aplicao e as regras do negcio que governam o acesso e a modificao dos dados. O modelo mantm o estado persistente do negcio e fornece ao controlador a capacidade de acessar as funcionalidades da aplicao encapsuladas pelo prprio modelo. Um componente de visualizao renderiza o contedo de uma parte particular do modelo e encaminha para o controlador as aes do usurio; acessa tambm os dados do modelo via controlador e define como esses dados devem ser apresentados. Um controlador define o comportamento da aplicao , ele que interpreta as aes do usurio e as mapeia para chamadas do modelo. Em um cliente de aplicaes Web essas aes do usurio poderiam ser cliques de botes ou selees de menus. As aes realizadas pelo modelo incluem ativar processos de negcio ou alterar o estado do modelo. Com base na ao do usurio e no resultado do processamento do modelo , o controlador seleciona uma visualizao a ser exibida como parte da resposta a solicitao do usurio. H normalmente um controlador para cada conjunto de funcionalidades relacionadas. A arquitetura de 3 camadas que esta representada abaixo uma implementao do modelo MVC . O modelo MVC esta preocupado em separar a informao de sua apresentao.

2 de 3

2/8/2011 18:44

Padres de Projeto - O modelo MVC - Model View Controller

http://www.macoratti.net/vbn_mvc.htm

Camada de apresentao ou visualizao - No esta preocupada em como a informao foi obtida ou onde ela foi obtida apenas exibe a informao. inclui os elementos de exibio no cliente : HTML , XML , ASP , Applets . a camada de interface com o usurio. usada para receber a entrada de dados e apresentar o resultado Camada de lgica da Aplicao - o corao da aplicao . Responsvel por tudo que a aplicao vai fazer. modela os dados e o comportamento por atrs do processo de negcios se preocupa apenas com o armazenamento , manipulao e gerao de dados um encapsulamento de dados e de comportamento independente da apresentao. Camada de Controle - determina o fluxo da apresentao servindo como uma camada intermediria entre a camada de apresentao e a lgica. controla e mapeia as aes Vantagens do modelo MVC :

1. Como o modelo MVC gerencia mltiplos visualizadores usando o mesmo modelo fcil manter , testar e 2. 3. 4.
atualizar sistemas mltiplos muito simples incluir novos clientes apenas incluindo seus visualizadores e controles Torna a aplicao escalvel possvel ter desenvolvimento em paralelo para o modelo , visualizador e controle pois so independentes.

Desvantangens do modelo MVC:

1. Requer uma quantidade maior de tempo para analizar e modelar o sistema 2. Requer pessoal especializado 3. No aconselhvel para pequenas aplicaes
No prximo artigo vou mostrar como implementar o modelo MVC em uma aplicao VB.NET em 3 camadas. Acompanhe a continuao no link : VB.NET - Criando uma aplicao em 3 camadas ( MVC ) At o prximo artigo. Aguarde...

Jos Carlos Macoratti

3 de 3

2/8/2011 18:44