GeneXus Rocha Data Selectors- algunas reflexiones.


En Genexus Rocha (la próxima versión de GeneXus, que sera GX 10, o GX 2008) tiene algunos objetos nuevos, entre los cuales estan los Data Selectors.

Un Data Selector, es una forma de poder reutilizar navegaciones de forma facil.

Ejemplo:
Tengo una aplicación de Contabilidad, voy a tener una entidad Asientos (que estará formada por dos o mas tablas, Asientos y AsientosLineas).

La entidad Asientos, va a tener un atributo AsientoEstado (indica si esta contabilizado o no).
Luego, en mi aplicación, cuando quiera trabajar con Asientos, me va a interesar trabajar únicamente con los asientos que están contabilizados en la inmensa mayoria de los reportes y pantallas que tenga.

Por lo tanto, la navegacion

for each where AsientoEstado=EstadosAsiento.Contabilizado
.....
endfor

ahora puede escribirse de la forma:

for each USING AsientosContabilizados( )

.....
endfor

lo cual queda mucho mas claro, necesita menos código y además permite centralizar la definición del criterio de selección de asientos contabilizados.

Lo que me pregunto, es si no seria práctico tener algun "Data Selector" DEFAULT, por cada transaccion, de forma que todos los for each que no hagan referencia a un data selector explicito, usen ese.

De esta forma, creo que aun se podría escribir menos, pues solo en los (pocos) programas que necesiten ver los Asientos NO contabilizados, tendrían que hacer referencia a aun Data selector.

Lo que hay que investigar, es si es intuitivo para el programador, que sin el hacer nada, algunos registros quedan "escondidos" permitiéndole ver la solo una parte de los mismos.

Es un área interesante de investigación.

Multi-tenant y Data Selectors
Creo también que los Data Selectors, van a facilitar también el hacer aplicaciones que puedan ser utilizadas por varias empresas, que usen la misma base de datos (Multi-tenant architecture). Suponiendo que tengamos una aplicación WEB y que alquilemos el uso de la misma a diferentes empresas. Creo que el uso cuidadoso de Data Selectors, va a permitir que cada una de esas empresas tenga "su" visión de los datos y que ninguna pueda ver la de los demás.
Esto hoy se puede hacer, pero los data selectors ayudan a hacerlo mas fácil y de una forma mas declarativa.

Comentarios

Entradas más populares de este blog

Aplicación monolítica o distribuida?

La nefasta influencia del golero de Cacho Bochinche en el fútbol uruguayo

Funcionalidades de GeneXus que vale la pena conocer: DATE Constants.