Unter dem Begriff Framework verstehen Softwareentwickler ein Programmiergerüst, welches vor allem bei der objektorientierten Softwareentwicklung und komponentenbasierten Entwicklungsansätzen eingesetzt wird. Ziel ist es auch direkt viele Standardlösungen mit zu liefern, wie z.B. der Login oder E-Mail Versand. Die Softwareentwicklung folgt dabei der Grundidee, eine Software an den Grundstrukturen der jeweiligen Umwelt auszurichten. Eine typische objektorientierte Programmiersprache ist beispielsweise Java. Je nach Anwendungsbereich kommen jedoch auch weitere Programmiersprachen für Framework in Betracht.
Erfahren Sie hier mehr.
©123rf
Mit einem Framework wird also das Grundgerüst für eine spätere Softwarelösung geschaffen. Es stellt dann eine Struktur zur Verfügung, die von sämtlichen Applikationen gleichermaßen genutzt werden kann. Die genaue Ausgestaltung eines Frameworks ist jedoch nicht eindeutig definiert. In der Praxis existiert eine Vielzahl von Frameworks, die in unterschiedlichen Bereichen zum Einsatz kommen. Dazu gehören, ohne dass diese trennscharf abgegrenzt werden können, beispielsweise:
- Application Frameworks: Application Frameworks sind das Programmiergerüst für eine bestimmte Klasse von Anwendungen, die der Bereitstellung von Funktionen und Programmstrukturen dienen.
- Domain Frameworks: Domain Frameworks sind das Programmiergerüst für einen bestimmten Problembereich. Es enthält typischerweise Funktionen und Strukturen die zu einer Lösung des Problems benötigt werden.
- Class Frameworks: Class Frameworks fassen Klassen und Methoden zusammen. Sie werden auf verschiedenen Abstraktionsebenen verwendet und bieten Unterstützung bei der Bearbeitung zahlreicher Anwendungsfelder.
- Komponenten Frameworks: Komponenten Frameworks abstrahieren Inhalte aus der objektorientierten Ebene und liefern eine Entwicklungsumgebung zur Integration diverser Software-Komponenten. Die Software-Komponenten werden dabei regelmäßig als Klassenbündel eindeutig definierter Schnittstellen betrachtet.
- Coordination Frameworks: Coordination Frameworks dienen der Interaktion mit angeschlossenen Geräten. Ihr vordergründiges Ziel ist die Sicherstellung einer nahtlosen und skalierbaren Interoperabilität.
- Test Frameworks: Test Frameworks dienen der Ausführung von Softwaretests, etwa für Programm- und Webentwicklungen.
- Web Frameworks: Web Frameworks dienen als Grundlage für die Entwicklung von Webanwendungen. Sie sind in der Regel dynamisch verwendbar.
Aufgrund der nicht einheitlichen Verwendung des Begriffs „Framework“ existieren viele verschiedene Programmiersprachen und Angebote. Die Ausgestaltung ist höchst unterschiedlich. Populäre und oft genutzte Frameworks sind beispielsweise:
- SPRING Framework: SPRING Framework ist ein quelloffenes Framework für die Java-Plattform, welches die Entwicklung mit Java/Java EE vereinfachen und gute Programmierpraktiken unterstützen soll. Ein Merkmal von Spring ist die Entkopplung der Applikationskomponenten. Durch Vorlagen soll die Arbeit mit einigen Programmierschnittstellen (APIs) vereinfacht werden. Ziel ist es, dass dadurch Ressourcen automatisch aufgeräumt sowie Fehlersituationen einheitlich behandelt werden. Spring stellt eine ganzheitliche Lösung zur Entwicklung von Anwendungen dar.
- AngularJS Framework: Ebenso wie SPRING Framework vereinfach AngularJS Framework die Softwareentwicklung und das Komponententesten. Es dient der Erstellung von Single-Page-Webanwendungen nach einem Model-View-ViewModel-Muster und ist ein clientseitiges JavaScript-Webframework. AngularJS Framework wird als Open-Source-Framework von Google Inc. entwickelt. Das Framework basiert auf der clientseitigen Generierung von HTML-Ansichten und Erweiterungen des Vokabulars von HTML. Die Struktur eines AngularJS-Webclients basiert auf Modulen, View-Templates, Controllern, Scopes, Filtern und Providern. und besteht dadurch aus wiederverwendbaren Teilkomponenten.
- JavaServer Faces: JavaServer Faces ist ein Framework für die Entwicklung von Webanwendungen und der Gestaltung von grafischen Benutzeroberflächen. JavaServer Faces ist fester Bestandteil der Java-Technologien. Um JavaServer Faces benutzen zu können, sind Grundkenntnisse in den Programmiersprachen HTML und JavaScript nötig. Da JavaServer Faces von vielen Frameworks implementiert werden, kommen sie häufig zum Einsatz.
Daneben existieren zahlreiche weitere Frameworks, die jeweils unterschiedlichen Anforderungen gerecht werden. Evonier software solutions berät Sie etwa bei der Auswahl des für Sie geeigneten Frameworks und unterstützt oder übernimmt dessen Anwendung. Weiterhin bietet Evonier software solutions Ihnen eine ganzheitliche It-Beratung für Ihre Leistungsfähigkeit. Aufgrund der stetigen Weiterentwicklung vieler Frameworks hält sich das Team von evonier software solutions, die Experten für individuelle Softwareentwicklung, stets über Neuerungen auf dem neuesten Stand und bietet hierdurch in allen Aspekten zeitgemäße Leistungen. Dies ist insbesondere in der schnelllebigen, digitalen Welt des 21. Jahrhunderts von hoher Bedeutung. Um bei dem umfangreichen Themenkomplex „Framework“ den Überblick zu behalten, finden Sie zusammengefasst nochmals die Vor- und Nachteile der Nutzung eines Frameworks.
Vorteile:
- Viele Frameworks, wie beispielsweise Drupal, sind kostenlos verfügbar. Somit steht bereits ein gutes Grundgerüst zur Verfügung und muss nicht aufwendig neu entwickelt werden. Kommerzielle Angebote zur Erweiterung bestehender Frameworks sind ebenfalls günstig zu haben.
- Mit Hilfe von Frameworks lassen sich Communities und Dokumentationen einfacher in den Arbeitsalltag integrieren. So vhttps://evoniersoftware.de/individualsoftwareerfügen etwa viele CMS über die Möglichkeit zur Redaktionsorganisation, ohne dass dies den Lesern auffällt.
- Sollte es trotz aller Sorgfalt zu Sicherheitslücken kommen, so werden diese in großen und bedeutenden Frameworks innerhalb kürzester Zeit geschlossen.
Nachteile:
- Nicht immer ist ein Framework perfekt auf die spezifischen Bedarfe eines Unternehmens ausgelegt. So kann es etwa vorkommen, dass eine Seite Codes enthält, die nicht benötigt werden, aber etwa längere Ladezeiten verursachen.
- Die Anwender lernen meist die zugrundeliegende Programmiersprache nur in Teilen. Dementsprechend sind sie kurzfristig auf externe Hilfe angewiesen, wenn etwa Änderungen vorgenommen werden müss
- Die Einarbeitung kann lange dauern
- Auswahl eines unpassenden Framework kann zu langsamere Entwicklung und erhöhte Komplexität führen, sodass ein hoher Programmieraufwand entstehen kann