Foros del Web » Programando para Internet » ASPX (.net) »

Variables globales

Estas en el tema de Variables globales en el foro de ASPX (.net) en Foros del Web. Hola amigos, tengo la siguiente duda y espero me podais ayudar. Estoy realizando una aplicación web en la que deseo utilizar variables globales a las ...
  #1 (permalink)  
Antiguo 21/11/2005, 03:21
 
Fecha de Ingreso: julio-2005
Mensajes: 103
Antigüedad: 18 años, 9 meses
Puntos: 0
Variables globales

Hola amigos,
tengo la siguiente duda y espero me podais ayudar.
Estoy realizando una aplicación web en la que deseo utilizar variables globales a las que se pueda acceder desde la capa de Logica de Negocio, y la verdad es que no sé como realizarlo.

Me podeis ayudar??

Muchas gracias
  #2 (permalink)  
Antiguo 21/11/2005, 05:05
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
Si te refieres a utilizar variables que mantengan su valor a través de las distintas paginas, debes plantearte si necesitas que sea una variable de sesion o de aplicacion.

Si es una variable que quieres utilizar desde cualquier parte de tu pagina aspx, pero no en otras partes de la aplicacion, puedes declararla como publica y podrás utilizarla como tal.

Espero haberte aclarado algo.
Saludos.
__________________
..:: moNTeZIon ::..
  #3 (permalink)  
Antiguo 21/11/2005, 05:28
 
Fecha de Ingreso: julio-2005
Mensajes: 103
Antigüedad: 18 años, 9 meses
Puntos: 0
Me podrías decir cuál es la diferencia entre ambas? No lo veo muy claro.
Las de sesion permanecen hasta que el usuario cierra el Internet Explorer o el que esté utilizando, pero las de aplicación??

Cómo se utilizan?? Me podrías poner algún ejemplo??

Muchas gracias

Última edición por oriopitufa; 21/11/2005 a las 05:40
  #4 (permalink)  
Antiguo 21/11/2005, 11:45
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
Las de aplicacion viven mientras viva la aplicación. Esto quiere decir que mientras no se reinicie IIS o algo por el estilo, pues siempre las tienes a través de los días y los usuarios que se conectan a tu aplicación..
Pero ojo! No quieras hacer un contador de visitas con una variable de aplicación, porqué si, por ejemplo, han de hacer un mantenimiento en el servidor y lo tienen que reiniciar, vas a perder los valores. Cosas así, mejor a través de Bases de Datos.

Un saludo.
__________________
..:: moNTeZIon ::..
  #5 (permalink)  
Antiguo 21/11/2005, 14:33
Avatar de aristotelisco  
Fecha de Ingreso: marzo-2005
Ubicación: Oxnard CA USA
Mensajes: 151
Antigüedad: 19 años
Puntos: 0
Respecto a las variables de Aplicación, no solo incluye el reiniciar el IIS, tambien, si en dado punto, no hay usuarios usando tu aplicación, las variables de Aplicación se pierden. Las variables de aplicación existen mientras haya al menos un usuario activo.

Ahora, y aquí tal vez puedo equivocarme en el concepto de "capa", si te refieres a compartir información entre diferentes capas (1 capa es igual a 1 aplicación), tendrías que guardar esta información en una fuente de datos (Base de Datos, archivo XML, etc.) para que las diferentes aplicaciones (capas) puedan acceder a ella.

Si por capa te refieres a un WebForm, entonces con variables de Sesion y de Aplicación es suficiente.
__________________
Atte:
Alex Reyes

www.alexreyes.net
  #6 (permalink)  
Antiguo 23/11/2005, 15:07
 
Fecha de Ingreso: noviembre-2005
Mensajes: 6
Antigüedad: 18 años, 5 meses
Puntos: 0
Una pequeña anotacion, si por algun motivo decides usar una variable normal (no de session y no de aplicacion) es decir declarada como publica y que puedas accesar desde varias paginas, debes tener en cuenta que que si un usuario entra a la aplicacion y le asigna un valor, y otro ingresa y tambien le asigna un valor, la variable toma el ultimo valor para ambos usuarios, espero hacerme entrender con el ejemplo....
  #7 (permalink)  
Antiguo 11/01/2006, 11:46
 
Fecha de Ingreso: noviembre-2005
Mensajes: 4
Antigüedad: 18 años, 5 meses
Puntos: 0
Perder el valor de las variables al refrescar una ventana

Hola!

Mi problema/duda es la siguiente, acorde con el tema de la variables:

En el código de mi WebForm tengo una variable de tipo int, que la utilizo como una especie de contador, y cada vez que el usuario realiza un click en un botón, esta se incrementa en 1, realizo otras operaciones y "cargo" en un TextBox del WebForm unos datos.
El problema llega cuando se "refresca" la ventana(al cargar los datos del TextBox), que pierdo el valor de esta variable.¿Por qué? ¿Qué me estoy olvidando?

He probado declarar esta variable en la zona del "Page_Load" despues de comprobar: if (!IsPostBack), pero al usar la variable está fuera de ámbito.

También he intentado declararla como una variable Session (no me parece muy correcto, pero bueno), pero luego no tengo la opcion de "convertir" la variable de tipo 'object' a tipo 'int', sólo puedo a tipo 'string'

Me gustaría hacer lo mismo con otro tipo de variables, como por ejemplo: string[][]
¿Es tan raro lo que propongo?

Muchas gracias.
  #8 (permalink)  
Antiguo 12/01/2006, 03:09
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años
Puntos: 1
Pues deberias usar una variable de viewstate, ahi puedes almacenar datos hasta que se cambie de pagina.
ej: ViewState["variable"]
__________________
:si: El hombre es el único animal que come sin tener hambre, bebe sin tener sed y habla sin tener nada que decir. :si:
  #9 (permalink)  
Antiguo 12/01/2006, 10:26
 
Fecha de Ingreso: noviembre-2005
Mensajes: 4
Antigüedad: 18 años, 5 meses
Puntos: 0
Hola!

No había utilizado nunca este tipo de variables, y no tenía claro para qué se utilizaban exactamente.

Muchas gracias!! y sobre todo por la rapidez de la respuesta
  #10 (permalink)  
Antiguo 08/03/2006, 13:34
 
Fecha de Ingreso: noviembre-2005
Mensajes: 4
Antigüedad: 18 años, 5 meses
Puntos: 0
Variables de Sesion

Hola de nuevo!

Tengo una "pequeña duda".
Utilizo una variable Session que inicializo cuando un usuario se ha identificado correctamente en mi aplicacion web, y cuando el usuario abandona la sesion la borro.

La utilizo como medida de "seguridad", para que ningún usuario no autorizado tenga acceso a los formularios de la aplicacion. Compruebo su valor en el "Page_Load" de cada formulario, y si su valor no coincide con el valor que asigno en un principio, pues redirecciono al usuario a una página de error.

El problema surge cuando el usuario abandona la sesion. Debo de borrar y/o eliminar mal este tipo de variables, porque si a continuación pongo en la barra de direcciones del navegador la ruta de una de las páginas de la aplicacion, que no sea la index.aspx, entra de todas formas.

Inicializacion de la variable: Session["seguridad"]="true";
Borrado de la variable: Session["seguridad"]="false";
o bien (he probado de todo)
Session.Contents.RemoveAll();
Session.Clear();
Session.RemoveAll();
Session.Abandon();

Espero haberme explicado.

Muchas gracias de antemano.
  #11 (permalink)  
Antiguo 08/03/2006, 15:22
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 3 meses
Puntos: 7
Haz tu pregunta en un nuevo hilo.

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #12 (permalink)  
Antiguo 09/03/2006, 11:02
 
Fecha de Ingreso: noviembre-2005
Mensajes: 4
Antigüedad: 18 años, 5 meses
Puntos: 0
Hola,

He estado buscando información acerca de la duda que planteé ayer.
El caso es que mi código funciona correctamente, pero lo que me quedaba por implementar era el borrado de la cache. Ya que si a continuacion pulsaba F5, sí que me redireccionaba a mi página de error.

Y he encontrado ésto que me ha sido de utilidad.
(Lo escribo tal y como lo encontré, por si a alguien también le ayuda)

==========
Para setear los valores de Cache en las Paginas:

Usando la Directiva @OutputCache :
Client Cache :
<%@ OutputCache Duration="60" Location="Client" %>

Proxy Server Cache :
<%@ OutputCache Duration="60" Location="Downstream" %>

Server Cache:
<%@ OutputCache Duration="60" Location="Server" %>

No Cache:
<%@ OutputCache Location="None" %>

Con ésta última, al presionar el botón "Atras" del Explorador, éste carga la página de nuevo desde el servidor, por lo que las validaciones hechas ya funcionan, no es necesario validar el User en cada pagina, eso lo hace la aplicación al setear Autenticación por formularios en el Web.Config.
==========
Un saludo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:17.