En este post se trata el tema de la variable Session, creada y manejada en una aplicación Mvc de ASP .NET.

Para explicarla he creado un proyecto con esta estructura de carpetas:

Captura1

Session se utiliza para almacenar datos, es muy potente y muy utilizado ya que puedes guardar todo tipo de datos. No hay que confundir Session con Cookies, ya que las cookies almacenan información en la parte de cliente (memoria del navegador), y las Session se almacenan en la parte del servidor.

Dicho esto, podemos definir las Session como variables que pueden almacenar cualquier dato en la parte del servidor, capaz de manejar información en peticiones de ambos sentidos (cliente-servidor).

Session tiene usos importantísimos y muy relevantes dentro del mundo web, los más utilizados, entre otros, son los carritos de compra, usuarios y login, blogs, etc.

Para explicarlo con un ejemplo sencillo, muestro a continuación algo del código de una aplicación en la que puedes elegir diferentes ingredientes para una pizza, los cuales al pulsar sobre su enlace, se van almacenando en una Session creada por mi llamada “PIZZA”:

Captura2

Al darle al enlace se almacena el String que le pasas por un actionlink en la Session:

Captura3

Captura6

Captura7

He creado también un enlace para borrar la Session, con este código:

Captura8

Captura9

De esta manera, se eliminaría la Session y aparecería el mensaje que hemos puesto cuando la Session está vacía:

Captura5

A lo largo de la aplicación puedes encontrarte problemas como no guardar bien los datos en la Session, no eliminarla bien, o manejar los mensajes si hay datos almacenados o no, entre otros. Para resolver estos problemas he visitado la propia información de Microsoft, en este enlace (aunque hay muchos más sitios):

https://social.msdn.microsoft.com/Forums/es-ES/35a466ec-6707-425e-8754-45aca04bf14b/variable-de-session?forum=vcses

 

Autor: Daniel Martín Alelú

Curso: Microsoft MCSA Web Applications + Microsoft MCSD App Builder + Xamarin

Centro: Tajamar

Año académico: 2017-2018

GitHub: https://github.com/DanielMartinAlelu/Proyecto01_Tajamar_Session

Linkedin: https://www.linkedin.com/in/daniel-mart%C3%ADn-alel%C3%BA/