Atualmente, muitos softwares e frameworks esto utilizando do padro MVC para o
desenvolvimento de seus aplicativos/sites. E agora chegou a hora em que vamos entender o conceito e como funciona o famoso MVC. O MVC (Model, View e Controller) uma arquitetura ou padro que lhe permite dividir as funcionalidades de seu sistema/site em camadas, essa diviso realizada para facilitar resoluo de um problema maior. Onde possumos trs camadas bsicas, e cada uma delas, com suas caractersticas e funes bem definidas. Definio das camadas Modelo O modelo (Model) utilizado para manipular informaes de forma mais detalhada, sendo recomendado que, sempre que possvel, se utilize dos modelos para realizar consultas, clculos e todas as regras de negcio do nosso site ou sistema. o modelo que tem acesso a toda e qualquer informao sendo essa vinda de um banco de dados, arquivo XML. Viso A viso (view) responsvel por tudo que o usurio final visualiza, toda a interface, informao, no importando sua fonte de origem, exibida graas a camada de viso. Controladora A Controladora (controller), como o nome j sugere, responsvel por controlar todo o fluxo de informao que passa pelo site/sistema. na controladora que se decide se, o que, quando e onde deve funcionar. Define quais informaes devem ser geradas, quais regras devem ser acionadas e para onde as informaes devem ir, na controladora que essas operaes devem ser executadas. Em resumo, a controladora que executa uma regra de negcio (modelo) e repassa a informao para a visualizao (viso). Simples no? Por que utilizar MVC? Com o aumento da complexidade dos sistemas/sites desenvolvidos hoje, essa arquitetura tem como foco dividir um grande problema em vrios problemas menores e de menor complexidade. Dessa forma, qualquer tipo de alteraes em uma das camadas no interfere nas demais, facilitando a atualizao de layouts, alterao nas regras de negcio e adio de novos recursos. Em caso de grandes projetos, o MVC facilita muito a diviso de tarefas entre a equipe. Abaixo sero listadas algumas das vantagens em utilizar MVC em seus projetos: Facilita o reaproveitamento de cdigo; Facilidade na manuteno e adio de recursos; Maior integrao da equipe e/ou diviso de tarefas;
Diversas tecnologias esto adotando essa arquitetura;
Facilidade em manter o seu cdigo sempre limpo; Exemplo do funcionamento do MVC Com a teoria j compreendida, vamos imaginar a seguinte situao: Voc desenvolveu um site, e esse site possui uma tela de login, onde o usurio digita seu login e sua senha, aps a autenticao, caso ocorra tudo certo, o usurio acessa a rea restrita do site, caso contrrio redirecionado novamente para a pgina de login repassando uma mensagem que a combinao de usurio e senha invlida. Conseguiu imaginar essa situao? Beleza... Agora veja como isso acontece caso voc ainda no tenha adotado a arquitetura MVC em seu site: Primeiramente, o usurio preenche o formulrio com seu login e sua senha e pressiona o boto Logar. Depois disso, o formulrio envia essas informaes para um arquivo onde, no mesmo arquivo, voc executa as seguintes etapas: 1. Armazena em variveis os dados digitados pelo usurio; 2. Montam um comando SQL para selecionar o usurio; 3. Verifica se retornou alguma informao; *Se retornar alguma informao, armazena o usurio em uma sesso e redireciona para a rea restrita; *Se no retornar nenhuma informao, redireciona para a pgina de login com uma mensagem notificando que a combinao digitada invlida; Aparentemente esta tudo OK, tudo funcionado. Mas veremos agora como funcionaria se o seu site estivesse utilizando a arquitetura MVC: Os passos seguem os mesmo, primeiramente, o usurio preenche o formulrio com seu login e sua senha e pressiona o boto Logar. Agora veremos algumas mudanas. Depois disso, o formulrio envia essas informaes para uma controladora, e essa controladora realizar as seguintes etapas: 1. A controladora (controller) carrega um modelo (model), e executa um mtodo que realiza a validao; 2. No modelo (model) so executadas as seguintes tarefas: Armazena as informaes digitadas pelo usurio; Realiza a consulta. Caso retornando verdadeiro (true) em caso de sucesso, ou falso (false) no caso da combinao das informaes digitadas serem invlidas; 3. A controladora (controller) verifica o que o modelo retornou;
Se retornar verdadeiro (true) armazena as informaes em uma sesso e redireciona o
usurio para viso (view) da rea restrita; Se retornar falso (false) redireciona o usurio de volta para a tela (view) de login repassando a mensagem que a combinao digitada invlida; Agora voc pode ficar se perguntando, mas do modo que eu fao tambm funciona? Pode ser que sim, mas imagine ter que alterar a regra de negcio. Antes de utilizar MVC voc precisaria abrir o arquivo que realiza todas as tarefas e localizar a sua regra, para depois alterar. No caso do MVC, voc j sabe onde se encontra as suas regras de negcio, ento voc vai direto ao arquivo. Por isso que a maioria dos frameworks j vem com sua estrutura de diretrios pronta, facilitando a localizao dos arquivos. Consideraes finais Deixo vocs refletindo sobre as vantagens de trabalhar com a arquitetura MVC, e saibam que toda a evoluo, necessita de esforos. Nesse caso, voc s vai precisar se dedicar um pouco nos estudos, para compreender o funcionamento e suas particularidades dessa arquitetura. Mas garanto que, assim todo aprendizado sempre vlido, vocs estaro dando um grande salto na sua carreira, se diferenciando dos demais concorrentes que ainda resistem em ao novo, pelo medo ou at mesmo por comodidade. Referncia MVC (Model-View-Controller), Trcio Zemel. Disponvel em <http://codeigniterbrasil.com...>
MVC. Disponvel em <http://pt.wikipedia.org/wiki/MVC>
ASP.NET, MVC (Model-View-Controller) Introduo, Jos Carlos Macoratti. Disponvel em <http://www.macoratti.net> Padres de Projeto: O modelo MVC, Macoratti, Jos Carlos. Disponvel em <http://www.macoratti.net/>
Padres de Projeto Web e o MVC, Almir Neto e Otvio Calaa Xavier. Disponvel em <http://www.slideshare.net>