Question

Disons que j'ai environ 10 "catégories". que je dois référencer dans une application web. Actuellement, je stocke ces catégories dans la base de données et les récupère (nom et identifiant de la catégorie) pendant le chargement de page dans ma page de base, les stockant dans une table de hachage, puis j'utilise la table de hachage pour référencer les catégories. J'ai réalisé que l'appel de base de données est effectué à chaque chargement de page. Je n'ai besoin de tirer ces catégories qu'une seule fois, car elles ne changent jamais au cours d'une session donnée. Quelle est la meilleure façon de faire cela?

  1. Faites ce que je fais, mais stockez-le en tant que variable d'application?

  2. Coder les catégories dans le code et supprimer la base de données?

  3. Stocker les catégories dans une variable de session? Et n’appelez la base de données que si la session est vide?

  4. Ou quelque chose d'autre?

Je suis simplement curieux de savoir quelle est la meilleure pratique pour faire de telles choses.

Était-ce utile?

La solution

Si les catégories dépendent de l'utilisateur, je les stocke dans la variable Session. sinon, j'utiliserais la fonctionnalité de mise en cache ASP.NET (ou la mise en cache distribuée préférée). Cela vous permet d'éviter de toucher la base de données tout en pouvant contrôler la durée de mise en cache des catégories.

Autres conseils

L’appel à la base de données n’est pas toujours aussi coûteux qu’il paraît, un site Web typique effectue des dizaines d’appels vers la base de données à chaque chargement de page. Mais si cela devient gênant en termes de performances, envisagez d’utiliser une solution ORM. L'excellent code source ouvert NHibernate vient à l’esprit, ce qui est le " de facto " norme pour mapper des bases de données à des classes et des objets. Au-delà du mappage, il fournit automatiquement deux niveaux de mise en cache et de mise en commun des connexions. Sans trop de peine, votre site web surpasse tous les autres.

L'inconvénient de l'utilisation d'un ORM? Pour beaucoup de gens, cette courbe d'apprentissage est plutôt abrupte. Si vous souhaitez en savoir plus, assurez-vous de visiter le Meilleures pratiques de NHibernate . Une lecture difficile au début, mais qui en vaut vraiment la peine.

Si vous associez NHibernate à FluentNHibernate , il devient très facile à utiliser.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top