Padrão DTO + Carregamento Preguiçoso + Estrutura de Entidade + ASP.Net MVC + Auto Mapper

Em primeiro lugar, desculpe por longa pergunta, mas eu tenho que dar algumas informações subjacentes.

Estamos criando um aplicativo que usa ASP.net MVC, modelos JQuery, Entity Framework, WCF e usamos POCO como nossa camada de domínio. Em nosso aplicativo, há uma camada de serviços do WCF para trocar dados com o aplicativo ASP.net MVC e usa objetos de transferência de dados (DTOs) do WCF para o MVC.

Além disso, o aplicativo usa Lazy Loading no Entity Framework usando o AutoMapper ao converter Domain-TO-DTOs em nossa Camada de Serviço do WCF.

Nossa arquitetura de back-end da seguinte forma (Serviços WCF -> Gerenciadores -> Repositório -> Entity Framework (POCO))

Em nosso aplicativo, não usamos View Models, pois não queremos outra camada de mapeamento para o aplicativo MVC e usamos apenas DTOs como View Models.

Geralmente, temos DTOs Normal e Lite para domínios como Cliente, CustomerLite, etc (O objeto Lite está tendo poucas propriedades além do Normal).

Agora estamos tendo algumas dificuldades com DTOs porque nossa estrutura de DTO está se tornando mais complexa e quando pensamos em capacidade de manutenção (com estrutura hierárquica geral de DTOs) perdemos Performance.

Por exemplo,

Temos a página Customer View e nossa hierarquia DTO da seguinte forma

 public class CustomerViewDetailsDTO
 {
   public CustomerLiteDto Customer{get;set;}
   public OrderLiteDto Order{get;set;}
   public AddressLiteDto Address{get;set;}
 }

Nesse caso, não queremos alguns campos de OrderLiteDto para essa visualização. Mas alguma outra visão precisa desses campos, então, para facilitar, usamos essa estrutura.

Quando se trata de mapeamento automático, mapeamos CustomerViewDetailsDTO e obteremos dados adicionais (que não são necessários para uma visualização específica) do Lazy Loading (Entity Framework).

Minhas perguntas:

Existe algum mecanismo que possamos usar para melhorar o desempenho enquanto consideramos a capacidade de manutenção?

É possível usar o Automapper com mais funções de mapeamento baseadas em map view para o mesmo DTO?

questionAnswers(1)

yourAnswerToTheQuestion