Question

Je viens du monde LAMP, où le "tout mettre en cache" la mentalité est répandue. Tout est mis dans memcache.

Je commence un nouveau projet avec ASP.NET MVC et SQL Server. Je vais probablement aller avec LINQ to SQL ou peut-être Entity Framework. Dois-je prendre des décisions de conception maintenant pour la mise en cache ou est-il assez facile de commencer à utiliser Velocity si cela devient nécessaire? Soyons clairs: je parle du cache Velocity de Microsoft et non du moteur de template Apache Velocity.

J'espère pouvoir ignorer la mise en cache pour le moment, car apprendre en C #, ASP.NET MVC, LINQ, IIS, SQL Server et maîtriser le système de stabilité, c'est garder ma plaque pleine.

Était-ce utile?

La solution

Stephen Walther a un excellent article sur la façon de le faire

Conseil ASP.NET MVC n ° 39 & # 8211; Utiliser le cache distribué Velocity

Autres conseils

dswatik a fourni un excellent lien sur son utilisation.

Je suggérerais d'ajouter cette fonctionnalité quelque part dans votre couche Référentiel / Service pour alléger l'application et pour respecter le principe DRY.

@dswatic: Merci beaucoup. Il semble que je puisse ajouter la mise en cache plus tard avec une douleur minimale. Voici cependant un avertissement important de ce site:

" Si vous utilisez Object Relational Designer pour générer vos classes LINQ to SQL, vos classes LINQ to SQL ne seront pas sérialisables. Pour résoudre ce problème, j’ai construit manuellement les classes LINQ to SQL. "

Seuls les objets sérialisables peuvent être mis en cache avec Velocity.

Merci encore.

La réponse sélectionnée concerne le Velocity CTP1. Voici le lien MSDN pour le dernier Guide de programmation de Velocity .

En ce qui concerne votre autre question concernant les décisions de conception, la proposition de Chad Moran de placer la responsabilité sur la couche de référentiel est excellente. Ensuite, je chercherais à ajouter un support pour la mise en cache linq en utilisant une technique similaire à celle décrite ici: http://petemontgomery.wordpress.com / 2008/08/07 / mise en cache des résultats de linq-requêtes /

Vous devez évidemment écrire une implémentation qui utilise Velocity au lieu du cache ASP.NET ... mais vraiment, à moins de disposer de statistiques prouvant que vous avez besoin de quelque chose comme Velocity, vous pouvez probablement vous en tenir au cache normal jusqu'à ce que devient un problème. Si vous écoutez certaines des discussions que Joel Spolsky a données concernant le stackoverflow, vous verrez que deux boîtes (une avec iis et l'autre avec serveur SQL) peuvent gérer un volume très élevé.

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