In a multilayered application what is the right place for DTOs (Data Transfer Objects)? There is such opinion DTO is for data storage layer to domain layer communication but inappropriate for domain layer to upper logical levels interaction.
I am deleloping an application with the following layers: data storage, domain, service, presentation. Then what's right way to link service and presentation layers? I suppose opening access to the domain objects from the outside of domain layer is an encapsulation breach, so only way to solve the task is using DTO, but I'm unsure.