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

ASP.NET Discussion :

[Performance] Gestion des objets ?


Sujet :

ASP.NET

  1. #1
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 377
    Points : 1 628
    Points
    1 628
    Par défaut [Performance] Gestion des objets ?
    Bonjour à tous,

    Je voudrais avoir votre avis sur un sujet que je suis loin de maîtriser : Performence

    Je travaille sur un site qui pourrais être beaucoup appelé, pour ça je dois utiliser les meilleurs pratiques.

    Pour ce site il existe une appli back office qui permet de générer des pages pour que le site soit modifiable et évolutif ...

    Pour le front, pour une page je dois récupérer un certain nombres d'objets de type que j'appellerai article pour simplifier, dans certains cas (genre un menu de navigation) je n'aurai besoin que de quelques informations pour cet article : un identifiant, une url, un libellé. Alors dois-je utiliser des objets simplifier pour l'occasion et si besoin refaire une requête pour récupérer l'objet entier ?

    Autre chose, comment ferriez vous pour transmettre l'identifiant de l'article à la page qui va s'ouvrir (ayant l'url de l'article), sachant que c'est l'information qui permettra de charger les données de la page :
    - Variable de Session, sachant que le menu se construit dynamiquement ça me semble pas terrible.
    - Post/Get
    - Dans l'url genre : http://localhost/nav.aspx?id=1
    ...

    Voila si vous avez d'autres conseils et pratiques ça serai sympa de les partager avec moi

    Merci d'avance

  2. #2
    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 : 42
    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
    Points : 39 754
    Points
    39 754
    Par défaut
    Citation Envoyé par rad_hass Voir le message
    Pour le front, pour une page je dois récupérer un certain nombres d'objets de type que j'appellerai article pour simplifier, dans certains cas (genre un menu de navigation) je n'aurai besoin que de quelques informations pour cet article : un identifiant, une url, un libellé. Alors dois-je utiliser des objets simplifier pour l'occasion et si besoin refaire une requête pour récupérer l'objet entier ?
    En fait ça dépend de la taille des données à charger. Par exemple, si ton objet article contient le texte complet de l'article, il vaut sans doute mieux ne pas le charger tant que tu n'en as pas besoin. Pour ce genre de cas, je te suggère d'utiliser le "lazy loading", qui consiste à ne charger une donnée que lorsque tu en as besoin. Par exemple, si ton article a une propriété Content qui correspond au contenu de l'article, tu pourrais ne pas charger le contenu à l'initialisation de l'objet mais seulement lors de l'appel à cette propriété :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    private string _content = null;
    public string Content
    {
        get
        {
            if (_content == null)
            {
                LoadContent();
            }
            return _content;
        }
    }

    Citation Envoyé par rad_hass Voir le message
    Autre chose, comment ferriez vous pour transmettre l'identifiant de l'article à la page qui va s'ouvrir (ayant l'url de l'article), sachant que c'est l'information qui permettra de charger les données de la page :
    - Variable de Session, sachant que le menu se construit dynamiquement ça me semble pas terrible.
    - Post/Get
    - Dans l'url genre : http://localhost/nav.aspx?id=1
    POST ou GET me paraissent tout indiqués pour cet usage
    (au passage, ta dernière proposition correspond à la méthode GET...)

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 377
    Points : 1 628
    Points
    1 628
    Par défaut
    Citation Envoyé par tomlev Voir le message
    En fait ça dépend de la taille des données à charger. Par exemple, si ton objet article contient le texte complet de l'article, il vaut sans doute mieux ne pas le charger tant que tu n'en as pas besoin. Pour ce genre de cas, je te suggère d'utiliser le "lazy loading", qui consiste à ne charger une donnée que lorsque tu en as besoin. Par exemple, si ton article a une propriété Content qui correspond au contenu de l'article, tu pourrais ne pas charger le contenu à l'initialisation de l'objet mais seulement lors de l'appel à cette propriété
    C'est effectivement plus propre que d'avoir un objet simplifier, mais par contre si 'LoadContent();' fait une requête à la base et que l'objet posséde beaucoup de champs, on va pas s'amuser à faire autant de requête que de champs non rempli, non ?

    Citation Envoyé par tomlev Voir le message
    POST ou GET me paraissent tout indiqués pour cet usage
    (au passage, ta dernière proposition correspond à la méthode GET...)
    Je me rappelais plus lequel c'était

  4. #4
    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 : 42
    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
    Points : 39 754
    Points
    39 754
    Par défaut
    Citation Envoyé par rad_hass Voir le message
    C'est effectivement plus propre que d'avoir un objet simplifier, mais par contre si 'LoadContent();' fait une requête à la base et que l'objet posséde beaucoup de champs, on va pas s'amuser à faire autant de requête que de champs non rempli, non ?
    Ca dépend... ce n'est pas forcément très couteux de faire plusieurs requêtes, du moins si tu accèdes à la table via sa clé primaire

  5. #5
    Membre confirmé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Points : 637
    Points
    637
    Par défaut
    Il faut eviter de trop utiliser les sessions.

    Si tu utilises dans ta page une liste d'objets ou dataset, joues avec eux au lieu d'interoger la Bdd.

    Essaye de regarder ce que tu peux mettre en cache (ascx, control, datas...)

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 377
    Points : 1 628
    Points
    1 628
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Ca dépend... ce n'est pas forcément très couteux de faire plusieurs requêtes, du moins si tu accèdes à la table via sa clé primaire
    J'y accède effectivement avec une clé primaire qui est un Guid ...

    Tous récupérer d'un coup c'est une mauvaise chose, ça j'en suis convaincu !

    Mais par contre récupérer mon objet champs par champs, je ne sais pas trop. Ceci se traduirait par une procédure stocké par champs lol et bien sûre faire plus de requête à la base qu'il en faut ...

    Ce qui me pousse à te demander ton avis, sur le fait de récupérer partiellement mon objet avec un groupe d'éléments qui vont s'afficher dans la même page. Par contre en terme d'évolutivité cette solution peut avoir ces limites, mais n'est ce pas un bon compromis ?

Discussions similaires

  1. Gestion des objets Excel.Application dans Access
    Par spaiku dans le forum VBA Access
    Réponses: 7
    Dernier message: 01/10/2008, 16h15
  2. Gestion des objets ACCESS
    Par tiyolx dans le forum Modélisation
    Réponses: 5
    Dernier message: 24/05/2008, 23h57
  3. gestion des objets d'une scene
    Par crischprolch dans le forum OpenGL
    Réponses: 6
    Dernier message: 14/05/2008, 18h02
  4. [RMI]Gestion des objets sur le serveur?
    Par fabszn dans le forum Langage
    Réponses: 9
    Dernier message: 06/06/2007, 11h59
  5. Pb de gestion des objets Excel
    Par tedparker dans le forum Access
    Réponses: 2
    Dernier message: 11/09/2006, 17h13

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