Definiciones de conversión entre estructuras relacionales y objetos (Object Relational Mappers)
LA OTRA OPCION DISPONIBLE A LA ESCRITURA DE MUCHO SQL – CHRIS KOCH
En el capítulo 3 hicimos nuestro primer esfuerzo para unir el mundo de los objetos con los datos mediante la escritura a mano de nuestra propia capa de acceso a datos y su definición de conversión. Este enfoque resultó ser más bien limitado y requirió una cantidad significativa de código repetitivo (aunque fue útil para demostrar las bases). Agregar más objetos y funcionalidad sobrecargaría nuestro Capa de Acceso a Datos (DAL) en una enorme violación inmanejable del principio que dicta ‘No te repitas a ti mismo’ (DRY, por sus siglas en inglés). En este capítulo veremos un marco de trabajo real para la definición de conversiones entre Objetos y Entidades Relacionales (O/R Mapping) que haga todo el trabajo pesado por nosotros. Específicamente veremos el popular marco de trabajo de código abierto llamado NHibernate.
La única y más grande barrera que impide a la gente adoptar el diseño guiado por el dominio (DDD por sus siglas en inglés), es el problema de la persistencia. Mi propia adopción de las definiciones de conversión entre estructuras relacionales y los objetos (O/R Mappers) inicio con gran confusión y duda. Básicamente se te pedirá que cambies tu conocimiento de un método probado por algo que parece de un poco mágico. Puede ser requerida algo de fe ciega.
La primer cosa con la que hay que llegar a un acuerdo es con que las definiciones de conversión generan tu SQL por ti, lo sé, suena como que será algo lento, inseguro e inflexible, especialmente debido a que probablemente imaginaste que se tendría que usar SQL en línea. Pero sí puedes quitarte esos miedos de tu mente por un segundo, tienes que admitir que podría ahorrarte mucho tiempo y tener como resultado un número mucho menor de defectos. Recuerda, queremos enfocarnos en construir el comportamiento, no preocuparnos con cuestiones de interconexión (y si te hace sentir mejor, una buena definición de conversiones entre estructuras relacionales y objetos te proveerá formas sencillas de desactivar la generación automatizada de código y ejecutar tu propio SQL o tus procedimientos almacenados).
6189747e-a622-4016-9fba-ccaf3c93c930|0|.0