Was ist ein Framework und was nicht?
Wie ist eigentlich der Begriff Framework definiert? – Und sind die Produkte, die den Namen Framework in ihrem Namen tragen tatsächlich Frameworks?
In einem Artikel des kürzlich erschienen dot.net magazins wird diese Frage nachgegangen…
(Quelle: dot.net magazin)
Der Begriff Framework wurde als Analogie zur realen Welt eingeführt…
Als deutsche Ãœbersetzung findet sich beispielsweise “Rahmenwerk”, “Gerippe”, “Gerüst” oder auch “Fachwerk”. Ein Framework gibt somit bereits genau vor, welche Struktur das entstehende Gebilde besitzt und wie es funktioniert, mitunter sogar seinen Verwendungszweck…
Definition der GOF:
“Das Framework bestimmt die Architektur Ihrer Anwendung. Es definiert die Struktur im Großen, seine Unterteilung in Klassen un Objekte, die jeweiligen zentralen Zuständigkeiten, die Zusammenarbeit der Klassen und Objekte sowie deren Kontrollfuss. (…) Das jeweilige Framework enthält die Entscheidungen,die in diesem Anwendungsbereich allgemein anzufinden sind. Frameworks betonen damit die Entwurfswiederverwendung gegenüber der Codewiederverwendung, obwohl ein Framework üblicherweise konkrete Unterklassen enthält, die sie sofort verwenden können.”Ein Framework in diesem Sinne bestimmt, wie die Struktur einer bestimmten Klassen von Anwendungen aussieht, und legt weitgehend fest, wie diese Anwendungen funktionieren. Das Framework hat die eigentliche Kontrolle und nicht die hinzugefügten Teile.
(vgl. Dependency Inversion Principle DIP – Hollywood Prinzip)
Motto: “Don’t call the framework, the framework calls you!”Einteilung von Frameworks
Wird eine Klasse von Anwendungen definiert unterscheidet man zwei Richtungen:
- Vertikale Frameworks erzeugen Anwendungen aus einer bestimmten Domäne. Sie werden daher auch als Domain Frameworks bezeichnet.
- Horizontale Frameworks unterstützen die Entwicklung von Anwendungen, die eine bestimmte Technologie verwenden (z.B. Web Services), ohne auf die Fachrichtung festgelegt zu sein. Sie werden auch als Application Frameworks bezeichnet.
Eine weitere Unterscheidung betrifft die Notwendigkeit die interne Funktionsweise eines Frameworks zu kennen. Ein s.g. White-Box-Framework besteht aus abstrakten Klasse, die ein Entwickler zur Realisierung der Anwendung mit Inhalt füllen muss. Hierzu ist die Kenntnis über die internen Zuständigkeiten und Anhängigkeiten erforderlich. Ein Black-Box-Framework enthält dagegen fertige Klassen, die nur noch instantiiert, konfiguriert und zusammengesetzt werden müssen.
Zusätzliche Informationen
Framework Eintrag bei wikipedia.de