2009-12-23 10 views
2

J'utilise à la fois IBatis.NET et Spring.NET sur un projet au travail et j'aimerais savoir si je peux tirer parti des deux ou des deux frameworks pour obtenir une mise en cache par requête sur tous les appels dans ma couche DAL . En d'autres termes, chaque fois qu'une requête HTTP est servie par ASP.NET, je voudrais d'abord appeler une méthode DAL pour frapper la base de données distante, mais tous les appels doivent ensuite être gonflés à partir du cache.mise en cache par requête dans ASP.NET?

J'ai vu quelques articles décrire un moyen d'y parvenir en utilisant HttpContext.Current, mais je ne peux pas supporter l'idée de polluer ma couche DAL avec les références System.Web. J'aimerais aussi tirer parti de ces cadres si possible, car je n'aime pas réinventer la roue.

Répondre

2

Je ne suis pas expert sur IBatis.NET et l'intégration avec Spring.NET très probablement plus merci défaut mais voilà ..

Je voudrais créer une implémentation ICACHE personnalisée qui utilise HttpContext.Current.Items. Ensuite, je ferais des objets de couche DAL avec Spring.NET AOP (ils sont derrière des interfaces, n'est-ce pas?). Ensuite, il suffit d'appliquer le conseil de cache en utilisant le framework AOP.

Vous devriez être en mesure de le faire en suivant la documentation de Spring.NET sur la mise en cache AOP et implémentez l'ICache en utilisant l'implémentation du cache ASP.NET de Spring.NET comme point de départ.