Was isn framework?

3 Antworten

Ein Framework ist ein Rahmen bzw. eine unterstützende Struktur, innerhalb der du deine Anwendung entwickelst. Sozusagen ein unfertiges Programm, welches lediglich das Fundament deiner Applikation ist. 

Es stellt häufig verwendete, gemeinsame Strukturen und Muster zur Verfügung, sodass nicht jeder alles von Grund auf entwickeln muss, sondern diese Strukturen nutzen kann, die immer wieder in zahlreichen Programmen verwendet werden. Ein Framework bietet außerdem einheitliche Schnittstellen zu bestimmten Quellen, z.B. zu Datenbanken. Dadurch lässt sich eine Quelle einfacher ansprechen.

Eine Engine dagegen ist eine in sich geschlossene, aber extern steuerbare Struktur, die leistungsfähige Logik verkörpert, welche speziell dafür entworfen wurde, eine bestimmte Art von Arbeit durchzuführen. Sie dient dazu komplexe, abstrakte Aufgaben durchzuführen, indem diese vereinfacht werden.

Bei einer Spiele-Engine sagst du also nicht direkt, welche Pixel manipuliert werden müssen, sondern, dass sich ein Objekt von A nach B bewegen soll. Die Engine übernimmt die ganze physikalische Berechnung und die Wahl der richtigen Perspektive für dich.

Anders als bei einem Framework nutzt du bei einer Engine nicht irgendwelche Funktionen, die du ausführst, sondern die Engine läuft von selbst im Hintergrund, ohne dass du etwas tun musst. Du teilst dieser lediglich Dinge mit, die sie für dich tun soll.

Der Unterschied ist also, dass bei einer Engine die Dinge, die definiert sind, tatsächlich auch schon implementiert sind und dies nicht erst durch das äußere Programm geschehen muss.

Um es also auf den Punkt zu bringen:

Ein Framework bietet dir vorgefertigte Routinen an, die du benutzen kannst, aber nicht benutzen musst. Eine Engine dagegen läuft von alleine und kann fast schon als ein eigenständiges Programm betrachtet werden. Du nutzt nicht irgendwelche Routinen, sondern du kommunizierst mit der Engine über eine Art API.

Ich hoffe, ich konnte es einigermaßen verständlich erklären.

Ganz grob gesagt, In einer engine z.B. Unity, Cryengine etc. kann man bereits Spiele "programmieren" ohne auch nur eine Zeile code geschrieben zu haben. Man kann das mit dem bauen eines Hauses vergleichen. Unity legt das Grudngerüst und du baust einfach nur darauf auf.

Dann gibt es noch frameworks wie z.B. libGDX wo du eigentlich alles selbst programmierst, aber dir Funktionen aus libraries zur Verfügung stehen. Beides hat seine Vor- und Nachteile.

 

Unter einem Framework versteht man Code, der Software-Infrastruktur darstellt, d.h. Code, der Algorithmen implementiert, die fast jedes Anwendungsprogramm sonst selbst implementieren müsste (in dieser oder anderer Form).

Konsequenz daraus:

Ein Framework zu verwenden erspart dem Entwicklungsteam in ganz erheblichem Umfang Entwurfs- und Implementierungsarbeit.

Die beiden heute wichtigsten Frameworks sind:

  • die Java Enterprise Edition (Java EE, JEE)
  • und Microsofts .NET (ebenfalls als Klassenbibliothek und Laufzeitumgebung).


0
@grtgrt

Im Java-Umfeld existieren darüber hinaus einige Dutzend weiterer Frameworks. 

Es gibt auch eine ganze Reihe im C++ Umfeld. Sie zu nutzen ist deutlich schwieriger und passiert daher entsprechend seltener.

Das Python Ecosystem kann als Vereinigung einer ganzen Reihe rudimentärer Frameworks betrachtet werden.

Jedes Framework kann als eine Erweiterung der mit der Sprache kommenden Standrd-Code-Bibliothek gesehen werden. Wie JEE und .NET zeigen, kann so manches Framework sogar als virtuelles Betriebssystem eingestuft werden.

0

Was möchtest Du wissen?