Contenido

Impel, completo ORM en Javascript para HTML5

22 mar

+ 13

Conocemos como ORM al mapeo de un objeto-relacional, o en palabras mundanas, al mapeo de una entidad de una base de datos en un objeto. La mayoría de lenguajes de programación implementan diferentes opciones y herramientas para realizar dicha tarea en los frameworks que usamos.

 var Card = new Class({
       Extends    : ImpelClass,
       peer_class : "CardPeer",
       toString   : function(){
                      return this.getName() + " of " + this.getSuit();
                    }
   });

 var CardPeer = new ImpelPeer({
        'columns'      : { 'id'    : 'card.id',    'suit' : 'card.suit',
                           'value' : 'card.value', 'name' : 'card.name'},
        'table'        : 'card',
        'base_object'  : 'Card'
   });

Javascript no iba a ser menos, y más ahora que HTML5 ha traido la base de datos al navegador con todo lo que eso conlleva. Impel, es el primero ORM que he visto para javascript y aunque no me ha dado tiempo a probarlo, parece que tiene muy buena pinta.

Dispone de una API bastante completa y al estar completamente modularizado, nos permite incluir nuevos módulos a nuestros proyectos fácilmente.

  • Vamos, perece que te pusiste las pilas con el Blog! arriba ese ánimo!

  • Iba a comentar algo similar al mensaje de arriba.
    Saludos Andrés.

  • Adhiero los mensajes escritos hasta ahora.
    Seguí adelante, muchas de éstas publicaciones son increíblemente útiles.

    Muchas gracias!
    Saludos

  • Yo utilizo el ORM Doctrine para Symfony, que es PHP. Es muy útil. Alguien sabría decirme qué aplicación práctica tiene un ORM en Javascript? Cuando se refresca la página se pierden los datos no? Otra cosa: se conecta con MySQL, por ejemplo? Un saludo.

  • @jqm: la idea es usar bases de datos persistentes del lado cliente o sea que podremos almacenar en la pc/navegador de quien nos visita mucho mas que una simple cookie. Como Andrés ya lo dijo alguna vez esto sería muy bueno para las aplicaciones web offline.

    @aNieto2k: que alegría volverte a ver acá, aun con twitter, buzz y todo el resto extraña el blog.

    Saludos

  • Muy interesante, habrá que tenerlo en cuenta seriamente. Pero imagino que aún no será compatible con todos los navegadores ¿cierto?

  • Lo que más me ha gustado de este ORM es que esta basado en MooTools :-), he lleido el código por encima y tiene muy buena pinta, espero poder leerlo más en detalle y comentar algo más sobre él.

    @jqm Un ORM se utiliza para abstraerse totalmente de la base de datos y trabajar directamente con objetos, al igual que lo haces con Doctrine en PHP, puedes hacerlo con Impel sobre JavaScript.

    HTML5 tiene la posibilidad de almacenar datos en una gestor de bases de datos interno (imaginalo así, el propio navegador hace de gestor de bases de datos), te recomiendo que leas estos enlaces:

    http://www.w3.org/TR/offline-webapps/
    http://creativepark.net/blog/entry/id/1191

    Inicialmente, el uso de bases de datos persistentes en el lado del cliente, se realizó para poder gestionar información en modo offline, pero tiene muchas más posibilidades, ya que siempre es más rápido hacer consultas en el lado del cliente, que hacer peticiones al servidor, por lo que un correcto diseño de la arquitectura de una aplicación podria aumentar el rendimiento de una aplicación haciendo uso de las bases de datos persistentes en el lado del cliente.

    Otro ejemplo de uso de un ORM (siempre pensando que almacenamos datos y trabajamos con bases de datos) sería para desarrollos móviles (para iPhone por ejemplo) (para
    Android yo usaría SQLite ya que tiene el soporte nativamente)

    En definitiva, los límites de su uso son nuestras ideas, mientras existan ideas siempre se podrá utilizar :-)

  • Gracias por la info. Tengo pendiente el echarle un vistazo a las nuevas funciones de HTML5 para guardar datos en el lado del cliente, aunque no le he dado mucha prioridad puesto que es una funcionalidad que no podre utilizar en muchos desarrollos (el HTML5 esta lejos de poder ser usado en produccion).

    Si tuviera mas tiempo…

  • He creado un ORM sencillo para WebSQL.
    En su día probe Impel y lo veía algo complejo.

    El ORM que he creado tiene una sintaxis muy sencilla y con cuatros líneas tienes tu modelo (crea automáticamente la tabla si no existe).

    El modelo de datos se define con array como el siguiente
    [snName, iAge, dnBorn ]

    El prefijo anterior a la primera maýuscula especifica el tipo y flags (como not null).

    Si alguien quiere echarle un vistazo y/o colaborar:

    http://code.google.com/p/orm-html5/

    Salu2!

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.