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

HostPress für Agenturen und E-Commerce-Betreiber

Höchste Performance-Standards für Webseiten und ein persönlicher, kundenorientierter Premium Support.

5 Tagen ago

V-NAND: Samsung steigert Bit-Dichte um 50 Prozent

Die neue V-NAND-Generation bietet die derzeit höchste verfügbare Bit-Dichte. Samsung steigert auch die Geschwindigkeit und…

5 Tagen ago

Bericht: Google entwickelt App-Quarantäne für Android

Die Sicherheitsfunktion taucht in einer Beta eines kommenden Android-Updates auf. Die Quarantäne beendet unter anderem…

6 Tagen ago

Kostenloser Kurs zum Ausbau von Low-Code-Programmierung

Die OutSystems Developer School hilft Entwicklern, in 2 Wochen komplexe reaktive Anwendungen mit der Low-Code-Plattform…

6 Tagen ago

Cloudflare: DNS-basierte DDoS-Angriffe steigen im ersten Quartal um 80 Prozent

Das Jahr 2024 beginnt laut Cloudflare mit einem Paukenschlag. Die automatischen Systeme des Unternehmens wehren…

6 Tagen ago

Roblox: 34 Millionen Zugangsdaten im Darknet

Laut Kaspersky nehmen Infostealer gerade auch Spieleplattformen ins Visier. Neue Studie untersucht Angriffe zwischen 2021…

6 Tagen ago