Zum Inhalt springen

Startseite > Datenrettung Lexikon > Anfangsbuchstabe F > Framework

Framework Definition & Begriffserklärung

Framework – Rahmenwerk in der Softwareentwicklung und historische Office-Suite von Ashton-TateUnter der Bezeichnung Framework wird in der EDV eine Rahmenstruktur als sogenanntes Programmiergerüst bei der objektorientierten beziehungsweise komponentenbasierenden Softwareentwicklung verstanden. Ebenfalls handelt es sich auch um eine 1984 entwickelte Office-Variante von Robert Carr. In der Softwaretechnik bezeichnet ein Framework ein wiederverwendbares Rahmenwerk aus Regeln, Konventionen, Klassenbibliotheken, APIs und Vorlagen, das die Architektur, den Kontrollfluss und die Erweiterungspunkte einer Anwendung vorgibt. Es liefert typische Funktionen (z. B. Ereignisbehandlung, Datenzugriff, Logging, Tests, Internationalisierung) und beschleunigt so die Entwicklung komplexer Anwendungen.

Datenrettung zum Festpreis

Wir analysieren Defekte an allen gängigen Datenträgern aller Hersteller - kostenlos und unverbindlich.

Sie erhalten anschließend ein Festpreis-Angebot für die Wiederherstellung Ihrer Daten. Kosten fallen nur an, wenn Sie uns beauftragen und wir Ihre Daten retten können!

100% kostenlose Analyse anfordern!

Programm-Framework

Zu den ersten großen Office-Paketen gehörte das 1984 entwickelte Programm Framework von Robert Carr. Es war ursprünglich für PCs geschrieben worden und wurde später von der bekannten Firma Ashton-Tate, die auch die berühmte Datenbank dBASE vertrieb, weiterentwickelt. Framework beinhaltete eine Textverarbeitung, eine Tabellenkalkulation, ein Modul für die Darstellung von Geschäftsgrafiken, eine Datenbank und ein Kommunikationsmodul. Schon damals überzeugte das Programm mit einer grafischen Benutzeroberfläche und eine Programmübergreifende einheitliche Bedienung.

Ebenfalls beinhaltete das Programmpaket eine integrierte und besonders mächtige Makrosprache, die als FRED bekannt wurde. Framework war als Konkurrenz zu Lotus Symphony beziehungsweise SPI Open Access anzusehen. 1989 wurde die letzte Version IV von Ashton-Tate auf den Markt gebracht. Gegen Microsoft Office konnte sich das Programm letztlich nicht durchsetzen.

Leistungsmerkmale der Office-Suite Framework (historisch):

  • Einheitliche Arbeitsumgebung mit gemeinsamem Dateimanager und durchgängigen Befehlen
  • Textverarbeitung mit Formatvorlagen, Kopf-/Fußzeilen und Seriendruck
  • Tabellenkalkulation mit Formeln, Diagrammen und Verknüpfungen zu Text- und Datenbankmodulen
  • Einfaches Datenbanksystem für Formulare, Abfragen und Auswertungen
  • Kommunikationsmodul für Datenaustausch (z. B. Terminal-/Modemfunktionen der Zeit)
  • Makrosprache FRED für Automatisierung, wiederkehrende Abläufe und modulübergreifende Steuerung
  • Grafik-/Chart-Modul für Geschäftsgrafiken und Berichte

Die Stärken lagen in der frühen Integration mehrerer Anwendungsbereiche in einem konsistenten Bedienkonzept und der Automatisierbarkeit mittels Makros. Schwächen ergaben sich später aus Beschränkungen der zugrunde liegenden PC-Hardware und dem rasanten Funktionszuwachs konkurrierender Office-Pakete. Während Framework IV den Abschluss der offiziellen Produktlinie darstellt, existierten im Umfeld inoffizielle Anpassungen und Kompatibilitätslösungen. Historisch bleibt Framework ein wichtiger Meilenstein für integrierte Bürosoftware, auch wenn sich langfristig die spätere Office-Generation etablierte.

Framework in der Softwareentwicklung

In der Softwareentwicklung ist Framework noch kein eigenständiges Programm, sondern stellt einen Rahmen zur Verfügung, innerhalb dessen ein Anwendungsprogramm erstellt wird. Mithilfe der Entwurfsmuster, die ein Framework dem Programmierer zur Verfügung stellt, wird aber weitgehend die Struktur des Programms vorgegeben. So unterstützen beispielsweise die Microsoft Foundation Classes, die für die Programmierung grafischer Benutzeroberflächen für das Betriebssystem Windows unter C++ eine Sammlung objektorientierter Klassenbibliotheken enthält, das sogenannte Model-View-Controller-Muster.

Dieses Muster enthält ein Architekturmuster, welches die Programmierung in drei Einheiten strukturiert: Datenmodell, Präsentation und Programmsteuerung. Auf diese Weise gibt ein Framework die Anwendungsstruktur vor. Im Rahmen der Inversion of Control, einer Umkehrung der Programmsteuerung, registriert der Programmierer seine Implementierungen, die durch das Framework gesteuert werden. Werden die zu verwendeten Klassen nicht direkt im Programmcode festgelegt, sondern von außen implementiert, so nennt man dies Dependency Injection. Folglich wird durch ein Framework der Kontrollfluss des Programms und die Schnittstellen für die verwendeten Klassen definiert.

Abgrenzung Bibliothek vs. Framework: Eine Bibliothek wird vom Anwendungsprogramm aufgerufen, während ein Framework den Ablauf bestimmt (Hollywood-Prinzip: „Don’t call us, we’ll call you“). Dadurch liefern Frameworks Lebenszyklus-Management (Starten, Konfigurieren, Ausführen), Hook-Punkte, Ereignisverarbeitung und Konventionen, die den Quellcode strukturieren.

  • Typische Bausteine: Routing, MVC/MVVM/MVP, Datenzugriff/ORM, Validierung, Caching, Internationalisierung, Security (Authentifizierung/Autorisierung), Templating, Logging/Monitoring, Test-Unterstützung
  • Architekturmuster: neben MVC auch Document/View (verwandt mit MVC, klassisch in MFC), Clean Architecture, Hexagonale Architektur, Event-Driven- und Plug-in-Ansätze
  • Vorteile: Wiederverwendbarkeit, Produktivität, Qualitätssicherung, Community-Erfahrung, bessere Wartbarkeit
  • Herausforderungen: Einarbeitung, Abhängigkeiten, Updates/Migrationspfade, Performance-Tuning, „Lock-in“-Effekte

Moderne Frameworks setzen verstärkt auf Konvention vor Konfiguration, modulare Erweiterbarkeit, strikte Typsysteme (wo vorhanden) und integrieren Tooling für Build, Tests und Continuous Delivery.

Frameworktypen

In der Regel können Frameworks wie folgt eingeteilt werden: Unter Class Frameworks werden Klassen und Methoden zusammengefasst, die auf einer bestimmten Abstraktionsebene ein weites Anwendungsfeld finden. Application Frameworks bilden das eigentliche Programmiergerüst. Sie beinhalten bestimmte Klassen, deren Programmstrukturen für alle Klassen der Anwendung gleichermaßen von Bedeutung sind. Um ein Domain Framework handelt es sich, wenn für ein spezielles Problem Funktionen oder Strukturen zur Verfügung gestellt werden. Bei den Komponenten-Frameworks handelt es sich um ein Bündel von Klassen mit Schnittstellen, die zur Integration und Entwicklung von Softwarekomponenten benötigt werden.

  • Class Frameworks: Fokus auf wiederverwendbare Klassenbibliotheken (z. B. GUI-Widgets, Dateisystem, Netzwerk). Vorteil: breite Einsetzbarkeit, Nachteil: weniger Vorgaben zum Anwendungslebenszyklus.
  • Application Frameworks: liefern Struktur, Lifecycle, Konfiguration und Erweiterungspunkte. Eignen sich für komplette Geschäftsapplikationen mit Web-, Desktop- oder Service-Fokus.
  • Domain Frameworks: spezialisiert auf konkrete Fachdomänen (z. B. E-Commerce, Content-Management, Bildbearbeitung, wissenschaftliches Rechnen), oft mit branchentypischen Modulen und Workflows.
  • Komponenten-Frameworks: standardisieren Schnittstellen, Lebenszyklen und Interaktion von Bausteinen (Plug-ins, Module, Add-ons) und unterstützen lose Kopplung.
  • Tests Frameworks: bieten Testrunner, Assertions, Fixtures, Mocks/Stubs, Coverage-Integration und Testautomatisierung für Unit-, Integrations- und End-to-End-Tests.

Sogenannte Tests Frameworks werden für das Testen von Software benötigt. Dabei handelt es sich beispielsweise um den Test von Webanwendungen oder spezielle Modultest. Zu den bekanntesten Frameworks gehört das .NET Framework von Microsoft, Adobe Flex, CakePHP, Django, Drupal, JavaServer Faces, JUNit, MFC von Microsoft, Symfony, Visual Component Library von Borland oder beispielsweise YAML, ein CSS-Framework.

Aktualität und Entwicklungen: Neben dem klassischen .NET Framework wird heute die moderne .NET-Plattform aktiv weiterentwickelt (aktueller Entwicklungszweig bis .NET 8). In der Webentwicklung sind aktuelle Hauptversionen wie Symfony 6/7, Django 4/5 und CakePHP 4/5 verbreitet; bei Tests hat sich JUnit 5 etabliert. CSS-Rahmenwerke wurden durch utility-first- und komponentenorientierte Ansätze ergänzt. Die genannten historischen und aktuellen Varianten koexistieren oft, wobei neue Versionen verbesserte Performance, Sicherheit und Entwicklerergonomie bieten.

Häufige Fragen und Antworten

Was versteht man unter einem Framework in der Softwareentwicklung?

In der Softwareentwicklung ist ein Framework eine Rahmenstruktur, innerhalb derer ein Anwendungsprogramm erstellt wird. Es stellt dem Programmierer Entwurfsmuster und Klassenbibliotheken zur Verfügung, um die Struktur des Programms vorzugeben und bestimmte Funktionen oder Strukturen bereitzustellen. Ein Framework definiert den Kontrollfluss des Programms und die Schnittstellen für die verwendeten Klassen. Bekannte Beispiele für Frameworks sind das Microsoft .NET Framework, Adobe Flex, CakePHP, Django, Drupal und Symfony.

Kurz erklärt: Ein Framework steuert den Ablauf (Inversion of Control), liefert Bausteine für Routing, Datenzugriff, Sicherheit und Tests und setzt auf Konventionen statt umfangreicher Konfiguration. Das unterscheidet es von Bibliotheken, die nur auf Aufruf der Anwendung reagieren.

Vorteile in der Praxis:

  • schnellere Entwicklung durch wiederverwendbare Komponenten
  • einheitliche Architektur und bessere Wartbarkeit
  • integrierte Qualitätssicherung (Testing, Logging, Validierung)
  • breite Community-Erfahrung und erprobte Best Practices
Welche Arten von Frameworks gibt es?

Es gibt verschiedene Arten von Frameworks:

  1. Class Frameworks: Diese umfassen Klassen und Methoden, die auf einer bestimmten Abstraktionsebene ein weites Anwendungsfeld finden.
  2. Application Frameworks: Diese bilden das eigentliche Programmiergerüst und beinhalten bestimmte Klassen, deren Programmstrukturen für alle Klassen der Anwendung gleichermaßen von Bedeutung sind.
  3. Domain Frameworks: Hier werden Funktionen oder Strukturen für ein spezielles Problem bereitgestellt.
  4. Komponenten-Frameworks: Diese umfassen ein Bündel von Klassen mit Schnittstellen, die zur Integration und Entwicklung von Softwarekomponenten benötigt werden.
  5. Tests Frameworks: Diese werden für das Testen von Software verwendet, z.B. für Webanwendungen oder spezielle Modultests.

Ergänzend relevant:

  • Web-Frameworks (Frontend/Backend),
  • Microframeworks mit reduziertem Funktionsumfang,
  • Mobile- und Desktop-Frameworks,
  • Daten- und ML-Frameworks für Analyse, Pipelines und Modellbetrieb.
Welche bekannten Frameworks gibt es?

Es gibt zahlreiche bekannte Frameworks in der Softwareentwicklung, darunter:

  • .NET Framework von Microsoft (heute weitergeführt als .NET mit aktuellen Versionen, z. B. .NET 8)
  • Adobe Flex
  • CakePHP (aktuelle Hauptversionen 4/5)
  • Django (aktuelle Hauptversionen 4/5)
  • Drupal (aktuelle Hauptversionen 10/11)
  • JavaServer Faces
  • JUnit (aktuelle Generation JUnit 5)
  • MFC von Microsoft
  • Symfony (aktuelle Hauptversionen 6/7)
  • Visual Component Library von Borland
  • YAML (CSS-Framework)
  • Spring Framework (Java)
  • Angular und Vue.js (Web-Frameworks für Frontends)
  • Laravel (PHP)
  • ASP.NET Core (Web-Stack auf der .NET-Plattform)
Quelle für Ihr Zitat: Obenstehende Definition darf in kommerziellen und nicht kommerziellen Publikationen (somit auch in Hausarbeiten, Foren, Social Media Seiten) ohne Rückfrage zitiert werden. Kopieren Sie einfach den nachfolgenden Link für Ihr Zitat:

https://www.it-service24.com/lexikon/f/framework/

Bildnachweis: iStock.com/bluesroad

Sie können entspannt sein.
Wir retten Ihre Daten.

Sie können entspannt sein. Wir retten Ihre Daten.
100% kostenlose Analyse!

Senden Sie uns jetzt Ihre unverbindliche Anfrage: Sie erhalten eine kostenlose Analyse und ein unverbindliches Angebot zur Datenrettung mit Festpreisgarantie.

Ihre Daten werden gemäß Datenschutzerklärung verarbeitet, um Ihre Anfrage bearbeiten zu können.
Wir helfen Ihnen gerne!

Häufige Fragen
und Antworten

Für weitere Fragen stehen wir Ihnen gerne zur Verfügung: