Estoy en medio de una "discusión" con un colega sobre la mejor manera de implementar la capa de datos en una nueva aplicación.Mejores prácticas de la capa de datos
Un punto de vista es que la capa de datos debe tener en cuenta objetos comerciales (nuestras propias clases que representan una entidad), y poder trabajar con ese objeto de forma nativa.
El punto de vista opuesto es que la capa de datos debe ser agnóstico a objetos, y puramente manejar tipos de datos simples (cadenas, Bools, fechas, etc.)
puedo ver que ambos enfoques pueden ser válidas, pero mi propio punto de vista es que prefiero el primero. De esta forma, si el medio de almacenamiento de datos cambia, la capa empresarial no debe (necesariamente) cambiar para adaptarse a la nueva capa de datos. Por lo tanto, sería una cosa trivial cambiar de un almacén de datos SQL a un almacén de sistema de archivos xml serializado.
El punto de vista de mi colega es que la capa de datos no debería tener que conocer las definiciones de los objetos, y que, siempre que los datos se pasen de forma adecuada, es suficiente.
Ahora, sé que esta es una de esas preguntas que tiene el potencial de comenzar una guerra religiosa, pero agradecería cualquier comentario de la comunidad sobre cómo abordas esas cosas.
TIA
Estoy totalmente de acuerdo. El diseño de las Capas de acceso a los datos, etc. se está volviendo bastante borroso. Mientras que siempre optaría por separar su lógica de negocio de las capas de presentación. Patrón MVC FTW ;-) –