Alias

11:47AM sep 18, 2005 en categoria Licurgo por Enrique Rodriguez Lasterra

Etiquetas:


No... no me refiero a la serie de televisión en la que Jennifer Garner salvaguarda al mundo de los malos. Me refiero a la posibilidad de dar diferentes nombres a los Types y sus Propiedades, o para no creyentes en SDO, a las tablas y sus campos

Esto nos va a permitir utilizar nuestro código ya programado utilizando licurgo, contra bases de datos que no hemos creado nosotros o que lo hicimos sin pensar en el código actual. Por ejemplo, típica aplicación de noticias. La información estará en una tabla que en tu código se conoce como news, pero quieres utilizarlo para acceder a la tabla noticias que utiliza esa otra aplicación que hiciste hace un par de años.
La definición para la tabla noticias seria esta

<dataobject name="noticias"
    datasource="test"
    primary-key="ID"
    auto="false"
    alias="news"
>
    <fields&g;
        <field name="noticia_id" alias="ID" type="integer" size="4" default="0" nullable="false" /<>
        <field name="titulo" alias="subject" type="varchar_ignorecase" size="4" default="name" nullable="true" />
        <field name="texto" alias="text" type="varchar_ignorecase" size="15" default="description" nullable="true" />
    </fields>
</dataobject>

Con esta definicion del dataobject lo mismo puedes hacer datasource.load("news","1") que datasource.load("noticias","1"). De igual forma esto es aplicable inserts, deletes o acceso directo al data object dataobject.set("noticia_id","1") es igual que dataobject.set("ID","2")

Aún tengo que consultar con la almohada, o en su defecto con Al y woviux, esta funcionalidad. Me queda un poco la sensación que en OREO estaba un poco mejor planteado. En OREO era obligatorio rellenar el "table_name" y "name" a nivel del dataobject, para que quedará bien claro que una cosa era el nombre de la tabla y otra el nombre del record/dataobject y que realmente el "name" era el que iba a ser usado en el código.
Otra cosa que se podia hacer con OREO era definir varios record/dataobject para una misma tabla con distintas configuraciones, por ejemplo para definir diferentes UIDGenerator en dos dataobjects que acceden a una misma tabla. Esto todavia en licurgo no se puede hacer aunque yo solo recuerdo haberlo hecho una vez con OREO



Comentarios:

"En OREO era obligatorio rellenar el "table_name" y "name" a nivel del dataobject, para que quedará bien claro que una cosa era el nombre de la tabla y otra el nombre del record/dataobject y que realmente el "name" era el que iba a ser usado en el código."

Convention over configuration.

Enviado por Aitor García en septiembre 19, 2005 a las 08:19 AM CEST #

Aitor, no le digas esas cosas que me lo asustas ;-). Aunque claro, una cosa es el funcionamiento "normal" y en el que controlas todas las partes, y otra el que heredas una base de datos con "nombre a la vb". Por ahí va Enrique.

Como te he comentado, Enrique, en el caso de las tablas me parece deseable, en el de los campos... la verdad es que creo que eso hará poco más que crear confusión a la hora de escribir los nombres en uno u otro lado, pero vamos, que si lo dejas como opcional... .

Enviado por Al en septiembre 19, 2005 a las 09:19 AM CEST #

Si, lo de convention over configuration ya me habia llegado a mis odios. Apunta aitor en tu GTD un post sobre eso, que sería interesante.

Yo creo q el software cuanto mas versatil, mejor, pero por supuesto con todas las opciones por defecto habilitadas, por lo tanto yo hablaria de Convention+Configuration. Espero que licurgo y canyamo vayan por ahi.

Enviado por lasterra en septiembre 19, 2005 a las 02:00 PM CEST #

que es y como se usa el record cest

Enviado por panchi en octubre 30, 2006 a las 05:56 PM CET #

Enviar un comentario:
  • Sintaxis HTML: Deshabilitado