Pattern zur Wiederverwendung von Code in ASP.NET

Das Page Controller-Pattern erweist sich als ineffizient, wenn man die Verarbeitung über mehrere Webseiten hinweg koordinieren muss, da es für jede logische Seite ein separates Objekt implementiert. Der Front Controller funktioniert in solchen Fällen besser, da er sämtliche Requests über einen einzigen Controller bündelt und diese dann über einen einzelnen Handler sowie eine Hierarchie von Befehlsklassen weiterleitet. Der Handler extrahiert Parameter aus dem HTTP-Request, wählt den korrekten Befehl und übergibt diesen der Verarbeitung. Nachdem jedes Befehlsobjekt die entsprechende Aktion durchgeführt hat, kann es wählen, welche View für die korrekte Darstellung der Seite erforderlich ist. Die Implementierung des Front Controllers führt zu einer zentralisierteren Anwendungssteuerung, weil alle Seiten-Requests über einen einzigen Controller laufen, anstatt von unterschiedlichen Page Controllern bearbeitet zu werden. Das kann sich allerdings auch als Nachteil erweisen, falls der Handler aufwändige Arbeitsschritte auszuführen hat wie etwa Datenbankabfragen, was die gesamte Anwendung ausbremsen kann. Der Handler sollte so effizient wie möglich sein und auf externe Ressourcen nur zugreifen, wenn es absolut nötig ist. Das Cachen von externen Ressourcen ist eine erwägenswerte Option, um die Performance des Handlers zu verbessern.

Man implementiert die FrontController-Klasse, indem man einen Handler und eine CommandFactory erstellt, die den notwendigen Befehl für die Response auf einen Request bestimmt. ASP.NET stellt das IHttpHandler-Interface bereit, mit dem Entwickler eigene Interfaces zur Bearbeitung eingehender HTTP-Requests erstellen können. Den Handler erstellt man per Vererbung von System.Web.IHttpHandler und fügt dann die Logik zum Instanziieren und Aufrufen des entsprechenden Befehls aus der CommandFactory hinzu. Die CommandFactory definiert eine Collection von Befehlen sowie die Logik, die bestimmt, welcher der Befehle ausgeführt werden soll. Der Aufruf der CommandFactory liefert das entsprechende Command-Objekt zurück, für das der Handler eine Execute-Methode aufrufen kann. Mit diesem Pattern kann man eine robustere Navigation erstellen und diese zentral implementieren, indem man die CommandFactory-Logik erweitert und zusätzliche Befehle zur Bearbeitung der notwendigen Szenarien erstellt.

Architektur-Pattern

.NET-Architekten sollten sich wann immer möglich um die Verwendung von Architektur-Pattern bemühen. Pattern wie der Page Controller und der Front Controller sind einfach mithilfe integrierter Funktionen von ASP.NET zu implementieren, und sie sorgen für hochgradig wieder verwendbare und erweiterbare Anwendungsdesigns und Implementierungen. Weitere Informationen und Einzelheiten zur ASP.NET-Implementierung für diese und weitere Architektur-Pattern finden sich im Microsoft .NET Architecture Center.

Page: 1 2 3

ZDNet.de Redaktion

Recent Posts

Data Analytics: Dienstleister wachsen zweistellig

Marktforscher Lündendonk erwartet für das Jahr 2025 ein durchschnittliches Umsatzwachstum von 14,9 Prozent.

1 Woche ago

Open-Source-Malware auf Rekordniveau

Alarmierender Anstieg von Open-Source-Malware / Seit 2019 haben Sonatype-Analysen mehr als 778.500 bösartige Pakete aufgedeckt

1 Woche ago

Bayerische KI-Agentur bietet KI-KOMPASS

Das KI-Werkzeug "BAIOSPHERE KI-KOMPASS" soll Unternehmen den Einstieg in KI erleichtern.

1 Woche ago

Cloudflare: Weltweiter Internettraffic wächst 2024 um 17,2 Prozent

Das Wachstum konzentriert sich wie im Vorjahr auf das zweite Halbjahr. Google dominiert bei den…

1 Woche ago

Adobe stopft kritische Löcher in Reader und Acrobat

Sie ermöglichen eine Remotecodeausführung. Angreifbar sind Acrobat DC, 2024 und 2020 sowie Reader DC und…

1 Woche ago

Dezember-Patchday: Microsoft schließt Zero-Day-Lücke

Die öffentlich bekannte und bereits ausgenutzte Schwachstelle erlaubt eine Rechteausweitung. Betroffen sind alle unterstützten Versionen…

1 Woche ago