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

Hochsichere Software für Electronic Knee Boards der Bundeswehrpiloten

Im Rahmen der umfassenden Digitalisierung der Bundeswehr ersetzen Electronic Knee Boards die herkömmlichen Handbücher von…

2 Stunden ago

Mai-Patchday: Microsoft schließt zwei aktiv ausgenutzte Zero-Day-Lücken

Sie betreffen Windows 10, 11 und Windows Server. In SharePoint Server steckt zudem eine kritische…

5 Stunden ago

Firefox 126 erschwert Tracking und stopft Sicherheitslöcher

Mozilla verteilt insgesamt 16 Patches für Firefox 125 und älter. Zudem entfernt der Browser nun…

8 Stunden ago

Supercomputer-Ranking: Vier europäische Systeme in den Top Ten

Einziger Neueinsteiger ist das Alps-System in der Schweiz. Die weiteren Top-Ten-Systeme aus Europa stehen in…

22 Stunden ago

Angriffe mit Banking-Malware auf Android-Nutzer nehmen weltweit zu

Im vergangenen Jahr steigt ihre Zahl um 32 Prozent. Die Zahl der betroffenen PC-Nutzer sinkt…

23 Stunden ago

Künstliche Intelligenz fasst Telefonate zusammen

Die App satellite wird künftig Telefongespräche in Echtzeit datenschutzkonform mit Hilfe von KI zusammenfassen.

1 Tag ago