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.
Neueste Kommentare
Noch keine Kommentare zu Pattern zur Wiederverwendung von Code in ASP.NET
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.