Pregunta

Me preguntaba cuál es exactamente la diferencia entre MVC (que es un patrón arquitectónico) y una arquitectura de n niveles para una aplicación.Lo busqué pero no pude encontrar una explicación simple.Quizás soy un poco ingenuo con los conceptos de MVC, por lo que si alguien puede explicar la diferencia, sería genial.

salud

¿Fue útil?

Solución

arquitectura de N-capas por lo general tiene cada capa separada por la red. ES DECIR. la capa de presentación es en algunos servidores web, a continuación, que las conversaciones a backend servidores de aplicaciones sobre la red de lógica de negocio, a continuación, que se comunica con un servidor de base de datos, de nuevo por la red, y tal vez el servidor de aplicación también llama a algunos servicios remotos (por ejemplo Authorize.net para procesar el pago).

MVC es un patrón de diseño de programación en diferentes porciones de código son la representación de la Modelo, Vista y Controlador de alguna aplicación. Estas dos cosas están relacionadas, ya que, por ejemplo, la capa de modelo puede tener una aplicación interna que llama a una base de datos para almacenar y recuperar datos. El controlador puede residir en el servidor web, y de forma remota llamar appservers para recuperar los datos. MVC abstrae los detalles de cómo se implementa la arquitectura de una aplicación.

N-tier simplemente se refiere a la estructura física de una implementación. Estos dos son a veces confundido porque un diseño MVC se implementa a menudo usando una arquitectura de N-capas.

Otros consejos

Si un diseño de 3 niveles eran como sigue:

Client <-> Middle <-> Data

el golpeteo MVC sería:

     Middle
     ^    |
     |    v
Client <- Data

Lo que significa que:

  • en la 3-tier equivalente, la comunicación entre capas es bi-direccional y siempre pasa a través de la etapa intermedia de
  • en el equivalente MVC la comunicación es en unidireccional ; podríamos decir que cada "capa" es actualizada por el de la izquierda y, a su vez, actualiza el uno a la derecha -donde "izquierda" y "derecha" son meramente ilustrativas

P.S. Cliente sería el Ver y Medio controlador

Esto es lo que decir sobre arquitectura de n niveles

  

A primera vista, los tres niveles de mayo   parecer similar a la MVC (Modelo Vista   Controlador) concepto; sin embargo,   topológicamente son diferentes. UNA   norma fundamental en una de tres niveles   la arquitectura es el nivel de cliente que nunca   se comunica directamente con los datos   nivel; en un modelo de tres niveles todo   la comunicación debe pasar a través de la   nivel intermedio. conceptualmente, el   arquitectura de tres niveles es lineal.   Sin embargo, la arquitectura MVC es   triangular: la vista envía cambios a   el controlador, el controlador actualizaciones   el modelo, y la vista se actualizan   directamente del modelo.

La única similitud es que los dos patrones tienen tres cajas en sus diagramas. Fundamentalmente son completamente diferentes en sus usos. Si el hecho, no es generalmente una opción entre las que el patrón de usar, pero ambos patrones se puede utilizar junto harmoneously. Aquí es una buena comparación de los dos: http: // allthingscs.blogspot.com/2011/03/mvc-vs-3-tier-pattern.html

Una regla fundamental en la arquitectura de tres capas es la capa de cliente no se comunica directamente con el nivel de datos; en un modelo de tres niveles toda la comunicación debe pasar a través de la capa de middleware.

Es arquitectura liner. Esto se refiere a 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 del modelo. Esto se refiere a cuestiones de cómo una interfaz de usuario gestiona los componentes de la pantalla.

@Cherry Middle Ware funciona más como un controlador de solicitud o redirector en el patrón MVC.

Me gustaría explicar un poco sobre MVC. Según yo, Model View Controller funciona así.

  1. El cliente inicia la sesión solicitando cualquier servicio.
  2. Esta solicitud es recibida y manejada por el Controlador (controlador de solicitudes, redirector, etc.)
  3. El controlador procesa una información básica sobre la solicitud y la redirige al modelo correspondiente que puede completar la solicitud de datos.
  4. El modelo completa la solicitud de acuerdo con los parámetros pasados ​​por el Controlador y envía los resultados al Controlador.(Nota:Aquí me gustaría aclarar que los datos no se devuelven directamente al cliente en la verdadera arquitectura MVC, sino que se llenan y se devuelven al controlador).
  5. Controlador que envía esos datos a Ver (Cliente).
  6. El cliente tiene el servicio solicitado frente a él.

Eso es todo sobre MVC que yo sepa.

Tómese un descanso. Y no se limite a ciertos patrones en la resolución de problemas del mundo real. Sólo recuerde algunos principios generales, uno de los cuales es separación de intereses .

Además de ser lineal, otra gran diferencia que no fue suficiente hincapié aquí es que en el modelo de N-capas, N no es necesariamente de 3 niveles! Es más a menudo se implementa como tres niveles (presentación, aplicación, datos) con la capa intermedia que tiene dos sub-niveles (lógica de negocio y de acceso a datos). Además, el modelo en MVC puede contener tanto datos y la lógica de negocio para la manipulación de datos, mientras que estos serían en niveles separados en n niveles.

Una arquitectura N-Tier se define mejor utilizando un diagrama de despliegue.

Una arquitectura MVC se define mejor utilizando un diagrama de secuencia.

El 2 no son los mismos y no están relacionados y se pueden combinar las dos arquitecturas juntos. Una gran cantidad de empresas se han dado los pasos para crear una arquitectura N Tier'd no sólo para el despliegue y la escalabilidad, pero para la reutilización de código también.

Por ejemplo, los objetos de negocio entidad puede tener que ser consumido por una aplicación de escritorio, un servicio web expuesto para un cliente, una aplicación web o una aplicación móvil. El simple uso de un enfoque MVC no le ayudará a volver a utilizar nada en absoluto.

Conclusión: N-tier es una arquitectura, MVC un patrón de diseño. Son la misma metáfora se aplica en dos campos diferentes.

Jerry: He aquí un ejemplo sencillo de cómo los dos están relacionados:


Nivel 1 - Consta de modelos que se comunican con el nivel 2 a través de algún tipo de servicio de red o similares, controladores para manejar la validación de entrada, los cálculos y otras cosas relevantes para las vistas. Y contiene los puntos de vista a sí mismos, por supuesto -. Que puede ser la interfaz gráfica de usuario en un escritorio de la aplicación, o la interfaz web en una aplicación Web


Nivel 2 - Contiene algún tipo de servicio o cualquier otro medio de mensajes que recibe del Nivel 1. No / no debe saber sobre el Nivel 1, por lo que sólo puede responder a las llamadas de arriba - no pedir cosas por sí mismo. También contiene toda la lógica de negocio.


Nivel 3 -. Contiene el modelo de dominio, de representación de objetos de la base de datos y toda la lógica para comunicarse y actualización de bases de datos-entradas

En un modelo de tres niveles todas las comunicaciones deben pasar a través de la etapa intermedia. Conceptualmente, la arquitectura de tres niveles es lineal. Sin embargo, el [modelo-vista-controlador] arquitectura MVC es triangular:. La vista envía actualizaciones al controlador, el controlador actualiza el modelo, y la vista se actualiza directamente del modelo

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top