Patrón DTO + Carga diferida + Entity Framework + ASP.Net MVC + Auto Mapper

En primer lugar, Perdón por una pregunta larga, pero tengo que dar algo de información subyacente.

Estamos creando una aplicación que utiliza ASP.net MVC, plantillas JQuery, Entity Framework, WCF y usamos POCO como nuestra capa de dominio. En nuestra aplicación, hay una capa de servicios WCF para intercambiar datos con la aplicación MVC de ASP.net y utiliza objetos de transferencia de datos (DTO) de WCF a MVC.

Además, la aplicación utiliza la carga diferida en Entity Framework mediante el uso de AutoMapper al convertir dominios a DTO en nuestra capa de servicio WCF.

Nuestra arquitectura de fondo como sigue (Servicios WCF -> Administradores -> Repositorio -> Entity Framework (POCO))

En nuestra aplicación, no usamos modelos de vista, ya que no queremos otra capa de mapeo para la aplicación MVC y solo usamos DTO como modelos de vista.

En general, tenemos DTOs normales y Lite para dominios como Customer, CustomerLite, etc. (El objeto Lite tiene pocas propiedades de lo normal).

Ahora estamos teniendo algunas dificultades con los DTO porque nuestra estructura DTO se está volviendo más compleja y cuando pensamos en la capacidad de mantenimiento (con la estructura jerárquica general de los DTO) perdemos el rendimiento.

Por ejemplo,

Tenemos la página de vista del cliente y nuestra jerarquía DTO de la siguiente manera

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

En este caso, no queremos algunos campos de OrderLiteDto para esta vista. Pero alguna otra vista necesita esos campos, así que para facilitarla, usamos esa estructura.

Cuando se trata de la asignación automática, asignamos CustomerViewDetailsDTO y obtendremos datos adicionales (que no se requieren para una vista en particular) de Lazy Loading (Entity Framework).

Mis preguntas:

¿Existe algún mecanismo que podamos usar para mejorar el rendimiento al tiempo que consideramos la capacidad de mantenimiento?

¿Es posible usar Automapper con más funciones de mapeo basadas en vista de mapa para el mismo DTO?

Respuestas a la pregunta(1)

Su respuesta a la pregunta