Ya no penaliza tanto el uso de variables globales?


([N1] desarrollo) #1

Me lo parece a mí, o ha habido un cambio de rendimiento más que apreciable de las variables globales en estas 2 últimas versiones?
Antes intentaba hacer todo lo que se podía hacer con locales, pero creo que el esfuerzo de propagación de valores entre procedimientos ya no es tan necesario.
Qué tal vuestra experiencia?

Saludos,

César Carnicero
ICenter


([N1] desarrollo) #2

Completo el hilo con la respuesta de Soporte de Velneo y nuestra contestación.

"Buenos días, César.

Es posible que en el último de pruebas fuese un escenario en el que las variables no afectasen al interfaz y en pruebas anteriores sí, de ahí que te haya podido dar esa sensación.

Por lo tanto, seguimos diciendo que es preferible usar variables locales siempre que se pueda, y dejar las variables globales únicamente para temas globales del usuario (por su tipología y porque afectan al interfaz)."

“Muchas gracias, Rafael.
Es posible que sea eso, sí. Que no notamos diferencia de rendimiento porque las que utilizamos, efectivamente no interactúan con el interfaz.”


([N1] Pepeto) #3

Desde hace ya tiempo, apenas uso las variables globales, si acaso, 2 o 3 como maximo y siempre en memoria, asi que no puedo responder porque no he notado ningun cambio que sea significativo.

Imagino que para el resto, los que empiezan a tener buenas costumbres usan las variables locales en vez de globales, tampoco notaran diferencias.

un saludo
José Luis
http://www.ascsl.com


([N3] blavan) #4

Hola, escribo para confirmar ó no si estoy en lo cierto

La diferencia del uso de las variables globales en V7 con respecto a V6 es que en V7 el servidor no atiende al usuario, sin embargo en V6 si.

Me explico en v6 en un usuario la variable global tenia un valor y en otro usuario otro valor diferente y en los procesos en el servidor todo correcto.
En V7 los procesos en el servidor no atienden al valor de variable global de cada usuario

¿Es así?


([N4] velavisual) #5

@benito.lavandeira.controlyestudios
.
.
Si, es así. Te recomiendo que uses lo menos posible las variables globales tal y como lo usas en v6.
.
Por el contrario, deberías usar -manejadores de objetos- para el intercambio de variables locales entre procesos y otros objetos allí donde lo necesites.
.
.
saludos
Antonio Vela
http://www.velavisual.com


([N3] blavan) #6

Gracias Velavisual, así ya lo vengo haciendo y se cuentan con los dedos de la mano el número de variables globales que llevo utilizado en una aplicación de cierta entidad.
En este caso mi comentario tuvo la intención de aclarar conceptos al foro en forma de pregunta


([N4] mittosoftware) #7

@benito.lavandeira.controlyestudios Cuando dices “Me explico en v6 en un usuario la variable global tenia un valor y en otro usuario otro valor diferente y en los procesos en el servidor todo correcto.
En V7 los procesos en el servidor no atienden al valor de variable global de cada usuario”

¿Podría ser que esto funciona así, solo cuando las variables globales tienen persistencia de ‘Disco’?.
Si su persistencia es ‘memoria’, ¿no debería usar la RAM de la máquina cliente que se conecta?

Si esto nos lo confirma alguien de Velneo, mejor, porque sería terrible que aun si la persistencia es memoria, se crucen los contenidos de variables globales de usuarios distintos ¿no creen?

Un ejemplo reciente para mi, el tutor de Excel usa muchas globales.
Gracias de antemano por cualquier información adicional sobre el tema.
Saludos.
César [attachment=26149,2037]




([N3] blavan) #8

Hola Cesar
1º Tu eres N3 igual que yo y te aseguro que estas dudas en soporte te las aclaran de maravilla
2º Hice un comentario tratando de que sirviese de ayuda a los que se están iniciando, además lo hice con interrogación para que las respuestas confirmasen o anulasen el alcance de las variables globales.

Yo con V7 trabajo con la premisa de que la variables globales en procesos en 3 plano, es decir en el servidor no se deben utilizar, otra cosa es en procesos en 1º Plano.

En el caso de la dll excel yo la utizo en procesos en 1º plano, trabajo con plantillas que depositadas en una carpeta de la red, primero la copio a local , le aplico la dll y la guardo con el nombre conveniente en la carpeta conveniente y con la excel de cada máquina en local

A ver si los problemas tuyos vienen de esta filosofía de empleo.
Recuerda: Excel en local, plantilla a modificar en local


([N4] mittosoftware) #9

Hola Benito, quizá no me expresé claramente, pero justamente comparto tu posición de intentar confirmar oficialmente este funcionamiento de las variables globales y la persistencia, en este escenario.

Pediré la confirmación a soporte en el inicio de semana, pero ideal sería que se confirme por este hilo, así queda claro para todos, mas que todo porque considero que esto es algo muy básico y a la vez crítico.

En lo del Excel me ayudaste mucho, y te reitero las gracias, aunque sigo pensando que la solución Excel debió venir con un ejemplo completo (una tabla v7 exportada a Excel, mas una hoja Excel leida y copiada hacia una tabla v7). Ademas, en Excel la funcionalidad de abrir y cerrar aun me da problemas, especialmente con otras hojas abiertas, y estoy revisando la documentación para ver que podría ser.

De todas formas, pienso que la importación/exportación XLS debería ser multiplataforma (via open office), al ser un formato tan usado. Probablemente esto del Excel haya que lanzarlo como idea, para ver si le interesa a los demás Velneadores.

Saludos.
César


([N4] velavisual) #10

Aquí os dejo un artículo hablando sobre al ámbito de las variables (Julio 2010). No creo que haya cambiado mucho.Si ha cambiando en algo creo que deberían realizar un nuevo artículo al respecto.
.
http://velneo.es/ambito-de-las-variables/
.
.
saludos
Antonio Vela
http://www.velavisual.com