ASP.NET MVC Session vs Global vs Cache

J'ai une application qui a été écrit à la vanille ASP.NET que j'aimerais port à ASP.NET MVC.

Cependant, je suis confus au sujet au bon endroit pour conserver les objets. J'ai besoin de persister pour un couple de raisons:

  1. Je voudrais tous avoir un unique connexion de base de données, enveloppé dans un "référentiel" ou "gestionnaire" style d'objet.
  2. Chaque utilisateur dispose d'un objet utilisateur doit être enregistré sur une session par session.

Normalement, je dirais que #1 serait enregistré comme un élément statique dans les variables Globales.asax qui peut être frappé à l'aide de Global.Repository ou similaire.

Et je dirais normalement que 2 doit être une propriété avec une session de sauvegarde de stocker quelque part dans la classe de base des pages.

Maintenant la raison pour laquelle je suis confus, c'est que j'ai entendu dire que les séances ont changé dans MVC, et le Global.asax ne détient plus de la même classe. Aussi, le concept de pages a été supprimé, ajout d'une propriété à la classe de base d'un contrôleur semble... mal.

Qu'en dites-yall?

OriginalL'auteur John Gietzen | 2009-05-27