ASP.net Manejo de Estado

download ASP.net Manejo de Estado

of 17

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