Pattern zur Wiederverwendung von Code in ASP.NET

Verwendet man das Page Controller-Pattern, implementiert eine zentrale Klasse namens BaseController alle gängigen Verhaltensweisen, die zur Bearbeitung des HTTP-Requests, für das Update des Modells sowie die Weiterleitung eines Requests an die entsprechende View erforderlich sind. Der BaseController kümmert sich um allgemeine Funktionen wie Session-Management, Sicherheit und das Extrahieren von Daten aus Abfrage-Strings oder versteckten Feldern. Für jeden Link in der Webanwendung erstellt man dann eine individuelle PageController-Klasse, die vom BaseController erbt. Diese einzelnen PageController implementieren jedes seitenspezifische Verhalten, während sie auf die Kernfunktionen zurückgreifen, wie sie vom BaseController implementiert worden sind.

In vielen Fällen lässt sich eine Anwendung in eine Reihe einheitlicher Seitentypen aufteilen, denen eine gemeinsame Logik zugrunde liegt. Vielleicht gibt es eine Reihe von Seiten zum Eintragen von Daten oder mit tabellarischen Übersichten (Grid View), die alle eine gemeinsame Logik aufweisen. In solchen Fällen kann es sinnvoll sein, einen DataEntryController oder einen GridViewController zu implementieren, der von der BaseController-Klasse erbt. Hieraus kann man dann

PageController

implementieren, welche die gemeinsamen Methoden nutzen. Man sollte aber aufpassen, nicht zu viele Vererbungsebenen zu implementieren, denn sonst kann es bei der Wartung des Anwendungsdesigns zu Schwierigkeiten kommen. Man kann die Vererbungshierarchie durch das Erstellen von „Helfer-Klassen“ minimieren, die gemeinsamen, auf jeder Ebene der Hierarchie aufrufbaren Code enthalten.

Um das Page Controller-Pattern zu implementieren, erstellt man die BaseController-Klasse durch Vererbung von System.Web.UI.Page und implementiert dann die gemeinsamen Anwendungsfunktionen. Der BaseController könnte zum Beispiel ein einheitliches Look and Feel implementieren, indem er eine Kopfzeile, eine Fußzeile und einige benutzerspezifische Informationen bereitstellt (zum Beispiel Anmelde-Namen und Abteilung). Dann erstellt man jede Seite der Anwendung durch Vererbung von dieser BaseController-Klasse und implementiert die seitenspezifische Logik in Klassen in der Code Behind-Datei. Dies funktioniert für mäßig komplexe Anwendungen mit einem festen Navigationspfad. Falls man dynamische Navigation benötigt, empfiehlt sich das Front Controller-Pattern.

Page: 1 2 3

ZDNet.de Redaktion

Recent Posts

HPE baut Supercomputer am Leibniz-Rechenzentrum

Das System basiert auf Hardware von HPE-Cray und Nvidia. Die Inbetriebnahme erfolgt 2027.

3 Tagen ago

Bund meldet Fortschritte in der Netzversorgung

Die Bundesnetzagentur hat ihr Gigabit-Grundbuch aktualisiert. Drei von vier Haushalten sollen jetzt Zugang zu Breitbandanschlüssen…

3 Tagen ago

Vorinstallierte Schadsoftware auf IoT-Geräten

Mit dem Internet verbundene Digitale Bilderrahmen oder Mediaplayer können mit Schadsoftware infiziert werden und sind…

6 Tagen ago

iOS und iPadOS 18.2 beseitigen 21 Sicherheitslücken

Schädliche Apps können unter Umständen einen Systemabsturz auslösen. Mindestens eine Anfälligkeit erlaubt eine Remotecodeausführung.

7 Tagen ago

Top-Malware im November: Infostealer Formbook bleibt Nummer 1

Sein Anteil an allen Infektionen steigt in Deutschland auf 18,5 Prozent. Das Botnet Androxgh0st integriert…

7 Tagen ago

Google schließt schwerwiegende Sicherheitslücken in Chrome

Betroffen sind Chrome 131 und früher für Windows, macOS und Linux. Angreifer können unter Umständen…

1 Woche ago