La arquitectura de N niveles generalmente tiene cada capa separada por la red. Es decir, la capa de presentación está en algunos servidores web, luego eso habla con los servidores de aplicaciones de back-end a través de la red para la lógica empresarial, luego eso habla con un servidor de base de datos, nuevamente a través de la red, y tal vez el servidor de aplicaciones también llama a algunos servicios remotos ( diga Authorize.net para el procesamiento de pagos).
MVC es un patrón de diseño de programación en el que diferentes partes del código son responsables de representar el Modelo, la Vista y el controlador en alguna aplicación. Estas dos cosas están relacionadas porque, por ejemplo, la capa Modelo puede tener una implementación interna que llama a una base de datos para almacenar y recuperar datos. El controlador puede residir en el servidor web y llamar de forma remota a los servidores de aplicaciones para recuperar datos. MVC abstrae los detalles de cómo se implementa la arquitectura de una aplicación.
N-tier solo se refiere a la estructura física de una implementación. Estos dos a veces se confunden porque un diseño MVC a menudo se implementa utilizando una arquitectura de N niveles.
Si un diseño de 3 niveles fuera así:
el patrón MVC sería:
Significa que:
PS Client sería la vista y el medio del controlador
fuente
Esto es lo que dice sobre la arquitectura de n niveles
fuente
La única similitud es que los dos patrones tienen tres cuadros en sus diagramas. Fundamentalmente son completamente diferentes en sus usos. De hecho, no suele ser una elección entre qué patrón usar, pero ambos patrones se pueden usar juntos de forma dañina. Aquí hay una buena comparación de los dos: http://allthingscs.blogspot.com/2011/03/mvc-vs-3-tier-pattern.html
fuente
Una regla fundamental en la arquitectura de tres niveles es que el nivel del cliente nunca se comunica directamente con el nivel de datos; En un modelo de tres niveles, toda comunicación debe pasar por el nivel de middleware.
Es la arquitectura de línea. Esto aborda la cuestión de cómo pasar información entre un usuario y una base de datos. Donde como MVC es una arquitectura triangular: la Vista envía actualizaciones al Controlador, el Controlador actualiza el Modelo y la Vista se actualiza directamente desde el Modelo. Esto aborda preguntas sobre cómo una interfaz de usuario administra los componentes en la pantalla.
fuente
@Cherry Middle ware funciona más como un controlador de solicitudes o redirector en MVC Pattern.
Me gustaría explicar un poco sobre MVC, según mi opinión, el Controlador de vista de modelo funciona así.
Eso es todo sobre MVC que sé.
fuente
Date un descanso. Y no se limite a ciertos patrones al resolver problemas del mundo real. Solo recuerde algunos principios generales, uno de los cuales es SEPARACIÓN DE PREOCUPACIONES .
fuente
Además de ser lineal, otra diferencia importante que no se enfatizó lo suficiente aquí es que en el modelo de N niveles, ¡N no es necesariamente de 3 niveles! Con mayor frecuencia se implementa como tres niveles (presentación, aplicación, datos) con la capa intermedia que tiene dos subniveles (lógica de negocios y acceso a datos). Además, el modelo en MVC puede contener datos y lógica de negocios para la manipulación de datos, mientras que estos estarían en niveles separados en n-tier.
fuente
Una arquitectura de N niveles se define mejor usando un Diagrama de implementación.
Una arquitectura MVC se define mejor usando un diagrama de secuencia.
Los 2 no son iguales y no están relacionados, y puede combinar las dos arquitecturas juntas. Muchas empresas han dado los pasos para crear la arquitectura N Tier'd no solo para la implementación y la escalabilidad, sino también para la reutilización del código.
Por ejemplo, los objetos de su entidad comercial pueden necesitar ser consumidos por una aplicación de escritorio, un servicio web expuesto para un cliente, una aplicación web o una aplicación móvil. Simplemente usar un enfoque MVC no lo ayudará a reutilizar nada en absoluto.
fuente
Conclusión: N-tier es una arquitectura, MVC un patrón de diseño. Son la misma metáfora aplicada en dos campos diferentes.
fuente
Jerry: Aquí hay un ejemplo simple de cómo se relacionan los dos:
Nivel 1 : consta de modelos que se comunican con el Nivel 2 a través de algún tipo de servicio de red o similar, controladores para manejar la validación de entrada, cálculos y otras cosas relevantes para las vistas. Y, por supuesto, contiene las vistas en sí, que pueden ser la GUI en una aplicación de escritorio o la interfaz web en una aplicación web.
Nivel 2 : contiene algún tipo de servicio u otra forma de recibir mensajes del Nivel 1. No sabe / no debe saber sobre el Nivel 1, por lo que solo puede responder a las llamadas desde arriba; nunca pregunte por sí mismo. También contiene toda la lógica de negocios.
Nivel 3 : contiene el modelo de dominio, la representación de objetos de la base de datos y toda la lógica para comunicar y actualizar las entradas de la base de datos.
fuente
En un modelo de tres niveles, toda comunicación debe pasar por el nivel medio. Conceptualmente, la arquitectura de tres niveles es lineal. Sin embargo, la arquitectura MVC [model-view-controller] es triangular: la vista envía actualizaciones al controlador, el controlador actualiza el modelo y la vista se actualiza directamente desde el modelo.
fuente