2012-09-20 15 views
10

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

+0

define "comunicar" – jgauffin

Respuesta

8

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:

  1. DTO, se utilizará Cuando los servicios públicos, objeto principal de comunicación entre los consumidores y su servicio.
  2. Ver modelo, objeto en la capa de presentación para admitir la IU.
  3. 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:

  1. Nivel: significa físico, como servidor de base de datos, servidor web.
  2. Capa: significa capa lógica: capa de persistencia, capa de lógica de negocios, capa de acceso a datos.
7

Lea esto tutorial es muy informativo. Te ayudará a decidir si es DTO adecuado para tu situación.

+0

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

1

Además de la respuesta de @ Talha, recomendaría este article. Está orientado a EF, pero los conceptos, descritos allí, son comunes.

Cuestiones relacionadas