2009-07-05 4 views
0

J'ai lu quelques articles sur SqlCacheDependency. Je pense que c'est une façon vraiment cool de mettre à jour les caches, mais je ne suis pas sûr de savoir comment je peux gérer cette technologie si mon application est une architecture de niveau.SqlCacheDependency in n-Tier Architekture

Est-ce utile si mon programme est une petite application web, ou existe-t-il aussi un moyen d'utilisation dans de grandes architectures à n niveaux?

+0

Voulez-vous dire que votre application est répartie sur plusieurs serveurs? Surtout la couche de base de données? –

+0

Oui, le DAL dans notre Projekt est utilisé par plusieurs applications différentes. Depuis les applications ASP.Net dans WebFarm vers le serveur logique avec BizTalk. –

Répondre

1

Vous pouvez créer votre propre interface ICacheDependency et utiliser une classe de fabrique pour vous donner l'objet approprié. De cette façon, ni votre DAL ni BL n'ont besoin de référencer l'espace de noms System.Web. Vous pouvez placer cette classe de fabrique dans un niveau commun et la référencer dans la couche d'interface utilisateur.

MS Petshop 4 a utilisé quelque chose comme ceci, vous pouvez vouloir suivre cela.

+0

vraiment bon exemple dans Petshop 4! Merci beaucoup! –

0

Dans ce cas, vous auriez besoin que votre DAL vous renvoie un objet qui dérive de la classe abstraite CacheDependency, qui ferait la même chose que SqlCacheDependency, mais qui soit optimisé pour votre DAL. Ceci est, bien sûr, un échec de la séparation des préoccupations, mais si vous avez besoin de la dépendance, c'est la meilleure façon d'y aller.

+0

Pensez-vous que c'est un "bon style" d'utiliser cette classe dans une LAD d'une architecture à n niveaux? Comme vous, je ne le pense pas. Conclusion: je cours sympa, mais seulement pour les petites applications. –

+0

Oui, je pense qu'il est malheureux que Microsoft n'ait pas défini une interface ICacheDependency, qui aurait pu être exposée à partir d'une DAL. Je n'aime pas une DAL utilisant System.Web. –