Variables globales et session dans une application Web

Résolu
yannovitch78 Messages postés 15 Date d'inscription vendredi 30 avril 2004 Statut Membre Dernière intervention 27 octobre 2005 - 14 avril 2005 à 16:31
titeoe Messages postés 433 Date d'inscription samedi 26 avril 2003 Statut Membre Dernière intervention 4 décembre 2009 - 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.
A voir également:

7 réponses

titeoe Messages postés 433 Date d'inscription samedi 26 avril 2003 Statut Membre Dernière intervention 4 décembre 2009 1
19 avril 2005 à 11:28
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.
3
titeoe Messages postés 433 Date d'inscription samedi 26 avril 2003 Statut Membre Dernière intervention 4 décembre 2009 1
15 avril 2005 à 14:24
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.
0
yannovitch78 Messages postés 15 Date d'inscription vendredi 30 avril 2004 Statut Membre Dernière intervention 27 octobre 2005
15 avril 2005 à 18:10
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.
0
titeoe Messages postés 433 Date d'inscription samedi 26 avril 2003 Statut Membre Dernière intervention 4 décembre 2009 1
18 avril 2005 à 10:49
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yannovitch78 Messages postés 15 Date d'inscription vendredi 30 avril 2004 Statut Membre Dernière intervention 27 octobre 2005
19 avril 2005 à 11:20
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.
0
yannovitch78 Messages postés 15 Date d'inscription vendredi 30 avril 2004 Statut Membre Dernière intervention 27 octobre 2005
19 avril 2005 à 15:50
Merci pour ton aide, à bientôt.
0
titeoe Messages postés 433 Date d'inscription samedi 26 avril 2003 Statut Membre Dernière intervention 4 décembre 2009 1
19 avril 2005 à 15:55
no problémo, cliques sur "réponse acceptée" et bon code a toi .
0
Rejoignez-nous