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

Black Friday: Vorsicht vor schädlichen QR-Codes

Bösartige QR-Codes, die per E-Mail versendet werden, eignen sich sehr gut, um Spam-Filter zu umgehen.

8 Stunden ago

Black Friday: Zahl der ominösen Shopping-Websites steigt

Unsichere Websites und Phishing-Mails in Verbindung mit Black Friday können kauffreudigen Konsumenten zum Verhängnis werden.

8 Stunden ago

SmokeBuster bekämpft SmokeLoader

Malware SmokeLoader wird weiterhin von Bedrohungsakteuren genutzt, um Payloads über neue C2-Infrastrukturen zu verbreiten.

16 Stunden ago

Taugen Kryptowährungen als Unterstützer der Energiewende?

Bankhaus Metzler und Telekom-Tochter MMS testen, inwieweit Bitcoin-Miner das deutsche Stromnetz stabilisieren könnten.

1 Tag ago

Supercomputer-Ranking: El Capitan überholt Frontier und Aurora

Mit 1,7 Exaflops ist El Capitan nun der dritte Exascale-Supercomputer weltweit. Deutschland stellt erneut den…

1 Tag ago

Ionos führt neue AMD-Prozessoren ein

Der deutsche Hyperscaler erweitert sein Server-Portfolio um vier Angebote mit den neuen AMD EPYC 4004…

2 Tagen ago