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 :

[Article] L'architecture multicouche mise en œuvre sur une application Web ASP.Net


Sujet :

ASP.NET

  1. #21
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 19
    Points : 22
    Points
    22
    Par défaut
    Bonjour à tous et merci pour cet excellent article, néanmoins j'ai une question sur la pertinence de ce type de fonctionnement : "LoadData().Where(qqchose)"

    En faisant ça, on se tape la lecture de la totalité de la table, la conversion en objets métiers, pour au final ne retenir qu'un seul enregistrement ...

    La mise en cache c'est bien, mais il faut garantir que le cache est à jour, et dans le cadre d'une application web c'est pas forcément très pertinent ...

    Ceci dit, j'ai peut être loupé quelque chose, donc j'appelle à un petit complément d'informations à ce sujet

    Ou alors c'est déjà dépassé et il y a de nouvelles techniques avec un article vers lequel vous pourriez me pointer ?

    Merci d'avance !!!

  2. #22
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Salut,
    Citation Envoyé par sierramike Voir le message
    LoadData().Where(qqchose)

    En faisant ça, on se tape la lecture de la totalité de la table, la conversion en objets métiers, pour au final ne retenir qu'un seul enregistrement ...
    Tu as tout à fait raison. Dans l'implémentation que j'ai faite dans l'article, je ramène effectivement la totalité de la table pour la simple et bonne raison c'est que je j'utilise une bonne vieille commande SQL qui me ramène toutes les données. Ce n'est effectivement pas quelque chose à faire à moins de les mettre en cache.

    Pour répondre simplement et dans l'ordre:
    1. Linq et Entity Framework permettent de générer des requêtes dont la syntaxe va s'adapter au clauses. Une expression lambda appliquée directement sur la base sera parfaitement performante (tout dépend du DBA qui lira ce message );
    2. La garantie du cache s'implémente selon les besoins. En général, on met en cache les données qui ne changent pas fréquemment.


    Conclusion, même si cela n'apparaît pas dans l'article, l'expression LoadData().Where(... est totalement pertinente et d'actualité, sous réserve qu'on maintienne un IQuerable de bout en bout (jusqu'à la base) sans avoir fait de ToList() ou ToQuelqueChose() en cours de route. Pour "preuve", je t'invite à lire cet autre article: http://immobilis.developpez.com/tuto...ity-framework/. Et particulièrement ce paragraphe dans lequel le tableau montre la syntaxe de la requête SQL.

    "Winter is coming" (ma nouvelle page d'accueil)

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/03/2011, 10h13
  2. Réponses: 2
    Dernier message: 17/01/2008, 17h05
  3. Réponses: 3
    Dernier message: 31/10/2007, 11h38
  4. Log4j sur une application web
    Par samuko dans le forum Logging
    Réponses: 3
    Dernier message: 23/05/2007, 18h10
  5. Limites d'access sur une application WEB
    Par titou250 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 07/04/2006, 02h35

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