IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 .NET Discussion :

question de methodologie


Sujet :

.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 80
    Par défaut question de methodologie
    Bonjour, je débute c# .net et objet

    Voilà mon problème :

    J'ai un objet. La valeur d'une propriété de cet objet est calculée en fonction de la valeur de 2 autres. (un peu comme si vous aviez une trigramme en fonction du nom et prenom par ex.)

    J'ai aussi une classe dao instancie l'objet et fait la relation avec le dataset fortement typé.

    enfin j'ai l'écran en lui même qui affiche les données (gridview, detailview etc .)


    Je me pose la question de la meilleure façon de faire, lorsque je crée un nouvel enregistrement :

    1) Faire le calcul dans le Get de la propriété
    2) le faire dans l'update / insert de la classe Dao (ou même avant)

    Pour l'instant j'utilise le Get. Est-ce la meilleure méthode ?

    Merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 54
    Par défaut
    Si la valeur de ta propriété résulte toujours du même calcul, il vaut mieux le faire dans le Get, c'est beaucoup moins lourd

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Elrilmathiel Voir le message
    Si la valeur de ta propriété résulte toujours du même calcul, il vaut mieux le faire dans le Get, c'est beaucoup moins lourd
    Ben non, justement c'est plus lourd : ça fait que le calcul est refait à chaque appel de la propriété. Il vaut mieux le faire dans le set des 2 autres propriétés, comme ça elle est recalculée seulement quand les valeurs des propriétés dont elle dépend sont mises à jour

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 80
    Par défaut
    Ok! Merci pour l'info . je n'avais pas pensé à ça.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 54
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Ben non, justement c'est plus lourd : ça fait que le calcul est refait à chaque appel de la propriété. Il vaut mieux le faire dans le set des 2 autres propriétés, comme ça elle est recalculée seulement quand les valeurs des propriétés dont elle dépend sont mises à jour
    Je viens de me rendre compte que j'avais mal compris sa seconde proposition.
    J'ai cru qu'il voulait faire un acces chaque fois qu'il voulait calculer la valeur de sa propriété

    Ca m'apprendra, je lirais moins vite la prochaine fois, et désolé d'avoir raconté des betises du coup

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 80
    Par défaut
    ça reste quand même une modification de la propriété :

    - au chargement du gridview
    - à l'ouverture du detail view
    - lors du passage en mode édition ()
    - lors de l'enregistrement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
            public string a       
          {
                get { return _a; }
                set {
                    resultat =  calcul de b en fonction de value
                    _b =  resultat du calcul;
                   _a = value; 
                   }
            }
     
            public string b   
            {
                get { return _b; }
                set { _b  = value; }
            }
    Je dois oublier quelquechose. Je comparerais bien value à l'ancienne valeur, mais je ne sais pas ou la trouver .

    Merci pour votre aide

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par magiczouf Voir le message
    Je comparerais bien value à l'ancienne valeur, mais je ne sais pas ou la trouver .
    ben c'est _a...

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 54
    Par défaut
    Au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public string b   
            {
                get { return _b; }
                set { _b  = value; }
            }
    tu peux déjà écrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public string b { get; set; }
    le compilo fait le reste tout seul.

    Et pour ton ancienne valeur, c'est tout simplement _a

    Edit : pris de vitesse par tomlev

  9. #9
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Ben non, justement c'est plus lourd : ça fait que le calcul est refait à chaque appel de la propriété. Il vaut mieux le faire dans le set des 2 autres propriétés, comme ça elle est recalculée seulement quand les valeurs des propriétés dont elle dépend sont mises à jour
    Ca dépend de la lourdeur du calcul.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class Ghjdvgjkfhgk
    {
      public int A {get; set; }
      public int B {get; set; }
      public int APlusB {get { return A + B; } }
    }
    Dans ce cas, certes la somme sera faite à chaque appel, mais du coup la classe est plus légère.

    On retombe dans un bon vieux cas d'optimisation du nombre d'instructions versus optimisation de l'empreinte mémoire Et encore, uniquement dans le cas où les perfs sont critiques, parce que sinon les deux solutions se valent, mais j'ai un faible pour celle que je viens d'écrire parce qu'elle est bien plus concise.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. question de methodologie 2
    Par magiczouf dans le forum Débuter
    Réponses: 3
    Dernier message: 13/01/2009, 20h34
  2. Divers questions
    Par Freakazoid dans le forum DirectX
    Réponses: 2
    Dernier message: 06/08/2002, 21h57
  3. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 16h11
  4. Question de faisabilité
    Par lisarasu dans le forum CORBA
    Réponses: 3
    Dernier message: 14/05/2002, 11h26
  5. [HyperFile] 2 questions de débutant
    Par khan dans le forum HyperFileSQL
    Réponses: 2
    Dernier message: 29/04/2002, 23h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo