Jump to content
uniGUI Discussion Forums
Kratov

CONFLICTO CON DATASET EN DATAMODULOS COMUNES A VARIAS FORMAS

Recommended Posts

Cordial saludo

 

Tenemos un problema al utilizar data Módulos en donde tenemos data set que se utilizan el el aplicativo, ya que al utilizarlos en los diferentes tabs donde abrimos formas, se colocan en en conflicto con otros dataset abiertos y trae la información de los otros data set abiertos.

 

La pregunta es si podemos instanciar o crear los data módulos por cada forma para evitar que esto suceda?   esto recargara mucho la memoria? o se aconsejaría  colocar los data set en cada forma.

 

 

Muchas gracias por su atención.

 

 

 

JAIME ZAMORA

Share this post


Link to post
Share on other sites

Hola Jaime

 

El señor Farshad aconseja que los Datasets sean colocados en sus respectivos formularios, de manera que se haga uso solamente de los recursos necesarios. Irte por la via de los DataModules provocaría que por cada sesión abierta se creen los DataModules, y si, te recargaria mucho la memoria del server con un montón de recursos innecesarios.

 

Saludos  y que tengas un buen día.

Share this post


Link to post
Share on other sites

Hola Jaime

 

El señor Farshad aconseja que los Datasets sean colocados en sus respectivos formularios, de manera que se haga uso solamente de los recursos necesarios. Irte por la via de los DataModules provocaría que por cada sesión abierta se creen los DataModules, y si, te recargaria mucho la memoria del server con un montón de recursos innecesarios.

 

Saludos  y que tengas un buen día.

Muchas gracias por tu ayuda.

Share this post


Link to post
Share on other sites

Hola Jaime

 

El señor Farshad aconseja que los Datasets sean colocados en sus respectivos formularios, de manera que se haga uso solamente de los recursos necesarios. Irte por la via de los DataModules provocaría que por cada sesión abierta se creen los DataModules, y si, te recargaria mucho la memoria del server con un montón de recursos innecesarios.

 

Saludos  y que tengas un buen día.

Hola Mike,

 

No tengo claro el tema, podria en aras de ayudarnos todos:

1. los datamodulos existen en forma nativa para unigui , si no se recomienda su uso porque existen? no deberia cambiarse?

2. si solo se crean una sola vez por sesion la carga inicial podria ser lenta (que es lento) y consumen mucha memoria (cuanto es mucho) y a partir de cuantos usuarios afectaria el sistema 10,100,1000..nn 

 

gracias mike

Share this post


Link to post
Share on other sites

Saludos colegas:

 

Primeramente debemos tener presente que UNIGUI es un Framework que traduce de Pascal a EXTJS. Los Datamodules que existen en UNIGUI, desde mi punto de vista son para mantener la compatibilidad con Delphi y como comodidad para aquellos que trabajamos con Delphi y mejor aun para aquellos no saben o no dominan el EXTJS, pero esa estructura no existe en EXTJS. Ahora, lo de los recursos que se crean, igualmente esta es mi opinión, pues no tengo definido como funciona UNIGUI internamente, los objetos en EXTJS para la carga de datos y su manipulación en son los Ext.data.Store, por lo que seguimos supuniendo, al crearse un Datamodule con unos cuantos Datasets, se crearían en el código EXTJS los Stores correspondientes, con sus respectivas definiciones de los campos con sus tipos de datos.

Ahora, la magnitud de lo el señor Farshad se refiere está dada en la cantidad de Datasets que tengas en tus Datamodules, y la complejidad que estos tengan, multiplicado por la cantidad de sesiones que se abran.

El impacto directo en el consumo de memoria se podría ver con el StressTestTool.

 

Espero haber sido de ayuda.

 

Saludos cordiales y que tengan un buen día.

Share this post


Link to post
Share on other sites

Creo que hay una confusión en la discusión.

Farshad no recomienda que se creen aplicaciones serias amontonando todo en un formulario. Eso iría contra casi toda recomendación moderna de programación.

Aunque no se estuviera programando con una estricta separación de la interfaz de usuario y la lógica del programa, estaríamos creando algo difícil de mantener al mezclar diferentes tareas en el mismo código.

Una aplicación para el Web, con o sin uniGUI, es inherentemente multi-usuario. A cada usuario o cliente remoto se le asigna una sesión (representada en el código por el MainModule) y todos sus recursos deben depender de ella.

Si se crea un formulario, la función que se encarga de crearlo lo hará en el contexto de su sesión y lo mismo sucederá con los módulos de datos.

Es obvio entonces que la manera segura de crear la aplicación es con formularios y módulos de datos bajo control del framework.

Si se decide crear los módulos de datos On-Demand, opción disponible ahora en uniGUI, cada vez que se abra un formulario que necesite un módulo de datos, la referencia que hará al cargarse el formulario se encargará de activar la creación del módulo de datos. Si se quiere garantizar que ese módulo de datos, privado para ese formulario y sesión, no exista la próxima vez (con datos anteriores) bastará con liberarlo en TUniForm.OnDestroy.

Es bueno recordar también que el Delphi, desde la versión 4, ofrece varios mecanismos para facilitar la separación de la interfaz de usario de la lógica de negocios.

Básicamente, se puede usar controles de datos y acciones (TAction con los eventos Execute y Update).

 

Disculpen la parrafada, pero una herramienta poderosa no garantiza la calidad del producto final. Todo depende de cómo se use.

 

David

Share this post


Link to post
Share on other sites

Gracias David por arrojar luz sobre el tema.

Share this post


Link to post
Share on other sites

En mi experiencia personal, me ha ido muy bien con TMS Aurelius (Spring4D lo considero muy bueno también), y he podido palpar las grandes ventajas que arroja el usar un ORM en el desarrollo de apps. Me ha sido mucho más fácil el mantenimiento, hacer cambios, añadir nuevas funcionalidades, estas cosas que anteriomente eran un tanto complicadas en dependencia de la magnitud de los cambios, ahora vienen a ser exponencialmente mucho más sencillas. Concuerdo 100% en tu criterio del cómo usar una herramienta.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×