Una visión de las técnicas de administración de estado que ofrece ASP.NET

7

Existe una restricción común que se puede observar en el funcionamiento de casi todas las aplicaciones web, lo que se suma a su comportamiento sin estado. Es la conexión intermitente entre el Servidor y el Cliente.

Lo que sucede es que, al implementar el HTTP (Protocolo de transferencia de hipertexto) para comunicarse a través de la web, se sigue un patrón particular que se conoce como solicitud y respuesta. Este patrón en realidad no tiene estado, ya que no retiene el estado de ninguna solicitud o su respuesta correspondiente. Por lo tanto, cada vez que un cliente inicia una solicitud al servidor web, el servidor web crea un objeto completamente nuevo de la solicitud. En última instancia, esto provoca la interrupción de la conexión y crea cuellos de botella en el rendimiento.

Afortunadamente, ASP.NET ofrece una excelente solución para superar este problema con varias técnicas efectivas de administración de estado para aplicaciones web.

Reflexionemos sobre las increíbles ofertas de ASP.NET y comprendamos cómo ayuda a conservar el estado de los controles.

Se ha observado que cuando el patrón de solicitud y respuesta crea los viajes de ida y vuelta, el valor de control del servidor se vende al por menor de alguna manera mientras que el valor de control de HTML desaparece. Esto se debe a que los controles del servidor implementan implícitamente la técnica de gestión de estados (View State), que le ha permitido retener los estados.

ASP.NET ofrece varios métodos de gestión de estado brillantes, todos ellos destinados a diferentes aplicaciones. Básicamente, se dividen en dos grandes categorías, a saber, la gestión de estado basada en el cliente y la gestión de estado basada en el servidor. Aquí hay una breve introducción a varias técnicas.

Gestión de estado basada en el cliente

En este enfoque, los datos se almacenan en la máquina del cliente o en la página sin involucrar los recursos del servidor. Estos datos almacenados incluyen toda la información relacionada con la interacción entre el cliente y el servidor. Dado que los datos se almacenan en el extremo del cliente, son más vulnerables a la piratería, lo que hace que las técnicas sean menos seguras y más escalables.

Con este enfoque, ASP.NET facilita los métodos mencionados a continuación:

1) Ver estado:

Este método a nivel de página ayuda a almacenar la información sobre una página en particular hasta que esté activa. Es decir, tan pronto como el usuario redirige a otra página, toda la información almacenada desaparecerá. Por lo tanto, ayuda a mantener el estado a nivel de página. En esta técnica, los datos se almacenan en forma de objeto de diccionario (en el par de clave y valor). Toda la información se almacena en formato hash en la propia página, pero dentro de un campo oculto. Puede consumir un valor de cadena pero solo hasta cierto punto, si el valor excede, se consume otro campo oculto.

Con ASP.NET, View State es el método predeterminado que se sigue para almacenar el estado de las aplicaciones web. Es bastante simple de implementar y es ideal para usar cuando un usuario es redirigido a la misma página, por lo que debemos mantener la información persistente hasta que él mismo redirija a otra página.

Ventajas de usar View State:

  • Asegure la información almacenada del laico almacenándola en el formato hash. De hecho, para mantenerlo a salvo de los piratas informáticos, puede mantener la información en un formato cifrado.
  • Puede personalizarlo como y cuando lo desee.
  • Es una excelente opción cuando desea implementar varias publicaciones en una sola página web.

Contras de usar View State:

  • No es un enfoque seguro, por lo que no se pueden almacenar datos confidenciales con él.
  • Puede causar problemas generales o aumentar el tiempo de carga, haciendo que la página esté cargada de mucha información.
2) Galletas:

Ofrece una gran facilidad de personalización por parte del cliente, ya que las cookies se almacenan en la memoria durante la sesión del navegador del cliente o en el sistema del cliente. De hecho, incluso se puede almacenar la información relacionada con los usuarios y realizar un seguimiento del uso. Posee un pequeño archivo de texto con un tamaño máximo de 4096 bytes, y una máquina cliente puede mostrar un máximo de 300 cookies, mientras que un dominio o servidor puede admitir un máximo de 20 cookies.

Las cookies se dividen además en dos categorías, a saber:

Cookie persistente: este tipo de cookies presentan una fecha de caducidad y se guardan de forma permanente en el disco duro disponible en la máquina del cliente. Si no existe una fecha de caducidad correspondiente a la cookie persistente, se considerará como una cookie transitoria o no persistente.

Cookie no persistente o cookie transitoria: dado que este tipo de cookies se almacenan en la memoria del navegador al final del cliente durante un período de tiempo temporal, después de ese tiempo específico, la cookie se perderá.

Ventajas de usar Cookies:

  • Solo consume unos pocos bytes de memoria por cookie.
  • Fácil y bastante simple de usar.

Contras de usar Cookies:

  • No ofrece un enfoque seguro ya que almacena la información en la máquina del cliente y, por lo tanto, almacenar datos confidenciales no es una opción viable.
  • Cualquier usuario puede deshabilitar las cookies haciendo los ajustes apropiados en la configuración del navegador.
3) Campos Ocultos:

Esto es básicamente un control de servidor, que ayuda a administrar el valor a nivel de página y es un poco similar a un estado de vista. Su valor se envía a través de la colección de formularios HTTP y, junto con él, también se envía el valor de otros controles.

Ventajas de usar campos ocultos:

  • Es bastante simple de usar.
  • Como el valor se almacena solo en la página, los recursos del servidor no se utilizan en absoluto. Por lo tanto, los campos ocultos ahorran recursos del servidor.

Contras de usar campos ocultos:

  • Si se implementarán varios campos ocultos en una página, en última instancia, agregará peso a la página y la hará más voluminosa y, por lo tanto, aumentará el tiempo de carga de la página.
  • Este enfoque no es ideal para almacenar datos confidenciales. Dado que no almacena los datos en un formato cifrado o hash, esta técnica no es del todo segura.
4 Estado de la aplicación:

Este estado es perfecto para almacenar los datos a los que se requiere acceder a través de la aplicación. Ocupa los recursos del servidor, ya que almacena los datos en la memoria del servidor. El estado de la aplicación no se limita a ningún usuario o sesión en particular, sino que se aplica a todas las sesiones y usuarios. Sin embargo, en este caso, los datos se conservarán solo durante el tiempo que transcurra hasta que se ejecute la aplicación; tan pronto como la aplicación finalice o se reinicie, se perderán todos los datos almacenados. De hecho, también se desperdiciará cuando se reinicie un servidor web, ya que los datos se almacenan al final del servidor.

En el estado de la aplicación, se utiliza un objeto de la clase HttpApplicationState para almacenar los datos. Esta clase es una colección de objetos con nombre, lo que significa que incluye datos de cualquier tipo. Podría ser parte de un par clave/valor.

Ventajas del estado de la aplicación:

  • El estado de la aplicación tiene un alcance global. Se puede acceder a los datos en cualquier momento cuando la aplicación se está ejecutando.
  • No hay período de caducidad por defecto.

Contras del estado de la aplicación:

  • El estado de la aplicación requiere recursos del servidor para almacenar datos. Esto puede generar problemas de escalabilidad si no se maneja adecuadamente.
  • El estado de la aplicación no es seguro para subprocesos, por lo que debemos implementar bloqueos.
  • En caso de falla o reinicio de la aplicación, se pierden todos los datos almacenados.
5 Estado de sesión:

Este método es el más utilizado por varios desarrolladores para mantener el estado de la aplicación. En este enfoque, el valor se almacena en forma de colección de diccionario, es decir, se empareja como clave y valor. Aquí los recursos del servidor se utilizan por completo para almacenar el estado de la aplicación. Dado que lo almacenado no se pasa a los clientes, esta técnica ofrece un método seguro y altamente seguro.

En este enfoque, se genera una sesión separada con una ID única para cada usuario. Como esta identificación se guarda en el sistema del cliente, se utilizan cookies para su almacenamiento. La sesión se elimina tan pronto como el usuario cierra la sesión de la aplicación y, si vuelve a la aplicación en el futuro, se crea una nueva sesión.

Se puede utilizar en cualquiera de los cuatro modos. Aquí están los modos:

  • APAGADO: para desactivar la sesión, es decir, si no está interesado en incluir el estado de la sesión en su aplicación, puede configurar el modo APAGADO.
  • InProc: la variable de sesión se almacena en este modo de forma predeterminada. Aquí, el valor se almacena en el mismo proceso en el que se ejecuta realmente la aplicación ASP.NET. Por lo tanto, ofrece un rendimiento excepcional.
  • Servidor de estado: en este modo, los datos se almacenan en un proceso separado dentro del Servicio de Windows. Por lo tanto, aísla los dos procesos, uno donde se ejecuta la aplicación y el segundo donde se almacenan los datos. Por lo tanto, su rendimiento no es tan bueno como el del modo InProc.
  • SQL Server: aquí los datos de sesión se almacenan en SQL Server. Es difícil de administrar en el modo InProc con múltiples servidores. Para eso, es mejor almacenar los datos solo en el servidor SQL, hará que los datos sean accesibles de forma centralizada para todas las máquinas. Este modo ofrece la máxima seguridad, sin embargo, ofrece un rendimiento degradado.

Estas cinco son las técnicas de administración de estado más utilizadas para aplicaciones ASP.NET. Integre esa técnica en su aplicación que puede garantizar la seguridad completa de los datos y un rendimiento rápido.

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More