sábado, 21 de junho de 2008

Padrões GOF (Padrão MVC

Aulas 24 e 25

MVC significa Model-View-Controller, traduzindo seria, Modelo-Vista-Controlador, para entendermos um pouco sobre um dos mais importantes padrões de projeto, vamos a um exemplo básico:
Imagine que você tenha um sistema de RH e três clientes:
· Um por comodidade só quer acessá-lo pela web;
· Outro por questão de segurança só quer acessar por desktop através de uma rede local;
· E um outro, mais moderno, só quer se conectar ao sistema através de um celular;


Haverá a necessidade de desenvolver 3 interfaces diferentes para cada usuário, um para cada tipo. Já as outras duas camadas, não necessariamente teriam que ser modificadas, tornando assim uma aplicação potencialmente reutilizável. A idéia principal do padrão MVC é isolar a aplicação em camadas distintas, basicamente, a camada de acesso a dados, a camada de apresentação, e a camada de negócios, que respectivamente são o Modelo, o Vista e o Controlador.

O modelo


O modelo é a parte do componente que encapsula os dados da aplicação. Na maioria das vezes vai fornecer rotinas para administrar e manipular dados. De modo geral, a técnica de acesso aos dados deve ser encapsulada no modelo. Desta forma, se uma aplicação for transferida de um sistema que usa um tipo de banco de dados para um sistema que usa outro, o único elemento que precisa ser alterado será o modelo - a vista e o controlador não precisam ser modificados.

A vista


A vista é a parte do componente usada para transformar e preparar os dados do modelo para que possam ser apresentados de alguma forma. O controlador retira os dados do modelo e os entrega para a vista. Esta, por sua vez, alimenta templates com estes dados para que possam ser apresentados ao usuário. A vista não modifica os dados de nenhuma forma, apenas os apresenta.

O controlador


O controlador é responsável pelas respostas às ações dos usuários. No caso de uma aplicação web, uma ação de usuário (geralmente) é a solicitação de uma página. O controlador vai determinar qual solicitação foi feita e vai responder de acordo fazendo com que o modelo manipule os dados necessários para depois passá-los para a vista para que possam ser mostrados.
Segundo o Wikipédia, um framework é uma estrutura de suporte definida em que um outro projeto de software pode ser organizado e desenvolvido. Pode incluir programas de suporte, bibliotecas de código, linguagens de script e outros softwares para ajudar a desenvolver e juntar diferentes componentes de um projeto de software.
Existem diversos frameworks que abrangem o padrão mvc, mas a maioria deles é voltada para aplicações web, a seguir serão apresentados alguns com os respectivos links direcionando para um material mais aprofundado sobre os mesmos, para quem deseja aprofundar.

ZEND FRAMEWORK
Zend Framework é um framework de código aberto que provê recursos para o desenvolvimento de aplicações e serviços WEB usando a linguagem de programação PHP. Propõe-se a oferecer uma biblioteca de recursos de grande poder, fornecendo soluções modernas, robustas e seguras para o desenvolvedor. Inclui, também, diversos componentes de integração com APIs de serviços, como Flickr, Amazon e Delicious, entre outros.
TUTORIAL SOBRE O ZEND FRAMEWORK
http://akrabat.com/wp-content/uploads/iniciando-com-zend-framework_130.pdf

WEBWORK
O WebWork é um framework java que trabalha com MVC de nível 2. Ele desenvolve o papel de controlar, isto é, ele é o responsável por fazer o direcionamento de acordo com cada requisição. Nele está configurado qual ação (Action) deve ser chamada em cada caso.
FÓRUM SOBRE O WEBWORK CONTENDO UM PEQUENO TUTORIAL
http://www.javafree.org/javabb/viewtopic.jbb?t=8798

ASP.NET MVC FRAMEWORK
Framework da microsoft baseado no padrão MVC para linguagem asp.net. É necessário utilizar o visual studio, ferramenta também da microsoft para desenvolvimento de software.
TUTORIAL SOBRE O ASP.NET MVC FRAMEWORK
http://msdn.microsoft.com/pt-br/magazine/cc337884.aspx


JAVA SERVER FACES
O Java Server Faces é um framework MVC para o desenvolvimento de aplicações Web, que permite o desenvolvimento de aplicações para a internet tal como fazíamos com Delphi ou Visual Basic, ou seja, arrastanto e soltando os componentes na tela (JSP), definindo propriedades dos mesmos.
TUTORIAL SOBRE O JAVA SERVER FACES
http://www.guj.com.br/content/articles/jsf/jsf.pdf


REFERÊNCIAS
http://pt.wikipedia.org/wiki/Apache_Struts
http://www.linhadecodigo.com.br/Artigo.aspx?id=1602
http://www.javafree.org/javabb/viewtopic.jbb?t=8798
http://www.javafree.org/wiki/WebWork
http://akrabat.com/wp-content/uploads/iniciando-com-zend-framework_130.pdf
http://pt.wikipedia.org/wiki/Zend_Framework
http://www.javafree.org/javabb/viewtopic.jbb?t=853237
http://msdn.microsoft.com/pt-br/magazine/cc337884.aspx
https://saloon.inf.ufrgs.br/twiki-data/Disciplinas/CMP167/TF07RuthianoMunaretti/SlidesWebWork.pdf
http://www.marcelomx.com/2007/04/26/desenvolvendo-no-padrao-mvc-com-zend-framework/
http://www.numaboa.com/informatica/tutos/joomla/885-mvc
http://www.guj.com.br/content/articles/jsf/jsf.pdf
http://www.javafree.org/javabb/viewtopic.jbb?t=11749

Nenhum comentário: