[ACADEMICTOPIC] Mais pq MVC??

Coordinator
Feb 17, 2009 at 1:06 AM
Oras, qual é mesmo a vantagem de usar MVC?
Coordinator
Feb 24, 2009 at 2:11 PM

Ok, então MVC  significa Model View Controller e é um tipo de arquitectura de design de software, parece complicado mas não é, até é bastante simples, este tipo de arquitectura separa a nossa aplicação em três camadas distintas, apresentação (User Interface), Logica da aplicação, e acesso aos dados.

Vamos ver mais detalhadamente quais as funções de cada uma destas partes.

As views, são estruturas destinadas á apresentação do conteudo, á forma como apresentamos esse conteudo aos utilizadores. Nas views, vamos colocar o HTML incluir os ficheiros CSS e JavaScript da aplicação, no fundo tudo o que regula e sustenta a forma como visualizamos a aplicação.

Models ou Modelos, ao contrário das views os modelos são o local ideal para lidar com a logica da aplicação, recolher dados de uma base de dados, ou ficheiro, redimencionar imagens, executar operações, no fundo todo o tipo de operações que a aplicação executa entre o click do utilizador e a apresentação dos dados será levada a cabo pelos modelos.

E Finalmente os controladores (Controllers), o que fazem? simples controlam. Os controladores são responsáveis por receber o pedido do cliente e decidem qual modelo chamar para aquele pedido expecifico, recebem os dados recolhidos e trabalhados pelo modelo e decidem qual a view (ou template) a renderizar fornecendo-lhe todos os dados necessários. Assim os controladores são quem controla todo o fluir da aplicação, decidindo o que carregar e executar para cada pedido.

Ok, até aqui tudo bem, mas quais as vantagens reais de usar esta arquitectura? são varias:

Primeira, e possívelmente a mais importante, é a possibilidade de ter multiplas views baseadas no mesmo modelo. Hoje em dia existe uma crescente exigência de novas formas de acesso a uma aplicação. A solução é o uso de MVC. Porquê? porque com MVC, não interessa se o utilizador que uma aplicação com o interface em Flash, Ajax, ouWAP, porque o mesmo modelo pode tratar de tudo, assim a duplicação de código é limitada porque separamos a logica do interface.

Proque o modelo retorna dados sem aplicar qualquer formatação, os mesmo componentes podem ser chamados e usados com qualquer interface. Por exemplo, na maioria dos casos os dados são formatados com HTML, mas também podem ser formatados usando o Adobe Flash ou WAP. O modelo também isola e manuseia estados e persistencia de dados. Por exemplo, um site em Flash ou uma aplicação wireless podem as duas usar o mesmo sistema de sessions e os mesmo processos de e-commerce.

Porque o modelo é auto-contido e completamente separado do controlador e das views, torna-se muito mais facil alterar dados na aplicação ou a forma como esses dados são tratados. Imagine que muda de base de dados, digamos de MySQL para Oracle, apenas necessita de mudar o modelo. Se implementado correctamente, a view não quer saber se a lista de utilizadores veio da base de dados MySQL ou de outro sitio qualquer.

O conceito do controlador também trás beneficios. Para mim, o controlador é usado para trocar informações entre diferentes partes do modelos até á view para completar um pedido. Tendo um conjunto de blocos reutilizavel (modelos e views), o controlador escolhe quais os blocos necessários para lidar com um determinado processo (pedido) e mostrar o que foi requisitado.

Fonte:blog.lookatitude.com

http://blog.lookatitude.com/comment.php?type=trackback&entry_id=2

Coordinator
Feb 24, 2009 at 6:09 PM
Em relação ao ASP.NET atual, o MVC não trás nenhum ganho de produtividade. Com o ASP.NET você tem produtividade, com o MVC você tem testabilidade.

Willon Félix