Solución:
Comencemos con el propósito de cada uno: –
DTO
Objetos de transferencia de datos. Estos se utilizan generalmente para transferir datos del controlador al cliente (JS). El término también se usa para POCO / POJO por pocos que realmente contienen los datos recuperados de la base de datos.
DAO
El objeto de acceso a datos es uno de los patrones de diseño utilizados para implementar DAL. Esto crea y ejecuta consultas en la base de datos y mapea el resultado a POCO / POJO usando varios otros patrones, incluidos ‘Objeto de consulta’, ‘Asignador de datos’, etc. La capa DAO podría ampliarse aún más utilizando el patrón ‘Repositorio’.
DAL
La capa de acceso a datos abstrae las actividades de su base de datos usando DAO / Repository / POCO, etc. Los ORM le ayudan a construir su DAL, pero podría implementarse sin usarlos también.
MVC
Model View Control es un patrón que se utiliza para separar la vista (presentación) de la lógica empresarial. Para MVC, no importa si DAL está implementado o no. Si no se implementa DAL, la lógica de la base de datos simplemente ingrese en su modelo, lo cual no es un buen enfoque.
En aplicaciones más grandes, MVC es el nivel de presentación solo de una arquitectura de N niveles.
Los modelos consumen la mayor parte de su lógica empresarial como se indicó anteriormente. En la aplicación de N niveles, si la lógica empresarial está completamente separada con el propósito de volver a usarla entre aplicaciones / plataformas, los modelos en MVC se denominan modelos anémicos. Si no es necesario reutilizar BI a esa escala en su aplicación, puede usar Model para mantenerlo. Sin confusión, ¿verdad?
Me alegraría que alguien me dijera la verdad sobre cómo funcionan juntos.
Todos los patrones MV * definen solo la idea / concepto; no definen la implementación. Los patrones MV * se centran principalmente en separar la vista de BI. Solo concéntrate en esto.
Consulte esta respuesta para obtener detalles sobre los diferentes objetos que contienen datos.
Es posible que desee distinguir primero entre el patrón MVC y la arquitectura de 3 niveles. Para resumir:
Arquitectura de 3 niveles:
- datos: datos persistentes;
- servicio: parte lógica de la aplicación;
- presentación: hmi, webservice …
Ahora, para la arquitectura de 3 niveles anterior, el patrón MVC tiene lugar en el nivel de presentación de la misma (para una aplicación web):
- datos: …;
- Servicio: …;
- presentación:
- controlador: intercepta la solicitud HTTP y devuelve la respuesta HTTP;
- modelo: almacena los datos que se mostrarán / tratarán;
- vista: organiza la salida / visualización.
Ciclo de vida de una solicitud HTTP típica:
- El usuario envía la solicitud HTTP;
- El controlador lo intercepta;
- El controlador llama al servicio apropiado;
- El servicio llama al dao apropiado, que devuelve algunos datos persistentes (por ejemplo);
- El servicio trata los datos y los devuelve al responsable del tratamiento;
- El controlador almacena los datos en el modelo apropiado y llama a la vista adecuada;
- La vista se crea una instancia con los datos del modelo y se devuelve como la respuesta HTTP.