Entradas

Mostrando las entradas con la etiqueta Modularizacion

Módulos en Genexus.

Imagen
Hace unos días conversando con colegas de la comunidad Genexus,  en una charla por otro tema, comenté un problema que me hace pensar desde hace tiempo. Ese no era el lugar para hacer planteos técnicos. Los módulos son un objeto con muchísima potencia, muy sub utilizados y que les falta poco para obligar a una programacion modular en Genexus. Cual es el principal problema? Voy a mostrar un ejemplo ultra sencillo y pero creo que representativo. Para los programadores GeneXus que recién están empezando,  es mucho mas facil escribir for each     where EmpresaID=&EmpresaId         &NombreEmpresa=NombreEmpresa endfor que buscar cual es el procedure que devuelve el nombre de la Empresa y poner &NombreEmpresa=GetEmpresa_Nombre(&EmpresaID) En KB Grandes, es realmente dificil y lento encontrar cual es el objeto que tengo que llamar para traer el nombre de la empresa. No hay una forma facil de buscar los objetos publico...

De cuantas formas se puede modularizar un sistema?

Imagen
Este es un problema interesante, con unas cuantas consecuencias practicas. Tengo una KB con n objetos y la quiero modularizar. Para simplificar, defino que quiero dividirla en K modulos, con  1<= k <= n. De cuantas formas diferentes puedo modularizarla? Sea S(n,k) la función que cuenta la cantidad de formas de modularizar, con n objetos y k modulos.  Dividimos el problema en 2 casos excluyentes: Caso 1: Hago un modulo solo con el elemento n. Me quedan n-1 elementos, para agrupar en k-1 módulos, que puedo escribir de la forma S(n-1,k.-1).  Caso 2: n esta en un modulo con otros objetos. Esto es lo mismo que poner el objeto n en los k modulos que tienen los n-1 elementos restantes. y puede escribirse como k * S(n-1,k)  La cantidad de forma de modularziar entonces, seria la suma de ambos casos y puede escribirse de la forma:       S(n,k) =  S(n-1,k-1) + k* S(n-1,k) a estos numeros se los conoce como...

Modularizar una KB grande.

Imagen
Problema: Tengo una KB con mas de 10.000 objetos y se debe organizar en módulos mas pequeños. Se necesita: Metodología que permita realizar dicha modularización, de forma de mantener el funcionamiento del sistema generado a partir de la KB. Metodología propuesta.  Bajar una KB desde GXServer. Hacer un build all exitoso (es importante pues se agregan referencias a tablas) Mientras queden objetos de la aplicación sin módulo hacer: Elección que modulo se va a  crear  y cuales seran sus tablas.  Sacar una lista de URL de todos los objetos de la KB Crear Modulo y poner Visibility como Private.  Mover los Folders correspondientes al Modulo.  Identificar todas las transacciones que generan las tablas del modulo y moverlas al modulo.  Sacar del modulo los objetos que no correspondan  Marcar como públicos los objetos interfaz del modulo. (Todos los dames se mantendrán privados por default) Revisar los objetos externos al modulo que ...