Was sind Frameworks?

Das englische Wort Framework, direkt übersetzt in etwa Rahmenwerk, steht für ein Programmiergerüst, das als Rahmen für die Entwicklung von Software genutzt wird. Dabei werden bestimmte Bausteine zur Designstruktur für die Entwickler zur Verfügung gestellt. Ein Framework an sich ist noch keine funktionierende Software. Der Begriff des Frameworks wurde 1984 geprägt, als der Softwarehersteller Ashton Rate ein entsprechendes Software-Paket vorstellte.

Illustration zu Was sind Frameworks?

Feb 0916

Die Basisbausteine des Frameworks bestehen aus so genannten abstrakten und konkreten Klassen, die die Erstellung diverser Applikationen ermöglichen. Innerhalb des Framework arbeiten mehrer Klassen eng zusammen. Bei der Nutzung eines Frameworks spricht man von Seiten des Programmierers von einer "Umkehrung der Steuerung". Das heißt, der Entwickler registriert lediglich konkrete Implementierungen und lässt diese dann von dem Framework benutzen und steuern.

Eine der wichtigsten Aufgaben des Frameworks besteht darin, den Kontrollfluss der Anwendungen und Schnittstellen zu definieren. Das Framework bestimmt also, wie die Struktur einer bestimmten Klasse von Anwendungen aussieht und legt fest, wie diese Anwendungen funktionieren. Es hat also die eigentliche Kontrolle und nicht die vom Programmierer hinzugefügten Teile.

Frameworks lassen sich grob in folgende Klassen unterteilen: Domain Frameworks stellen ein Programmiergerüst für bestimmte Probleme dar. Application Frameworks sind für eine ganz bestimmte Klasse vorgesehen. Coordination Frameworks bieten Einrichtungen zur Geräte-Interaktion und Komponenten Frameworks schließlich bieten explizit eine Umgebung zur Entwicklung und Integration bestimmter Software-Komponenten.

Weiter sollte ein Programmierer die interne Funktionsweise eines Frameworks kennen. Während das White Box Framework aus abstrakten Klassen besteht, enthält das Black Box Framework fertige Klassen, die nur noch konfiguriert werden müssen. Zu den bekannten Frameworks zählen unter anderem Application Kir, ATL Server, Adobe Flex, MFC und .NET von Microsoft oder die Visual Component Library.

In der Webentwicklung sind in der letzten Zeit vor allem CSS-Frameworks wie YAML oder 960 Grid beliebt, bei denen die HTML- und CSS-Strukturen schon vorgefertigt sind und dann je nach Layoutvorgabe angepasst werden kann. Vorteile liegen vor allem in der Cross-Browser-Kompatibilität, da Fehler einzelner Browserversionen bereits berücksichtigt und umgangen werden. Nachteile sind das notwendige Einlernen in fremden Code sowie der Overhead an eigentlich nicht benötigtem Code.

Auch Javascript/AJAX-Frameworks wie Mootools, JQuery oder Prototype erleichtern die Arbeit in der Webentwicklung. Durch vorgefertige Klassen gehen vor allem Animationen, AJAX-Funktionen und sonstige HTML-Manipulationen leichter von der Hand als wenn die benötigten Effekte selbst programmiert werden müssten.