Pergunta

Eu estava me perguntando o que exatamente é a diferença entre MVC (que é um padrão de arquitetura) e uma arquitetura n-tier de aplicativo. Eu procurei por ele, mas não conseguiu encontrar uma explicação simples. Pode ser que eu sou um pouco ingênuo em conceitos MVC, então se alguém pode explicar a diferença, então seria ótimo.

aplausos

Foi útil?

Solução

arquitetura N camadas geralmente tem cada camada separada pela rede. OU SEJA a camada de apresentação é em alguns servidores web, em seguida, que as conversas com servidores de backend de aplicativos através da rede de lógica de negócios, em seguida, que as conversas para um servidor de banco de dados, mais uma vez através da rede, e talvez o servidor aplicativo também chama a alguns serviços remotos (digamos Authorize.net para processar o pagamento).

MVC é um padrão de programação de design onde diferentes partes do código são responsáveis ??por representar o Modelo, Vista e Controlador em alguma aplicação. Essas duas coisas estão relacionadas, porque, por exemplo, a camada de modelo pode ter uma implementação interna que chama um banco de dados para armazenar e recuperar dados. O controlador pode residir no servidor web, e remotamente chamar appservers para recuperar dados. MVC abstrai os detalhes de como a arquitetura de um aplicativo é implementado.

N camadas refere-se apenas à estrutura física de uma implementação. Estes dois são, por vezes, confusa, porque um projeto MVC é frequentemente implementada usando uma arquitetura N-tier.

Outras dicas

Se um design 3-tier eram assim:

Client <-> Middle <-> Data

o padrão de MVC seria:

     Middle
     ^    |
     |    v
Client <- Data

O que significa que:

  • no equivalente de 3 camadas, a comunicação entre as camadas é bi-direcional e sempre atravessa a camada intermediária
  • no equivalente MVC a comunicação está em unidirecional ; poderíamos dizer que cada "camada" é atualizado por um à esquerda e, por sua vez, atualiza o um à direita -onde "esquerda" e "direita" são meramente ilustrativas

P.S. Cliente seria o Ver e Médio Controlador

Isto é o que dizer sobre n-tier arquitetura

À primeira vista, os três níveis pode parece semelhante ao MVC (Model View Controller) conceito; Contudo, topologicamente eles são diferentes. UMA regra fundamental em um de três níveis arquitetura é a camada cliente nunca comunica directamente com os dados camada; em um modelo de três camadas a comunicação deve passar pelo camada middleware. conceitualmente o arquitetura de três camadas é linear. No entanto, a arquitetura MVC é triangular: o Ver envia atualizações para o Controlador, as atualizações do controlador Modelo, ea vista é atualizado diretamente do modelo.

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. Se verdade, não é geralmente uma escolha entre qual padrão de uso, mas ambos os padrões pode ser usado em conjunto harmoneously. Aqui está uma boa comparação dos dois: http: // allthingscs.blogspot.com/2011/03/mvc-vs-3-tier-pattern.html

Uma regra fundamental na arquitetura de três camadas é a camada do cliente não se comunica diretamente com a camada de dados; em um modelo de três camadas toda a comunicação deve passar através da camada de middleware.

arquitetura de TI do forro. Este 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 Ver envia atualizações para o controlador, o controlador atualiza o modelo, ea vista é atualizado diretamente do modelo. Isso resolve questões de como uma interface de usuário administra os componentes na tela.

@Cherry middleware funciona mais como um manipulador de solicitações ou redirecionador no padrão MVC.

Eu gostaria de explicar um pouco sobre MVC, Segundo a mim Model View Controller funciona assim.

  1. iniciados cliente a sessão, solicitando para qualquer serviço.
  2. Este pedido é recebido e tratado pelo Controller (manipulador de solicitações, redirecionador etc)
  3. Controlador processar uma informação básica sobre o pedido e redirecioná-lo para o modelo relevante que pode preencher o pedido de dados.
  4. Modelo preencher o pedido de acordo com os parâmetros passados ??pelo auditor e enviar os resultados para Controller. (Nota: Aqui eu gostaria de esclarecer que os dados não é devolvido diretamente ao cliente em verdadeira arquitetura MVC, ao contrário, enche-se e voltou ao controlador.)
  5. Controlador de enviar os dados para Vista (Cliente).
  6. Cliente tem o serviço solicitado na frente dele.

Isso é tudo sobre MVC que eu sei.

Dê-se uma pausa. E não restringir-se a certos padrões na resolução de problemas do mundo real. Basta lembrar alguns princípios gerais, uma das quais é separação de interesses .

Além de ser linear, outra grande diferença que não foi suficientemente enfatizado aqui é que no modelo N-tier, N não é necessariamente 3-camadas! É mais freqüentemente implementados como três níveis (apresentação, aplicação, dados) com a camada do meio, tendo dois subníveis (lógica de negócios e acesso a dados). Além disso, o modelo no MVC podem conter dados e lógica de negócios para manipulação de dados, enquanto que estes seriam em camadas separadas em n-tier.

Arquitetura Um N-Tier é melhor definida usando um diagrama de implantação.

Arquitetura Um MVC é melhor definida usando um diagrama de seqüência.

A 2 não são os mesmos e não estão relacionados e você pode combinar as duas arquiteturas juntos. Muitas empresas têm tomado os passos para criar a arquitetura N Tier'd não só para a implantação e escalabilidade, mas para a reutilização de código também.

Por exemplo, seus objetos de entidade de negócios podem precisar de ser consumida por um aplicativo de desktop, um serviço web exposta para um cliente, um aplicativo web ou um aplicativo móvel. Simplesmente usando uma abordagem MVC não vai ajudá-lo a reutilização nada.

Conclusão: N-tier é uma arquitetura, MVC um padrão de design. Eles são a mesma metáfora aplicada em dois campos diferentes.

Jerry: Aqui está um exemplo simples de como os dois estão relacionados:


Nível 1 - consiste em modelos que se comunicam com Tier 2 por algum tipo de serviço de rede ou similar, os controladores para validação de entrada alça, cálculos e outras coisas relevantes para as vistas. E contém os próprios, é claro vistas -. Que pode ser a GUI em um desktop app, ou a interface web em um web-app


Tier 2 - Contém algum tipo de serviço ou outra forma de recebendo mensagens do Tier 1. Será que não / não deve saber sobre Nível 1, por isso só pode responder a chamadas de cima - nunca pedem as coisas por si mesmo. Também contém todos os negócios lógica.


Tier 3 - Contém o modelo de domínio, representação de objeto do banco de dados e toda a lógica de se comunicar e atualização de banco de dados-entradas

.

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] MVC é triangular:. A visão envia atualizações para o controlador, o controlador atualiza o modelo, ea vista é atualizado diretamente do modelo

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top