Com o aumento "exponencial" da complexidade das apĺicações atuais, torna-se estritamente necessário ter uma maneira de separar a "responsabilidade", e também poder alterar cada parte dela sem correr o risco de atingir todo o contexto da mesma. Esse é um dos objetivos principais do modelo MVC.
O Modelo MVC, não é algo que surgiu derrepente, quando mais precisavámos, e nem algo relativamente novo no mercado. Ele existe desde os tempos do Smaltalk e da Xerox Parc.
Entendendo sua Arquitetura
Como já dito, separar as "responsabilidades", e poder alterar as partes sem alterar toda a sua aplicação, vem sendo algo muito requisitado, mas como o MVC ajuda a resolver este problema?
O Modelo MVC(Model View Controller), lhe dá a oportunidade de poder dividir a sua aplicação em três camadas:
- Model(Modelo): É a camada mais importante de sua aplicação, pois ela trabalha com toda a parte de manipulação e tratamento de dados.
- View(Visão): É a camada que "renderiza" o Model de maneira específica, gerando uma camada de interface de usuário.
- Controller(Controlador): É a camada que responde a Eventos de sua aplicação, e pode alterar a camada de Modelo. Dessa maneira, você não precisa ter por exemplo, a regra de negócios junto com a camada de Interface (View).
Veja figura :
Vemos a relação entre o controller, o model e o view.
Mas quando usar o ASP.NET MVC ?
1º Quando você precisa de controle total sobre o HTML.
2º Quando há necessidade de unidades de teste no projeto.
3º Quando a aplicação necessita de separação entre o desing, o código e a camada de dados.
4º Quando há obrigação de reduzir o tamanho das páginas geradas.
5º Quando é eliminar ou reduzir os PostBacks.
6º Quando uma equipe grande desenvolve uma aplicação. Cada um pode-se dedicar a uma parte ( controlador, model, wiew ) da aplicação.
7º Quando é necessário estender a aplicação constantemente.
Com esse artigo, vimos a diferença entre as camadas do padrão MVC e algumas opções de quando usá-lo em uma aplicação. Foi possível verificar que a separação das camadas de controle, modelo e apresentação posibilita a vantagens na manutenção do código, pois uma não tem conhecimento da outra, sendo assim um baixo acoplamento.