terça-feira, 12 de junho de 2012

MVC vs Padrão 3 camadas

Eu tive várias pessoas me perguntam qual é a diferença entre MVC (Model View Controller) e três camadas padrões arquitetônicos. É minha intenção de esclarecer a confusão, comparando os dois modelos lado a lado. Pelo menos em parte, creio que a fonte de algumas das confusões é que ambos têm três camadas distintas ou nódulos em seus respectivos diagramas.Se você olhar cuidadosamente para cada diagrama você verá as associações (conectores de seta) entre as caixas são criados um pouco diferente.
3 Camadas
MVC

3 Camadas

Um sistema de três camadas realmente é constituído por camadas (pensar em camadas do bolo). A camada de interface do usuário tem acesso para a camada de lógica de negócios e a camada de negócios tem acesso à camada de dados. Mas a camada de interface do usuário não pode acessar diretamente a camada de dados. Para que a camada de interface do usuário para acessar os dados, ele deve atravessar a camada de lógica de negócios através de algum tipo de interface. Se ajudar, você poderia pensar de cada camada como um componente grande de baixo acoplamento com regras de projeto rigorosas de acesso entre as camadas.

MVC (Model View Controller)

Em contraste, o padrão MVC, obviamente, não manter um sistema de camadas. O Contoller acessa o Modelo (um repositório de dados em tempo de execução) eo View. The View, em seguida, acessa o Model. Exatamente como faz esse trabalho? O controlador, em última análise é o ponto de decisão lógica. Que tipo de lógica? Normalmente, o controlador irá recuperar, construir ou modificar uma base modelo em alguma ação desencadeada. O controlador, então, decide que é apropriado Ver via alguma lógica interna. Nesse ponto, o controlador vai empurrar o modelo para visualizar.

Nota:. Porque eu principalmente desenvolver com a NET, a Microsoft adotou o padrão MVC para ASP.NET com sua própria plataforma (ver http://www.asp.net/mvc). Você pode certamente utilizar o padrão MVC sem plataforma da Microsoft, mas por que reinventar a roda? Tenho sido muito feliz com ele até agora.

Quando posso escolher qual padrão?

Primeiro que tudo, estes dois padrões são definitivamente não se excluem mutuamente. De fato, em minha experiência, eles são bastante harmonioso. Muitas vezes eu uso uma arquitetura multi-camadas, como uma arquitetura de três camadas, para a estrutura global arquitetônica. Então, dentro da camada de interface do usuário, eu uso MVC. Algo como o diagrama abaixo.



Traduzido de: http://allthingscs.blogspot.com.br/2011/03/mvc-vs-3-tier-pattern.html

Um comentário:

  1. Interessante. Eu tinha pensado uma coisa um pouco diferente. Na parte de cima somente View e Controles, a Model ficaria depois, dentro da BLL, e depois a DAL.

    ResponderExcluir