miércoles, 31 de octubre de 2007

Que es un ORM (object-relational mapping)

El ORM es un componente de software que me permite trabajar con los datos persistidos como si ellos fueran parte de una base de datos orientada a objetos (en este caso virtual). Debido a que lo standard es trabajar con BD relacionales, se deben realizar operaciones que permitan transformar un registro en objeto y viceversa. A esta funcionalidad se la llama Mapeo objeto-relacional (ORM).
Uno de los componentes ORM más utilizado (sino el más...) es el Hibernate, surgido del ambiente Java y llevado al uso del framework .NET con la versión NHibernate
Para poder explicar el porqué de la existencia de esta tecnología, nada mejor que un ppt que preparé para una clase sobre este tema a los alumnos del último año de TSSI, que les dejo disponible a continuación.



*(Si les aparece el mensaje que "ha sido removido o es privado" pulsen en "VER"
al lado del logo de "slideshare", gracias)

6 comentarios:

Diego dijo...

Muchas gracias. Acabo de encontrar este blog y es fantastico. Una preguntilla a ver si puedes ayudarme ¿Hay alguna opcion interesante de ORM para la compact framework?

un saludo

Jorge Ercoli dijo...

Diego, si ya estas con Net CF 3.5, tienes la muy buena opción de usar LINQ. El único que no tienes en el CF es Linq for Entities; de todas formas es aconsejable que uses Linq for Sql (revisa este ejemplo: http://www.codeproject.com/KB/mobile/DatasetsAndLINQ.aspx).
Sino tienes el EntitySpaces para CF (http://www.entityspaces.net/Portal/Default.aspx) con un provider para SqlServer CE y otro para VistaDB, es un template para el MyGeneration y funciona como un Active Record. Los pasos serian:

1) instalar el MyGeneration
2) conectar el MyG a tu BD
3) instalar EntitySpaces
4) generar las clases EntitySpaces dentro de un proyecto de VS
5) agregar las referencias a las librerias del EntitySpaces (Core, Interfaces,..) y al Provider de BD que usaras
6) agregas el using al namespace donde estan las clases EntitySpaces que representan tus tablas de tu Bd seleccionada (digamos ahora, tus Objetos de negocio)

Aca tenes el GetStarted : http://www.entityspaces.net/documentation/getstarted.pdf

Suerte Diego y gracias por lo de "blog fantastico". Nos leemos.

Diego dijo...

Gracias por la ayuda, por ahora tengo varias aplicaciones en Compact Framework 2, pero no descarto pasarme al 3.5 para la siguiente aplicación que tenga que hacer.Por ahora estoy usando una arquitectura de 3 capas pero la capa de acceso a datos está hecha manualmente.Voy a revisar las opciones que me comentas y a experimentar un poco con ellas. Un saludo

Ángel dijo...

Jorge, muy interesante. He llegado de casualidad a tu blog y me ha parecido muy didáctico.

Saludos desde Barcelona.

Jorge Ercoli dijo...

Gracias Angel, realmente implica un esfuerzo cada post que armo, porque intento poner muchas imágenes y ejemplos para que den ganas de leerlo.
Este mes volveré a generar algunos post, asi que echale un vistazo a tu lector de RSS.

NOEL dijo...

Hola jorge ante todo agradecerte por las ayudas que brindas...estoy empezando a llevar java y la verdad quiero aprender a programar pero de la forma correcta usando los patrones DAO o MVC y si tienes unos ejemplos te agradeceria que me los envies wilmer_noel@hotmail.com gracias por adelantado