Estoy usando una arquitectura simple de 3 niveles. En esto estoy usando clases DTO para comunicarme entre UI, BL y DL. Entonces, ¿hay alguna forma mejor de comunicación entre las capas? o esta es la forma correcta?Uso de DTO en la arquitectura de 3 niveles
Respuesta
DTO, Objeto de transferencia de datos, es el concepto de capa de distribución, que se utiliza al transferir datos entre sus consumidores y su servicio. Entonces, si no publica ningún servicio, abandone el DTO.
Para responder a su pregunta, también depende de qué tan compleja sea su aplicación. Si es simple, solo use la operación CRUD, o incluso puede usar DataTable
, DataSet
para la comunicación.
De lo contrario, la entidad de dominio de DDD es el objeto central para la comunicación entre capas: capa de acceso a datos, capa lógica de negocios y capa de presentación.
Básicamente, hay algún tipo diferente de objetos de aplicación:
- DTO, se utilizará Cuando los servicios públicos, objeto principal de comunicación entre los consumidores y su servicio.
- Ver modelo, objeto en la capa de presentación para admitir la IU.
- La entidad de dominio es de la capa de lógica de negocios para contener la lógica de negocios.
tener cuidado con el término:
- Nivel: significa físico, como servidor de base de datos, servidor web.
- Capa: significa capa lógica: capa de persistencia, capa de lógica de negocios, capa de acceso a datos.
Lea esto tutorial es muy informativo. Te ayudará a decidir si es DTO adecuado para tu situación.
Gracias, el mejor tutorial de DTO que he leído. Intentando resumir: los DTO son óptimos desde una perspectiva de desacoplamiento, separando la capa de presentación de la capa de negocios. Pero puede ser una victoria pírrica; crear cientos de clases de DTO hincha el proyecto y genera gastos generales. El autor dice que si usar DTO depende de los detalles del proyecto. Propone una vía pragmática intermedia en la que se permite hacer referencia a los objetos de la entidad en la capa de presentación. – Gruber
Además de la respuesta de @ Talha, recomendaría este article. Está orientado a EF, pero los conceptos, descritos allí, son comunes.
- 1. ¿Explicar los diferentes niveles de la arquitectura de 2 niveles y 3 niveles?
- 2. Transfiriendo la arquitectura típica de 3 niveles a los actores
- 3. Cómo implementar una arquitectura .NET de 3 niveles utilizando Winforms
- 4. ¿Cuál es la diferencia entre desarrollar un sitio web en MVC y arquitectura de 3 niveles o N niveles?
- 5. WPF: ¿dónde poner DAL en el diseño de arquitectura de 3 niveles con MVVM?
- 6. Memcache (d) vs. Varnish para acelerar la arquitectura web de 3 niveles
- 7. ¿Vale la pena utilizar la arquitectura de 3 niveles para aplicaciones pequeñas (ish)?
- 8. Necesito alguna aclaración sobre la arquitectura MVC y la arquitectura de tres niveles
- 9. Ejemplo de arquitectura de 4 niveles (para N-Tier)?
- 10. Consejos para pasar a una arquitectura Delphi de varios niveles
- 11. arquitectura de 3 capas: paso de datos entre capas
- 12. Rails Recursos anidados profundos de 3 niveles
- 13. ¿Es ineficaz una arquitectura de nivel 3 (física)?
- 14. LINQ consultas con 3 niveles
- 15. Error al manejar en la arquitectura de 3 capas
- 16. Uso de los niveles de log4J
- 17. ¿Dónde debe realizarse la conversión de valores de presentación en arquitectura de varios niveles?
- 18. Enterprise ASP.NET MVC 3 esquema de arquitectura
- 19. Layout Anidado de Múltiples Niveles en Rieles 3
- 20. ¿Dónde encaja la API web en una arquitectura típica de n niveles?
- 21. ¿Cómo debe decidir mi equipo entre las arquitecturas de 3 y 2 niveles?
- 22. patrón de 3 niveles y grandes cantidades de datos
- 23. Uso de múltiples niveles de máscara índice booleano en NumPy
- 24. Diferencia entre el controlador MVC y la lógica de negocios (3 niveles)
- 25. Manejo de errores y comentarios al realizar operaciones masivas en una arquitectura de varios niveles
- 26. Arquitectura para proyecto web MVC/uso de diferentes tipos de modelos
- 27. En los servicios web RESTful, ¿los DTO de respuesta deben contener sus DTO secundarios?
- 28. Ignorar método igual en DTO
- 29. DTO en Play Framework
- 30. ¿Cuán estrictamente sigue la arquitectura de n niveles y la separación de preocupaciones entre las capas en sus proyectos?
define "comunicar" – jgauffin