ASP.net Manejo de Estado
-
Upload
sisifo-fuentes -
Category
Documents
-
view
225 -
download
0
Transcript of ASP.net Manejo de Estado
-
7/24/2019 ASP.net Manejo de Estado
1/17
-
7/24/2019 ASP.net Manejo de Estado
2/17
Introduccin
Como las aplicaciones web no guardan un estado entre las
peticiones, es decir que cada vez que el usuario realiza una
peticin la pgina se carga completamente de nuevo existen
distintas formas de persistir datos entre peticiones de usuarios:
objetos de aplicacin
campos ocultos
objetos de sesin
objetos de cache
cookies, etc
!a diferencia entre las mismas est dada por la visibilidad,
manejo de datos, " tiempo de persistencia
-
7/24/2019 ASP.net Manejo de Estado
3/17
Cmo elegir cual usar#
Necesitamos saber:
Quien necesita los datos?
Por cuanto tiempo se necesita que sepersistan?
Que tan grande son los datos?
-
7/24/2019 ASP.net Manejo de Estado
4/17
$bjetos contenedores de
datosMtodo depersistenciaQuien necesita? Cuanto tiempo? Cantidad de
datos?
%pplication &odos 'asta que la
siguiente aplicacin
comience
Casi cualquier
tama(o
Cookie )suario *l tiempo que se
desee si no se
borra
+oco, datos
simples
orm +ost )suario +ara la prxima
peticin
Cualquier tama(o
!os datos viajan
con la pagina
-uer".tring )suario o grupo de
usuarios
+ara la prxima
peticin
+oco, datos
simples
.ession )suario /ientras el usuario
este activo, ms el
timeout
Casi cualquier
tama(o
-
7/24/2019 ASP.net Manejo de Estado
5/17
Objetos contenedores
Mtodo de
persistencia
Quien necesita? Cuanto tiempo? Cantidad de
datos?
Cache Todos los
usuarios.
Por el tiempo
que se necesite.
Todo tipo.
Context Usuario Solo en la
peticion.
Gran tamao.
0iew.tate )suario )n formulario 1eb /inimo, estos datos
son enviados "recibidos con cada
pgina
Config file &odos 'asta que el archivo
de configuracin
sea actualizado
+uede contener
gran cantidad de
datos
-
7/24/2019 ASP.net Manejo de Estado
6/17
Application
*l objeto %pplication provee un lugar ideal para guardar datos
de uso frecuente los cuales rara vez cambian en la aplicacin
Ejemplo:
%pplication!ock234
%pplication560alor789 txt0alue&ext4
%pplication)n!ock234
-
7/24/2019 ASP.net Manejo de Estado
7/17
Cookies
.on ;tiles cuando el usuario necesita un dato mu" particular
-
7/24/2019 ASP.net Manejo de Estado
8/17
Cookies
//crear una cookie y agregarla a la coleccin.
HttpCookie mCookie = new HttpCookie(miCookie");
mCookie.Value = DateTime.ow.To!tring();
mCookie.#pire$ = DateTime.ow.%&&Day$(');
e$pon$e.Cookie$.%&&(mCookie);
//liminar
mCookie.#pire$ = DateTime.ow.%&&Day$(')
//*eer una cookie
l+le$ult.Te#t = l ,alor &e la cookie e$- "
eue$t.Cookie$0miCookie12.Value
-
7/24/2019 ASP.net Manejo de Estado
9/17
Form Post / Campo oculto
*sta t?cnica era mas usada en %sp, en %sp
-
7/24/2019 ASP.net Manejo de Estado
10/17
Querytring
!os datos guardados en el objeto -uer".tring son utilizados
por un solo usuario
*s un buen modo de enviar informacin entre formularios
eue$t.3uery!tring0Valor12.To!tring
();
-
7/24/2019 ASP.net Manejo de Estado
11/17
.ession
.us datos pertenecen a un usuario en particular
0iven mientras el usuario contin;e haciendo peticiones, ms unun timeout 2por defecto HI min3
+ueden guardar grandes o peque(as cantidades de datos
.u uso debe de tratar de restringirse si se desea un buenrendimiento con muchos usuarios
-
7/24/2019 ASP.net Manejo de Estado
12/17
ession
//Cargar un !alor en !ariable de session"Session[Valor] = txtValue.Text;
//Asignar !alor de !ariable de session"
lblResult.Text =
Session[Valor].ToString();
/#e puede optimi$ar un poco el
rendimiento de una pagina indicando si lamisma no utili$ara objetos de session osolo leera de los mismos"#/
-
7/24/2019 ASP.net Manejo de Estado
13/17
ession
!as sesiones en %sp
-
7/24/2019 ASP.net Manejo de Estado
14/17
Cac%e
+uede contener grandes cantidades de datos
!a pueden utilizar uno o varios usuarios
+uede persistir por largos per=odos de tiempo, pero no alrestart de la aplicacin
//%gregar item al cac9e
Cac9e0,alor2= miValor;//*eer un iteme$pon$e.:rite(Cac9e0,alor12);
-
7/24/2019 ASP.net Manejo de Estado
15/17
Conte&t
/aneja datos para un solo usuario, durante una sola peticin
+uede contener grandes cantidades de datos, pero se utiliza
generalmente con pocos "a que se implementa en cada
peticin
Context@tems56valor68 9 mi0alor4Gesponse1rite2Context@tems 56valor7834
-
7/24/2019 ASP.net Manejo de Estado
16/17
'ie(tate
Juarda el estado de la informacin para un solo usuario por eltiempo que trabaje con la pgina
+uede guardar grandes cantidades de datos
!os datos viajan con cada peticin " respuesta
+uede ser deshabilitado para toda la pgina agregando:
*nable0iew.tate9false en la directiva
.e declara:
0iew.tate56mi*stado789txt
-
7/24/2019 ASP.net Manejo de Estado
17/17
'ie(tate !s essionSession ViewState
Almacena losrecursos del
servidor?
S o
Se a!ota el tiempo
de espera?
S" transcurridos #$
minutos %valor
predeterminado&
o
Almacena al!'n
tipo de .(T?
S o" presenta
compati)ilidad
limitada con
cadenas* enteros*operadores
)ooleanos* matrices*
Arra+,ist.Aumenta la -car!a
T/,-?
o S