Padrao MVC PDF
Padrao MVC PDF
PADRAO MVC
Muitos sistemas tornam-se difceis de manter porque existem trechos de cdigo que tem muita
responsabilidade, ou seja, fazem muita coisas. Aplicaes desktop so um exemplo emprico desse
problema; muitos cdigos legados em VB ou Delphi so difceis de manter porque, um mesmo
trecho de cdigo responsvel por capturar dados do usurio (atravs de caixas de texto, botes,
etc), tomar aes a partir desses dados (por exemplo, alterar uma tabela no banco de dados), e por
fim alterar a interface do usurio para mostrar que o programa reagiu da maneira esperada
(exibindo uma mensagem de sucesso).
O problema da falta de diviso de responsabilidades no ocorre apenas no desktop. Na web, temos
pginas ASP que contm, alm de cdigo HTML (para a apresentao do resultado), cdigo
VBScript com a lgica de negcio e cdigo SQL acessando o banco de dados. Tudo isso dificil
de manter. O cdigo fica espalhado e muitas vezes repetido.
Uma possvel soluo para o problema tentar separar as diversas tarefas citadas acima, da
seguinte forma:
Quando um usurio interage com o sistema, ele executa uma ao e obtm visualmente o resultado
da mesma. Isto , primeiro uma regra de negcios executada (adicionar algo, atualizar algo,
buscar algo), e depois informaes so mostradas na tela.
Isso forma trs camadas: A camada chamada de Model responsvel somente pelas regras de
negcio; a camada de View responsvel unicamente por exibir os dados para o usurio final;
por fim, a camada Controller responsvel por receber as aes feitas pelos usurios na View
e convert-las em chamadas de negcio dentro do Model. O padro conhecido por MVC (ModelView-Controller) sugere que o programador faa exatamente essa separao no cdigo.
PWA 2015
Todo sistema possui regras de negcios, que podem ser simples ou complexas. Todas elas
devem estar separadas em classes que tem essa regras como nica responsabilidade. Ou
seja, toda e qualquer ao de regra de negcio deve ser realizada por exclusivamente esse
conjunto de classes.
Interfaces de usurio tambm devem ser isoladas. Cdigos de interface tendem a ser
grandes e a sofrerem mudanas constantes. Por esse motivo, toda parte responsvel pela
exibio das informaes para o usurio devem estar isoladas em outro ponto do sistema.
Para conectar as aes que o usurio realiza na interface e fazer com que essas aes
resultem em execues de regra de negcio, necessrio que uma outra camada faa essa
tarefa. Ou seja, essa camada recebe informaes da camada de visualizao e as transforma
em invocaes de regras de negcio.
O ASP.NET MVC, como o prprio nome diz, segue o padro MVC. Veja que os nomes adotados
pelo MVC so idnticos aos do padro MVC. Suas regras de negcio devem ficar em classes C#
convencionais dentro da pasta /Models. O cdigo responsvel apenas pela interface do usurio
PWA 2015
deve ficar
PWA 2015