Application vs Session vs Cache

Qu’est-ce qu’un cas d’utilisation approprié pour tout ce qui précède? Il semble que session et cache sont assez similaires, et je ne peux pas penser à beaucoup d’utilisation pour les applications.

L’état de l’application et de la session a une différence très importante:

L’état de l’application est un référentiel de données disponible pour toutes les classes d’une application ASP.NET. L’état de l’application est stocké en mémoire sur le serveur et est plus rapide que le stockage et la récupération d’informations dans une firebase database. Contrairement à l’état de session, qui est spécifique à une session utilisateur unique, l’état de l’application s’applique à tous les utilisateurs et sessions . Par conséquent, l’état de l’application est un endroit utile pour stocker de petites quantités de données souvent utilisées qui ne changent pas d’un utilisateur à un autre.

Vue d’ensemble de l’état de l’application
Vue d’ensemble de l’état de session

La mise en cache, quant à elle, vous permet de stocker des objects en mémoire nécessitant des ressources de serveur étendues pour créer des fonctionnalités puissantes qui vous permettent de personnaliser la mise en cache des éléments et leur durée de mise en cache. expiration.

Présentation de la mise en cache des données d’application

Bien qu’ils puissent sembler similaires, ils sont nettement séparés et ont des rôles différents à jouer dans une application ASP.NET au sens le plus large.

La session est par utilisateur. Il n’est pas partagé entre les utilisateurs.

La scope de l’application et du cache est étendue à toutes les applications. Le cache peut être expiré. Si vous avez des données pouvant être modifiées, disons 5 minutes, vous pouvez les placer dans le cache, alors que si vous avez des données qui ne sont pas mises à jour régulièrement, il est possible de les placer dans la variable d’application.

> Application

 1)Application object always stores data on the server side RAM example: Application["hits"]=1; (key-value pair). 2)Application object maintains its data till the web application is shut down or we release the data manually by assigning null or Clear() method is called. 3)Application object has no Timeouts or File Dependencies. 4)Its data can be assigned using Global.asax file 5)Application object is not used for performance optimization. USED in maintaining hit counters, data from readonly files/tables which can then be displayed on varrious web pages. 

> Session

 A session is defined as a period of time that is shared between the web application and the user. Each user that is using the web application has their own session. Items/Objects can be placed into the Session which would only define these object for that user. Session contains key variables which help to identify the related values. This can be thought of as a hash table. Each user would represent a different key node in the hash identifying unique values. The Session variables will be clear by the application which can clear it, as well as through the timeout property in the web config file. Usually the timeout is 20 minutes by default. 

> Cache

 The Cache can be thought of as the memory. It is simply, the memory of the machine/server from which the source code is running from. This is an extremely important feature which can allow you to store difficult and complex constructed data which can be reused. Imaging you had to query a large set of different databases, which may consist records from databases ranging from MySQL, MSSQL, to ORACLE which were joined using some VB.NET or C# code. Now if the records where changing insignificantly every couple of hours, why would we need to do a live fetch/lookup every time the user wanted to get some information? It would first be slow, and resource intensive as we would have to reconstruct all the data before displaying it to the user. By using Cache, we can store it in memory, and directly bind the data. This would be a more elegant and efficient way to resortingeve data, while maintaining optimal performance. 

Pour en savoir plus ici

La session est utilisée pour des informations spécifiques à l’utilisateur. En règle générale, vous sauvegardez le nom d’utilisateur, les préférences de l’utilisateur comme le nom d’écran, l’identifiant du panier (si vous vendez quelque chose), le courrier électronique, etc.

Le cache est généralement utilisé lorsque vous avez des informations partagées entre toutes les personnes. Il s’agit généralement de réduire les longs processus ou les hits à la firebase database. IE vous voulez afficher les n premiers articles. Vous pouvez définir une limite de temps pour cela, de sorte qu’il va rafraîchir la date après un certain temps

La variable d’application est adaptée aux informations statiques que vous souhaitez enregistrer sur le serveur. Cela pourrait être un endroit où se trouvent les fichiers multimédias.

Il existe une limitation très importante de l’object de session inproc intégré qu’aucune autre réponse n’a indiqué, ce qui limite son utilisation dans les sites Web à forte concurrence. Plus précisément, si vous modifiez un élément de session dans votre code, la demande est bloquée et attend que toutes les requêtes de lecture à l’object de session soient terminées. Dans ce cas, le cache est un choix bien meilleur:

Je viens de découvrir pourquoi tous les sites Web ASP.Net sont lents et j’essaie de trouver une solution

Aucune de ces réponses ne rend assez claire une propriété très importante du cache – elle a une scope d’application et est partagée par tous les utilisateurs! Toutes les données que vous stockez dans le cache sont disponibles pour tous les utilisateurs. Vous pouvez toujours stocker des données dans le cache que vous souhaitez rendre disponible uniquement à un utilisateur spécifique , mais vous devez utiliser une valeur de clé de cache propre à cet utilisateur, par exemple Cache.Add("UserData" + userID, data...

Les variables d’état de session sont disponibles sur toutes les pages, mais uniquement pour une session donnée. Les variables de session sont comme les données globales à utilisateur unique. Seule la session en cours a access à son état de session.

Les variables d’état d’application sont disponibles sur toutes les pages et dans toutes les sessions. Les variables d’état d’application sont comme les données globales multi-utilisateurs . Toutes les sessions peuvent lire et écrire des variables d’état d’application.

Les variables d’état de session sont disponibles sur toutes les pages, mais uniquement pour une session donnée. Les variables de session sont comme les données globales à utilisateur unique. Seule la session en cours a access à son état de session.