Webformular-Tracking mit ASP.NET

Es gab für dieses Projekt mehrere mögliche Ansätze. Eine Möglichkeit war das Schreiben eines eigenen Web-Request-Moduls. Dies stellt den wohl komplexesten Ansatz dar und wäre für dieses Szenario bei weitem zu aufwendig gewesen. ASP-Entwickler würden zu diesem Zweck wohl eher auf eine Include-Datei zurückgreifen.ASP.NET unterstützt jedoch keine Include-Dateien. Ein alternativer Ansatz verwendet eines der Ereignisse, die jedes Mal ausgelöst werden, wenn ein Webformular angefordert wird. Es gibt vier solche Ereignisse, die in der folgenden Reihenfolge ausgelöst werden:

  • Init
  • Load
  • Prerender
  • Unload

Das Init-Ereignis wird zuerst ausgelöst, so dass man einfach einen Code in dieses Ereignis einfügen kann, der das Ereignis in einer Datei oder wie in diesem Fall in einer Datenbank loggt. Der entsprechende Code könnte wie folgt aussehen:


Die obigen Kommentare beschreiben das Problem mit diesem recht mühseligen Ansatz. Eine elegantere Lösung könnte dagegen die Vererbung ausnutzen.

Jedes Webformular erbt standardmäßig von der Klasse System.Web.UI.Page. Also musste nur eine zusätzliche Schicht zwischen dem abgeleiteten Webformular und seiner Basis-Klasse eingefügt werden. Wir erstellten dazu eine Klasse namens PageTrack, die von System.Web.UI.Page erbt. Der Code für das Logging war in PageTrack enthalten. Jedes Webformular könnte dann so modifiziert werden, dass es von PageTrack statt von System.Web.UI.Page erbt. Mithilfe der Vererbung wurde der Logging-Code automatisch eingefügt. Hier der Code von PageTrack:


Man sollte daran denken, dass diese Klasse in ein .NET-Klassenbibliothek-Projekt eingebunden werden kann, um sie in mehreren Web-Anwendungen wiederverwenden zu können. Außerdem kann man dank der Sprach-übergreifenden Kompatibilität von .NET die Klasse PageTrack in VB.NET erstellen und sie in einer C#-Web-Anwendung benutzen.

Anfragen-Logging

Das direkte Logging in einer Datenbank kann eine effektive Methode darstellen, um die entsprechenden Informationen unmittelbar für Anwendungen zugänglich zu machen. Wenn man sich für diese Technik entscheidet, sollte man versuchen, den Logging-Code so weit wie möglich zu optimieren, um die unvermeidlichen Performance-Einbußen zu minimieren. Und man sollte daran denken, dass die Logging-Informationen evtl. doppelt vorliegen: einmal in den IIS-Logs und einmal in der Datenbank.

Themenseiten: Anwendungsentwicklung, Software, Webentwicklung

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Webformular-Tracking mit ASP.NET

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *