2017-11-04 2 views
0

Ich bin auf der Suche nach ein paar hilfreiche Tipps, wie die Caching-Schicht in einem ASP.NET-Projekt mit der Business-Logik-Ebene arbeiten sollte. Sollte die Caching-Ebene speziell zwischengespeicherte/cachierbare Objekte behandeln und andere Funktionen direkt an die BLL übergeben oder sollte die Caching-Schicht fast die Stelle der BLL einnehmen und diese nur als Brücke zwischen der Caching-Schicht und der DAL?ASP.NET Caching Layer Vs Business Logic Layer

Ein gutes Beispiel dafür und das, was mich am Kopf kratzt, ist die Korbfunktionalität auf einer E-Commerce-Website. Pre-Caching Layer, Artikel wurden über die BLL zum DAL in den Warenkorb gelegt. Bei der BLL gibt es eine Menge Logik zum Überprüfen von Arten von Gegenständen etc. Sollte die Caching-Schicht nun die Verantwortung für einen Teil dieser Logik übernehmen oder einfach die zwischengespeicherte Information zusammenziehen und sie an die BLL weiterleiten?

Ich würde jede Hilfe zu diesem Thema schätzen.

Antwort

0

Es hängt alles davon ab, was Sie cachen. Wenn ich Ihre Frage richtig verstanden habe, übernimmt das Caching in Ihrem Szenario den Platz Ihrer Datenquelle. Es ersetzt nicht Ihre Geschäftslogik oder andere Ebenen. Wenn Sie die Artikel in den Warenkorb legen, speichern Sie diese Artikel im Cache, so dass Sie sie oft nicht aus dem permanenten Speicher holen müssen. Wenn Sie jedoch eine Logik haben, die die Artikel häufig überprüfen muss, tun Sie dies immer noch, indem Sie die Artikel im zwischengespeicherten Warenkorb überprüfen.

+0

Danke @TheBlueSky. Ja, du hast meine Frage richtig verstanden, obwohl ich es vielleicht nicht so gut erklärt habe wie ich. In meinem Beispiel, ich füge nur wirklich Daten hinzu, interagiere ich nicht wirklich mit dem Cache (weil ich keine Körbe cache), aber sagen wir, ich gebe nur ein Basisdatum aus der BLL zurück, würde ich das sagen geht in die BLL und wird über die Caching-Schicht zugegriffen, aber dies scheint sehr langatmig zu sein. Wäre dies mit einer Caching-Schicht am besten? –

+0

Ein anderes perfektes Beispiel hier ist, wo ich mit einer API in der BLL interagiere, es kann sicherlich nicht "der Weg" sein, zusätzliche Assembly-Referenzen zur API in der Caching-Schicht hinzuzufügen, um dann die eigentliche Arbeit in der BLL zu erledigen ? –

+0

@JoeNinety, können Sie ein Beispiel zusammenstellen, das Ihren Fall demonstriert; vielleicht das von Ihnen erwähnte Datumsbeispiel? – TheBlueSky

Verwandte Themen