Digamos que mi capa de negocio actualmente contiene un montón de DTO y clases de servicio separadas para comunicarse con el repositorio de datos.¿Qué capa funciona como: el almacenamiento en caché y el registro pertenecen?
Ejemplo:
class PersonService
{
IPersonRepository _personRepository;
ILogging _logger;
ICacheStorage _cache;
// Constructor here to create concrete objects.
public Person GetPersonById(int Id)
{
// error logging and caching here???
}
}
¿Tiene sentido para iniciar la sesión y la memoria caché en esta capa? ¿O tendría más sentido para una capa de servicio de aplicaciones manejar estas preocupaciones? O tal vez algo más en total?
+1. Use el almacenamiento en caché donde sea que tenga sentido. Podría usarlo dentro del DAL para que sea más fácil su propia vida; y el BL podría almacenar en caché las cosas que obtiene del DAL para ahorrar en llamadas a través del límite BL \ DAL. Esto último también tiene sentido si el BL habla con más de una implementación DA (como un servicio). –
De acuerdo: la tala es una preocupación transversal y puede ir a cualquier parte. –