Variables globales et session dans une application Web [Résolu]

yannovitch78 15 Messages postés vendredi 30 avril 2004Date d'inscription 27 octobre 2005 Dernière intervention - 14 avril 2005 à 16:31 - Dernière réponse : titeoe 433 Messages postés samedi 26 avril 2003Date d'inscription 4 décembre 2009 Dernière intervention
- 19 avril 2005 à 15:55
Bonjour à tous,
J'ai une petite question au sujet de la mise en session des variables. Je développe actuellement une application Web et je mémorise pas mal de variables dans l'objet Session de mon application, car celle-ci étant un calculateur, chaque utilisateur qui se connectera à cette application Web devra posséder sa propre panoplie de variables pour les calculs. Mais voila, dans certaines de mes classes, j'ai défini certaines variables globalement car, même si elles contiennent des résultats intermédiaires importants, je les récupère par des propriétés pour les mettre en Session au niveau des Webform. Je voulais donc savoir si cette méthode était dangereuse,c'est-à-dire, dans le cas ou plusieurs utilisateurs se connecteront en même temps, est-ce que ces variables ne vont-elles pas être perdues en vours de route? Merci d'avance, à bientôt.
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
titeoe 433 Messages postés samedi 26 avril 2003Date d'inscription 4 décembre 2009 Dernière intervention - 19 avril 2005 à 11:28
3
Merci
Dans ce cas la si ce que tu appelles variables globales sont des variables de classe, elles sont instanciées en meme temps que ton objet et sont liées a celui ci.
Tu en aura donc autant que d'instances de ta classe.

Si ensuite tu garde ton objet en session , tes variables R_PrixVehiculeRemise et R_SommeAEmprunter ne pouront etre affectées par des calculs lancés par un autre utilisateur.

Merci titeoe 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 99 internautes ce mois-ci

Commenter la réponse de titeoe
titeoe 433 Messages postés samedi 26 avril 2003Date d'inscription 4 décembre 2009 Dernière intervention - 15 avril 2005 à 14:24
0
Merci
A priori non puisque en copiant tes variables d'application dans des variables de session tu les dédouble.

Donc si la session se termine, ta var de sessio est détruite et ta var d'application continue de vivre.
Commenter la réponse de titeoe
yannovitch78 15 Messages postés vendredi 30 avril 2004Date d'inscription 27 octobre 2005 Dernière intervention - 15 avril 2005 à 18:10
0
Merci
Mais si j'ai deux utilisateurs, j'aurais donc deux lots de variables session bien distinctes, mais mes variables intermédiaires (variables d'application) seront-t-elles partagées ou non. Car si c'est la cas, je risque de perdre des calculs intermédiaires d'un utilisateur sur l'autre???? Merci d'avance pour ta réponse.
Commenter la réponse de yannovitch78
titeoe 433 Messages postés samedi 26 avril 2003Date d'inscription 4 décembre 2009 Dernière intervention - 18 avril 2005 à 10:49
0
Merci
les variables d'applications sont partagées entre tout les users donc si tu t'en sert pour stocker les résultats du calcul d'une user , le calcul des autres users seront affectés.
Commenter la réponse de titeoe
yannovitch78 15 Messages postés vendredi 30 avril 2004Date d'inscription 27 octobre 2005 Dernière intervention - 19 avril 2005 à 11:20
0
Merci
Merci pour tes réponses, mais je pense qu'en fait, je ne suis pas très clair en ce qui concerne ma question, alors je vais rajouter un peu de code pour illustrer cela. J'instancie dans une classe un objet "composant" pour ensuite lancer la fonction principale du composant, comme suit:


// COMPOSANT 1
composant1 =
new Component_CVN( );
composant1.Calculs_CVN_Clb(user); //user est en fait un objet Session (données utilisateur)

Ensuite
, dans la classe Component_CVN, j'effectue des calculs par le biais de méthodes private et de variables (résultats intermédiaires) définit globalement comme suit:

public
class Component_CVN : System.ComponentModel.Component
{


private
double R_PrixVehiculeRemise;

private
double R_SommeAEmprunter;


public
void Calculs_CVN_Clb (Utilisateur user)
{
R_PrixVehiculeRemise = user.Remise;

R_SommeAEmprunter = SommeAEmprunter(R_PrixVehiculeRemise, user.ApportPerso);
}


private
double SommeAEmprunter(
double PrixRemise,
double ApportPersonnel )
{

return (PrixRemise - ApportPersonnel);
}


}

J'instancie donc un "Component_CVN" à chaque utilisateur, et ma question est alors: Aurais-je des problèmes avec mes variables R_PrixVehiculeRemise ou R_SommeAEmprunter si plusieurs utilisateurs lancent le calcul en même temps, ou est-ce que l'instanciation du composant ne me dédouble mes variables globales (auquel cas, pas de pb!) ???? voila, je crois que cette fois-ci, j'ai tout dis !! Merci d'avance.
Commenter la réponse de yannovitch78
yannovitch78 15 Messages postés vendredi 30 avril 2004Date d'inscription 27 octobre 2005 Dernière intervention - 19 avril 2005 à 15:50
0
Merci
Merci pour ton aide, à bientôt.
Commenter la réponse de yannovitch78
titeoe 433 Messages postés samedi 26 avril 2003Date d'inscription 4 décembre 2009 Dernière intervention - 19 avril 2005 à 15:55
0
Merci
no problémo, cliques sur "réponse acceptée" et bon code a toi .
Commenter la réponse de titeoe

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.