model-view-controller architecture three-tier

model view controller - ¿Cuál es la diferencia entre la arquitectura de 3 niveles y un mvc?



model-view-controller architecture (8)

Comparación con la arquitectura MVC

A primera vista, los tres niveles pueden parecer similares al concepto de modelo-vista-controlador (MVC); sin embargo, topológicamente son diferentes. Una regla fundamental en una 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, todas las comunicaciones deben pasar por el nivel medio . Conceptualmente, la arquitectura de tres niveles es lineal . Sin embargo, la arquitectura MVC [modelo-vista-controlador] es triangular : la vista envía actualizaciones al controlador, el controlador actualiza el modelo y la vista se actualiza directamente desde el modelo.

Fuente: en.wikipedia.org/wiki/…

¿Cuál es la diferencia entre la arquitectura de 3 niveles y un mvc?

¿Son ellos mismos?

Ambos tienen 3 capas, es decir, modelo, vistas y controlador


En la solución de tres niveles, la IU está separada del nivel empresarial para garantizar que el diseñador de IU que se preocupa por la apariencia no se confunda con la programación pesada que se deja a las profesiones de programación.

Esta arquitectura (tres niveles) es esencial cuando un gran número de personas participan en la producción de una gran aplicación.


La principal diferencia entre ambos es:

Una arquitectura de tres niveles es el nivel del cliente nunca se comunica directamente con el nivel de datos En un modelo de tres niveles, todas las comunicaciones deben pasar por el nivel medio

La arquitectura MVC es triangular: la vista envía actualizaciones al controlador, el controlador actualiza el modelo y la vista se actualiza directamente desde el modelo


La principal diferencia entre ambos es: un "nivel" en este caso también se puede denominar "capa". Los tres niveles, o capas, implicados incluyen: Una capa de presentación que envía contenido a navegadores en forma de HTML / JS / CSS. Esto podría aprovechar marcos como React, Angular, Ember, Aurora, etc. Una capa de aplicación que utiliza un servidor de aplicaciones y procesa la lógica de negocios para la aplicación. Esto podría estar escrito en C #, Java, C ++, Python, Ruby, etc. Una capa de datos que es un sistema de administración de bases de datos que proporciona acceso a los datos de la aplicación. Esto podría ser MSSQL, MySQL, Oracle o PostgreSQL, Mongo, etc.

La arquitectura MVC es triangular: la vista envía actualizaciones al controlador, el controlador actualiza el modelo y la vista se actualiza directamente desde el modelo


MVC es un patrón utilizado para hacer que el código de UI sea más fácil de mantener y probar. Cuando se usa el patrón MVC, una porción más grande del código UI puede ser probada en unidades.

Aquí hay un buen artículo que describe el patrón MVC con más detalle: http://martinfowler.com/eaaDev/uiArchs.html

La arquitectura de 3 niveles es un patrón utilizado por una razón completamente diferente. Separa toda la aplicación en "grupos" significativos: interfaz de usuario, lógica de negocios, almacenamiento de datos.

Entonces la aplicación de 3 niveles se refiere a todos los códigos en la aplicación. El patrón MVC es un patrón utilizado en el nivel UI.

Aquí hay un buen artículo sobre la arquitectura de 3 niveles: http://dotnetslackers.com/articles/net/IntroductionTo3TierArchitecture.aspx

Para obtener más información, puede buscar en Internet y encontrar artículos completos sobre ambos temas.


Son similares en cierto modo, como:

  • 3 niveles divide toda la aplicación en: interfaz de usuario, lógica y datos
  • MVC divide la parte de UI en: vista (tipo de IU de la IU), modelo (datos) y controlador (lógica)

Pero la diferencia proviene de cómo los niveles se comunican entre sí:

  • 3 niveles: todo pasa por el nivel lógico (a-> b, b-> c y c-> b, b-> a)
  • MVC: se comunican de 2 en 2, de forma triangular. (a-> b, b-> c, c-> a)

http://en.wikipedia.org/wiki/Multitier_architecture En pocas palabras, en la arquitectura de 3 niveles, el nivel de presentación nunca se comunica directamente con el nivel de datos. En MVC, la relación entre modelo, vista y controlador es triangular. Dos de tres pueden comunicarse entre sí


En MVC : la arquitectura MVC es triangular: la vista envía actualizaciones al controlador, el controlador actualiza el modelo y la vista se actualiza directamente desde el modelo

En Tres niveles : una arquitectura de tres niveles es el nivel del cliente nunca se comunica directamente con el nivel de datos En un modelo de tres niveles, todas las comunicaciones deben pasar por el nivel medio