A arquitetura de camada N geralmente possui cada camada separada pela rede. Ou seja, a camada de apresentação está em alguns servidores da Web; depois, ele conversa com servidores de aplicativos de back-end pela rede para obter lógica de negócios; depois, com um servidor de banco de dados, novamente pela rede, e talvez o servidor de aplicativos também chame alguns serviços remotos ( diga Authorize.net para processamento de pagamentos).
MVC é um padrão de design de programação em que diferentes partes do código são responsáveis por representar o Model, View e controller em algum aplicativo. Essas duas coisas estão relacionadas porque, por exemplo, a camada Modelo pode ter uma implementação interna que chama um banco de dados para armazenar e recuperar dados. O controlador pode residir no servidor da web e chamar remotamente appservers para recuperar dados. O MVC abstrai os detalhes de como a arquitetura de um aplicativo é implementada.
A camada N refere-se apenas à estrutura física de uma implementação. Esses dois às vezes são confusos porque um design MVC geralmente é implementado usando uma arquitetura de camada N.
Se um design de três camadas fosse assim:
o padrão do MVC seria:
Significa que:
O PS Client seria o View e o meio o Controller
fonte
É o que diz sobre a arquitetura de n camadas
fonte
A única semelhança é que os dois padrões têm três caixas em seus diagramas. Fundamentalmente, eles são completamente diferentes em seus usos. De fato, geralmente não é uma escolha entre qual padrão usar, mas ambos podem ser usados em conjunto de maneira prejudicial. Aqui está uma boa comparação dos dois: http://allthingscs.blogspot.com/2011/03/mvc-vs-3-tier-pattern.html
fonte
Uma regra fundamental na arquitetura de três camadas é que a camada do cliente nunca se comunica diretamente com a camada de dados; em um modelo de três camadas, toda a comunicação deve passar pela camada de middleware.
É arquitetura de liner. Isso aborda a questão de como passar informações entre um usuário e um banco de dados. Onde como MVC é uma arquitetura triangular: o View envia atualizações para o Controller, o Controller atualiza o Model e o View é atualizado diretamente do Model. Isso aborda questões de como uma interface do usuário gerencia os componentes na tela.
fonte
O @Cherry Middle ware funciona mais como um manipulador de solicitações ou redirecionador no MVC Pattern.
Eu gostaria de explicar um pouco sobre o MVC. De acordo comigo, o Model View Controller funciona assim.
Isso é tudo sobre o MVC que eu sei.
fonte
Faça uma pausa. E não se restrinja a certos padrões ao resolver problemas do mundo real. Lembre-se de alguns princípios gerais, um dos quais é a SEPARAÇÃO DE PREOCUPAÇÕES .
fonte
Além de linear, outra grande diferença que não foi enfatizada o suficiente aqui é que, no modelo de N camadas, N não é necessariamente de três camadas! Geralmente, é implementado como três camadas (apresentação, aplicativo, dados), com a camada intermediária tendo duas sub-camadas (lógica de negócios e acesso a dados). Além disso, o modelo no MVC pode conter dados e lógica de negócios para manipulação de dados, enquanto eles estariam em camadas separadas na n-camada.
fonte
Uma arquitetura de N camadas é melhor definida usando um diagrama de implantação.
Uma arquitetura MVC é melhor definida usando um diagrama de sequência.
Os 2 não são iguais e não estão relacionados e é possível combinar as duas arquiteturas. Muitas empresas adotaram as etapas para criar a arquitetura N Nivel para não apenas a implantação e escalabilidade, mas também a reutilização de código.
Por exemplo, os objetos da sua Entidade comercial podem precisar ser consumidos por um aplicativo da área de trabalho, um serviço da Web exposto para um cliente, um aplicativo da Web ou um aplicativo móvel. O simples uso de uma abordagem MVC não ajudará a reutilizar nada.
fonte
Conclusão: N-camada é uma arquitetura, MVC um padrão de design. Eles são a mesma metáfora aplicada em dois campos diferentes.
fonte
Jerry: Aqui está um exemplo simples de como os dois estão relacionados:
Camada 1 - Consiste em modelos que se comunicam com a Camada 2 por meio de algum tipo de serviço de rede ou similar, controladores para lidar com a validação de entrada, cálculos e outras coisas relevantes para as visualizações. E contém as próprias visualizações, é claro - que podem ser a GUI em um aplicativo de desktop ou a interface da web em um aplicativo da web.
Camada 2 - Contém algum tipo de serviço ou outra maneira de receber mensagens da Camada 1. Não sabe / não deve saber sobre a Camada 1; portanto, só pode atender chamadas de cima - nunca peça coisas por si só. Também contém toda a lógica de negócios.
Camada 3 - Contém o modelo de domínio, a representação do objeto do banco de dados e toda a lógica para se comunicar e atualizar as entradas do banco de dados.
fonte
Em um modelo de três camadas, toda a comunicação deve passar pela camada intermediária. Conceitualmente, a arquitetura de três camadas é linear. No entanto, a arquitetura MVC [model-view-controller] é triangular: a visualização envia atualizações para o controlador, o controlador atualiza o modelo e a visualização é atualizada diretamente a partir do modelo.
fonte