Caching von Benutzersteuerelementen in .NET

Wer von Benutzersteuerelementen noch nichts gehört hat, versäumt ein leistungsfähiges Feature von ASP.NET. Benutzersteuerelemente sind Seitenfragmente, die in Webseiten eingefügt werden können wie Web-Steuerelemente. Der Unterschied besteht darin, dass Benutzersteuerelemente ihr Aussehen in Visual Studio erhalten. Das bedeutet, dass man wieder verwendbare Steuerelemente erstellen kann, ohne – wie dies bei einem Web-Steuerelement der Fall wäre – eigenen HTML-Code schreiben zu müssen.

Noch besser ist dabei, dass Benutzersteuerelemente von Haus aus Caching unterstützen, was die Performance verbessern kann, indem eine vorgerenderte Kopie der Ausgabe des Steuerelements gespeichert wird. Das bedeutet, dass das Steuerelement sogar angezeigt werden kann, ohne dass der Code ausgeführt werden muss. Dies wiederum kann die Performance erheblich steigern, besonders wenn dieselbe Information wiederholt abgerufen wird.

Wie man Benutzersteuerelemente cacht

Das Verfahren zum Cachen eines Benutzersteuerelements in .NET ist ganz einfach: Man fügt einfach eine OutputCache-Direktive am Anfang der ASCX-Datei des Benutzersteuerelements ein. Diese Direktive erfordert einen Parameter, welcher die Dauer, die das Steuerelement im Cache verbleiben soll, in Minuten angibt. Das ist an sich bereits ein äußerst nützliches Feature von ASP.NET. Aber die Funktionalität geht noch darüber hinaus, denn es ist möglich, mehrere Kopien des Steuerelements im Cache zu behalten, je nach den Parametern, die dem Steuerelement übergeben werden.

Das Attribut für die Dauer wird ergänzt durch VaryByParam, VaryByControl oder VaryByCustom. VaryByParam erzeugt unterschiedliche gecachte Kopien des Steuerelements, abhängig vom Querystring und von Formular-Post-Variablen, die für das Formular bereitgestellt werden. Das Attribut VaryByControl ermöglicht die Eingabe eines Strings, der verwendet wird, um die Kopien des Steuerelements im Cache zu unterscheiden. Das Attribut VaryByCustom veranlasst ASP.NET zum Aufruf von HttpApplication.GetVaryByCustomString, um den String, der zur Unterscheidung der gecachten Kopien des Steuerelements verwendet wird, zurückzugeben.

Eine OutputCache-Direktive ohne variierende Parameter sieht wie folgt aus:

Eine einfache Möglichkeit zum Testen der Direktive besteht darin, ein Benutzersteuerelement zu erstellen, welches die aktuelle Zeit anzeigt, dieses in zwei verschiedene Steuerelemente zu kopieren und eines davon mit OutputCache zu versehen. Man kann dann eine Seite erstellen, die beide Steuerelemente enthält. Falls eines von ihnen beim erneuten Laden der Seite die Uhrzeit nicht aktualisiert, weiß man, dass es im Cache zwischengespeichert wurde.

Das Variieren nach Parametern funktioniert prima, wenn die Parameter aus einem Querystring stammen. Ist dies nicht der Fall, funktioniert die Methode nicht.

Page: 1 2

ZDNet.de Redaktion

Recent Posts

Studie: Ein Drittel aller E-Mails an Unternehmen sind unerwünscht

Der Cybersecurity Report von Hornetsecurity stuft 2,3 Prozent der Inhalte gar als bösartig ein. Die…

3 Tagen ago

HubPhish: Phishing-Kampagne zielt auf europäische Unternehmen

Die Hintermänner haben es auf Zugangsdaten zu Microsoft Azure abgesehen. Die Kampagne ist bis mindestens…

3 Tagen ago

1. Januar 2025: Umstieg auf E-Rechnung im B2B-Geschäftsverkehr

Cloud-Plattform für elektronische Beschaffungsprozesse mit automatisierter Abwicklung elektronischer Rechnungen.

4 Tagen ago

Google schließt schwerwiegende Sicherheitslücken in Chrome 131

Mindestens eine Schwachstelle erlaubt eine Remotecodeausführung. Dem Entdecker zahlt Google eine besonders hohe Belohnung von…

4 Tagen ago

Erreichbarkeit im Weihnachtsurlaub weiterhin hoch

Nur rund die Hälfte schaltet während der Feiertage komplett vom Job ab. Die anderen sind…

4 Tagen ago

Hacker missbrauchen Google Calendar zum Angriff auf Postfächer

Security-Experten von Check Point sind einer neuen Angriffsart auf die Spur gekommen, die E-Mail-Schutzmaßnahmen umgehen…

5 Tagen ago