2009-07-05 10 views
0

Ich habe einige Artikel über SqlCacheDependency gelesen. Ich denke, es ist ein wirklich cooler Weg, um Caches zu aktualisieren, aber ich bin mir nicht sicher, wie ich mit dieser Technologie umgehen kann, wenn meine Anwendung eine n-Tier-Architektur ist.SqlCacheDependency in n-Tier Architektur

Ist das nur nützlich, wenn mein Programm eine kleine Webapplikation ist oder gibt es auch eine Möglichkeit für den Einsatz in großen n-Tier Architekturen?

+0

Meinen Sie, dass Ihre Anwendung auf mehrere Server verteilt ist? Vor allem die Datenbankschicht? –

+0

Ja, die DAL in unserem Projekt wird von verschiedenen Anwendungen genutzt. Von den ASP.Net-Anwendungen in der WebFarm bis zum Logic-Server mit BizTalk. –

Antwort

1

Sie können Ihre eigene ICacheDependency-Schnittstelle erstellen und eine Factory-Klasse verwenden, um Ihnen das entsprechende Objekt zu geben. Auf diese Weise müssen weder DAL noch BL auf den Namespace System.Web verweisen. Sie können diese Factory-Klasse in eine gemeinsame Ebene einfügen und sie auf der UI-Ebene referenzieren.

MS Petshop 4 hat so etwas verwendet, Sie können dem folgen.

+0

wirklich gutes Beispiel in petshop 4! Danke vielmals! –

0

In diesem Fall müsste Ihre DAL Ihnen ein Objekt zurückgeben, das von der abstrakten Cachedependency-Klasse stammt, die dasselbe wie SqlCacheDependency, aber für Ihre DAL optimiert ist.

Dies ist natürlich ein Versagen der Trennung von Bedenken, aber wenn Sie die Abhängigkeit benötigen, ist es der beste Weg zu gehen.

+0

Glaubst du, es ist ein "guter Stil", diese Klasse in einem DAL einer n-tier Architektur zu verwenden? Wie du, ich denke nicht. Fazit: Ich schätze Klasse, aber nur für kleine Apps. –

+0

Ja, ich denke, es ist bedauerlich, dass Microsoft keine ICacheDependency-Schnittstelle definiert hat, die möglicherweise von einer DAL bereitgestellt wurde. Ich mag keine DAL mit System.Web. –