Muster sind seit einigen Jahren eines der beliebtesten Forschungsthemen innerhalb der Software- Entwicklung. Das Interesse entstand vor allem vor dem Hintergrund, dass lange Zeit zwar gute Entwurfsmethoden und Sprachen wie z.B. die Unified Modeling Language UML vorhanden waren, es jedoch an dokumentierten, praxistauglichen Entwürfen für Software-Systeme fehlte und somit bei neuen Problemen oft gleiche Lernprozesse wiederholt werden mussten. Muster dagegen halten nicht nur gewisse Methoden fest, sie beinhalten zusätzlich Erfahrungen der Software-Entwickler in einer Form, die ihre Wiederverwendung möglich macht. Auf diese Weise ist es möglich, von den Erfahrungen langjähriger Entwickler zu profitieren, ohne selbst Experte zu sein.
Darüber hinaus stellt die Verwendung eines in der Praxis erprobten Musters sicher, dass die entwickelte Software bestimmten Anforderungen genügt, die an das Muster gestellt wurden. So sind in den letzten Jahren diverse Muster entwickelt bzw. gefunden worden, deren Anwendung Anpassungsfähigkeit und Flexibilität eines Softwaresystems gewährleistet. Die in dieser Arbeit behandelten Web Presentation Patterns stellen solche praxiserprobten Muster dar, die konkret auf das Anwendungsgebiet dynamischer Web-Applikationen bezogen wurden. Ihre Anwendungsbereiche reichen von der grundlegenden Trennung zwischen Anwendungslogik und Darstellung über die flexible Gestaltung von Web-Anwendungen bis hin zu unterschiedlichen Verfahren zum Cachen oft aufgerufener Seiten. Viele dieser Muster lassen sich mit einigen Anpassungen in der .NET-Umgebung besonders effizient umsetzen, indem von speziellen Klassen oder Mechanismen des .NET-Frameworks Gebrauch gemacht wird.
Inhaltsverzeichnis
1 Einleitung
2 Muster in der Software-Entwicklung
3 Web Presentation Patterns
3.1 Model View Controller
3.2 Page Controller
3.3 Front Controller
3.4 Intercepting Filter
3.5 Page Cache
3.6 Observer
4 Zusammenfassung
Zielsetzung & Themen
Die vorliegende Arbeit untersucht die Anwendung von Entwurfsmustern im Kontext dynamischer Web-Applikationen mit Fokus auf die .NET-Umgebung. Ziel ist es, praxiserprobte Lösungsansätze für wiederkehrende Architekturprobleme zu analysieren und deren effiziente Implementierung unter Nutzung spezifischer Framework-Mechanismen aufzuzeigen.
- Grundlagen und Bedeutung von Software-Mustern
- Strukturierung von Präsentationslogik (MVC, Page/Front Controller)
- Vorverarbeitung von Anfragen mittels Intercepting Filter
- Optimierung der Systemperformanz durch Caching-Strategien
- Kommunikation zwischen Objekten unter Wahrung loser Kopplung (Observer)
Auszug aus dem Buch
3.1 Model View Controller
Problem. Bei der Entwicklung vieler Informationssysteme hat sich gezeigt, dass Benutzeroberflächen deutlich öfter geändert oder an neue Umgebungen angepasst werden müssen als die zugehörige Fachlogik. Dabei müssen teilweise Anpassungen für Darstellungen auf anderen Geräten vorgenommen werden. Werden Darstellung und Fachlogik im selben Objekt verwaltet, muss jedes Mal, wenn die Benutzeroberfläche geändert wird, das Objekt geändert werden, das die Fachlogik enthält. Dies kann leicht zu Fehlern führen, und nach jeder Änderung in der Präsentation der Daten muss die komplette Fachlogik erneut getestet werden.
Außerdem werden oft für dieselbe Fachlogik mehrere unterschiedliche Darstellungen benötigt. Um dann eine Code-Duplizierung zu vermeiden, sollte die Fachlogik für die unterschiedlichen Darstellungen selbstverständlich nur einmal implementiert werden um Redundanz zu vermeiden und um zu verhindern, dass eine logische Änderung an mehreren Stellen im Quelltext nachvollzogen werden muss.
Für die Forderung einer Trennung zwischen Fachlogik und Präsentation bei interaktiven Systemen (z.B. [Fow03, S. 369]) spricht weiterhin die Tatsache, dass Software-Entwickler oftmals auf eines der beiden Gebiete spezialisiert sind. Es sollte also für ein Entwicklerteam möglich sein, die Fachlogik zu ändern, ohne in den Quelltexten einer anderen Gruppe Anpassungen vornehmen zu müssen.
Lösung. Model View Controller beschreibt allgemein, aus welchen Komponenten sich interaktive Systeme zusammensetzen sollten und wie diese miteinander kommunizieren. Die Anwendung dieses Musters erfüllt die vorstehend genannten Anforderungen und unterteilt eine Applikation in drei Komponenten (vgl. [Wik04] und Abbildung 1):
Zusammenfassung der Kapitel
1 Einleitung: Diese Einleitung führt in die Bedeutung von Software-Mustern als praxiserprobte Lösungsansätze ein und erläutert den Fokus auf Web Presentation Patterns.
2 Muster in der Software-Entwicklung: Dieses Kapitel definiert die Eigenschaften und Dokumentationsstandards von Mustern und verdeutlicht deren Rolle bei der Wissensvermittlung und Systemarchitektur.
3 Web Presentation Patterns: Hier werden sechs spezifische Muster zur Strukturierung von Web-Anwendungen vorgestellt, wobei jedes Muster hinsichtlich Problemstellung, Lösung und Implementierung in .NET diskutiert wird.
4 Zusammenfassung: Das Fazit fasst die vorgestellten Entwurfsmuster zusammen und betont ihren Wert für die Flexibilität, Wiederverwendbarkeit und Wartbarkeit moderner Web-Applikationen.
Schlüsselwörter
Software-Muster, Web-Applikationen, .NET-Framework, Model View Controller, Page Controller, Front Controller, Intercepting Filter, Page Cache, Observer, Architektur, Wiederverwendbarkeit, Entwurfsmuster, Code-Duplizierung, Software-Systeme, Trennung von Fachlogik
Häufig gestellte Fragen
Worum geht es in dieser Arbeit?
Die Arbeit befasst sich mit der Anwendung von Web Presentation Patterns, um Software-Architekturen für dynamische Web-Applikationen flexibler und wartbarer zu gestalten.
Welche zentralen Themenfelder werden behandelt?
Zentrale Themen sind die Entkopplung von Präsentations- und Fachlogik, die zentrale Steuerung von Anfragen, effizientes Caching sowie die flexible Kommunikation zwischen Software-Komponenten.
Was ist das primäre Ziel der Arbeit?
Ziel ist es, den Nutzen bewährter Entwurfsmuster in der Web-Entwicklung zu demonstrieren und aufzuzeigen, wie diese in der .NET-Umgebung konkret implementiert werden können.
Welche wissenschaftliche Methode wird verwendet?
Die Arbeit nutzt eine literaturbasierte Analyse und strukturierte Aufbereitung praxiserprobter Entwurfsmuster sowie deren Übertragung in die .NET-Programmierung.
Was wird im Hauptteil der Arbeit behandelt?
Der Hauptteil analysiert sechs spezifische Muster: Model View Controller, Page Controller, Front Controller, Intercepting Filter, Page Cache und Observer.
Welche Schlüsselwörter charakterisieren die Arbeit?
Wichtige Begriffe sind Software-Architektur, .NET, Entwurfsmuster, Separation of Concerns und Performance-Optimierung.
Wie unterscheidet sich der Page Controller vom Front Controller?
Der Page Controller setzt auf eine dezentrale Struktur mit einem Controller pro Seite, während der Front Controller einen zentralen Einstiegspunkt für alle Anfragen bereitstellt.
Welchen Vorteil bietet das Observer-Muster bei der Kopplung von Objekten?
Das Observer-Muster ermöglicht eine lose Kopplung, da Zustandsänderungen propagiert werden können, ohne dass das Subjekt eine direkte Abhängigkeit zu seinen Beobachtern kennen muss.
Wie kann das Intercepting Filter Muster in ASP.NET realisiert werden?
Die Umsetzung erfolgt durch die Implementierung der IHttpModule-Schnittstelle, die es erlaubt, modulare Vor- und Nachverarbeitungsschritte ereignisgesteuert in den Anfrageprozess zu integrieren.
- Quote paper
- Diplom-Wirtschaftsinformatiker Christoph Treude (Author), 2005, Microsoft Patterns: Web Presentation Patterns, Munich, GRIN Verlag, https://www.grin.com/document/59309