Die beliebtesten Web Application Frameworks im Überblick
Veröffentlicht am 15.11.2023 von DomainFactory
Von der Online-Unternehmensanwendung bis zum neuesten Browser-Game: Mit zunehmender Digitalisierung und Vernetzung gewinnen auch Webanwendungen immer stärker an Bedeutung. Wer heute moderne Web Apps entwickeln möchte, kann dafür auf eine Vielzahl nützlicher Werkzeuge zurückgreifen. In diesem Beitrag werfen wir einen Blick auf Web Application Frameworks.
Was ist ein Web Application Framework?
„Framework“ bedeutet auf Deutsch „Rahmen“, „Gerüst“. Ein „Web Application Framework“ oder „Webframework“ stellt demnach ein Grundgerüst für die Entwicklung einer Webanwendung zur Verfügung. Dazu gehören etwa Muster für die zugrunde liegende Architektur sowie Code-Vorlagen für Standardfunktionen wie Datenbankzugriff, Authentisierung, Caching, Routing, Formulare oder Lokalisierung. Hinzu kommen häufig Werkzeuge, die beispielsweise das Testen oder die gemeinsame Arbeit an Projekten erleichtern. Der Zweck solcher Webframeworks ist es, die Entwicklung von Webanwendungen zu vereinfachen und zu beschleunigen.
Webframework vs. Programmbibliothek
Die Begriffe „Framework“ und „Bibliothek“ werden nicht immer eindeutig verwendet. Ein wichtiger Unterschied liegt in der Kontrolle: Bibliotheken werden vom Entwickler eingebunden, wenn Funktionen daraus benötigt werden. Das Framework gibt dagegen die Struktur der Anwendung vor und daraus ergibt sich auch, wo ergänzende Funktionen aus Bibliotheken gebraucht werden. Die Kontrolle liegt hier also beim Framework („Inversion of Control“).
Wer eine Webanwendung entwickeln möchte, wählt also sinnvollerweise ein geeignetes Web Application Framework – je nach Art der gewünschten Anwendung für Frontend- oder Backend-Entwicklung. Clientseitig helfen JavaScript-Web-Frameworks wie Angular oder Vue.js insbesondere bei der Entwicklung von Single-Page-Anwendungen. Zusätzlich unterstützen CSS-Frameworks wie Bootstrap, Foundation oder YAML (Yet Another Multicolumn Layout) bei der Design-Entwicklung.
Für die serverseitige Entwicklung stehen beispielsweise Laravel (PHP), ASP.NET/ASP.NET Core, Ruby on Rails, Django (Python), Spring (Java) oder Express für JavaScript/Node.js zur Verfügung. Benötigte Funktionen, die das gewählte Framework nicht selbst mitbringt, können dann mit Hilfe von Bibliotheken realisiert werden.
Warum sollten Sie Web Application Frameworks nutzen?
Die Verwendung eines Web-Frameworks hat zahlreiche Vorteile. Der augenfälligste: Sie erspart Ihnen Arbeit und damit Zeit bei der Entwicklung. Das betrifft sowohl das Design Ihrer Anwendung als auch die Umsetzung. So gelangen Sie wesentlich schneller zu einer lauffähigen Anwendung, als wenn Sie bei der Programmierung bei null starten würden. Und auch bei der Pflege Ihrer fertigen Anwendung sparen Sie Zeit, weil das zu großen Teilen die Entwickler Ihres Frameworks übernehmen.
Aber das ist nicht alles: Die Verwendung eines Frameworks hilft Ihnen auch, besseren Code zu schreiben. Die meisten Web Application Frameworks geben eine strikte Trennung der Daten und Geschäftslogik einer Anwendung von deren Präsentation vor – eine empfehlenswerte Praxis, die durch Modularisierung die flexible Wiederverwendung und Weiterentwicklung von Code-Komponenten erleichtert. Sie nutzen dafür in der Regel ein Architekturmuster, das als Model-View-Controller (MVC) bezeichnet wird.
Generell gerät Ihr Code mit einem Web Application Framework strukturierter und dank DRY („Don’t Repeat Yourself“) schlanker, weniger fehleranfällig und einfacher zu warten. Die Einhaltung von Standards und eine nachvollziehbare Dokumentation erleichtern auch die Zusammenarbeit mit anderen Entwicklern in einem Projekt und das kontinuierliche Refactoring im Rahmen agiler Entwicklung. Frameworks können Ihren Code zudem sicherer machen, denn sie verfügen oft über Vorkehrungen zur Abwehr weit verbreiteter Bedrohungen. Beispielsweise schützen Django, Ruby on Rails oder ASP.NET Core von Haus aus vor SQL Injection. Aber Achtung: Wie jede komplexe Anwendung können auch Webframeworks ihrerseits Sicherheitslücken enthalten und sollten daher stets aktuell gehalten werden.
Die populärsten Web-Frameworks
Auf mehr als drei Viertel aller Webseiten kommt laut W3Techs (Stand: März 2023) serverseitig noch immer PHP zum Einsatz (78 %), gefolgt von ASP.NET (7 %), Ruby und Java (je 5 %) sowie JavaScript/Node.js (2 %). Statistiken zu Webframeworks vermitteln allerdings ein etwas anderes Bild: Laut Statista sind die am häufigsten eingesetzten Lösungen allesamt JavaScript-Frameworks – und mit Express liegt ein serverseitiges JavaScript-Framework deutlich vor den (echten) Frameworks für andere Sprachen (siehe Abbildung).
Demnach wären die populärsten Frontend-Frameworks Angular und Vue (ReactJS und jQuery gelten als Bibliotheken, Node.js ist eine Laufzeitumgebung). Auf Backend-Seite dominieren Express und ASP.NET (Core), gefolgt von Django, Flask, Next.js und Laravel. In den folgenden Abschnitten stellen wir jeweils die wichtigsten beiden Frameworks kurz vor, ergänzt durch Laravel aufgrund der großen Bedeutung von PHP für die Backend-Entwicklung.
Quelle: Statista (Umfrage unter Entwicklern vom Mai 2022)
Backend-Web-Frameworks
Express
Seine Entwickler bezeichnen das in JavaScript geschriebene und unter der freien MIT-Lizenz veröffentlichte Express (oder Express.js) als „schnelles, offenes, unkompliziertes Web-Framework für Node.js“, die JavaScript-Laufzeitumgebung für Kontexte außerhalb von Webbrowsern. Das seit 2010 entwickelte Framework bietet diverse Funktionen und Werkzeuge, um die serverseitige Entwicklung moderner Webanwendungen und API-Endpunkte zu vereinfachen und zu beschleunigen. Zudem bietet es die Basis für eine Reihe anderer Node-Web-Frameworks, zum Beispiel NestJS oder LoopBack.
Express selbst ist eher minimalistisch; Entwicklern steht aber eine Fülle von Plugin-Bibliotheken bzw. Middlewarepaketen zur Verfügung, um gängige Aufgaben bei der Webentwicklung zu erleichtern, von der Arbeit mit Cookies, Sessions und Benutzeranmeldungen über das Handling von HTTP-Anfragen und Antworten oder das Routing bis zur Fehlerbehandlung.
ASP.NET / ASP.NET Core
Microsofts Web Application Framework ASP.NET (sprich: „ASP-Dot-Net“) hat eine lange Geschichte: Es ist der Nachfolger des Frameworks Active Server Pages (ASP), das zuerst 1996 als ein Add-on für Microsofts Webserver IIS (Internet Information Services) erschienen war (heute unterstützt ASP.NET auch andere Webserver, u. a. Apache). 2002 erschien dann ASP.NET als Teil des umfassenden .NET-Frameworks. Aktuell ist ASP.NET in der Version 4.81 vom August 2022. ASP.NET beinhaltet eine Reihe eigener Frameworks für die Entwicklung verschiedener Typen von Webanwendungen, darunter die ASP Web Forms als Basis, ASP.NET Web Pages für dynamische Webseiten, ASP.NET MVC zur Implementierung von MVC-Architekturen und ASP.NET Web API für Web-APIs.
Parallel veröffentlicht Microsoft seit 2015 das modernisierte, quelloffene Framework ASP.NET Core, das nicht nur Windows, sondern auch Linux und macOS unterstützt (aktuell Version 7.0 von November 2022). Anwendungen, die mit ASP.NET Core entwickelt wurden, sind nicht mit dem klassischen .NET kompatibel, sondern nur mit dem neueren .NET Core (das jetzt aber nur noch .NET heißt). ASP.NET Core enthält die Frameworks ASP.NET MVC und ASP.NET Web Pages; ASP.NET Web API ist jetzt im MVC-Framework integriert. Das neue Framework Server-side Blazor erlaubt die Entwicklung interaktiver Weboberflächen mit C# (ohne JavaScript-Programmierung) und unterstützt auch das Websocket-Protokoll.
Laravel
Auch schon eine Weile auf dem Markt ist Laravel, ein Framework für PHP, das zuerst 2011 veröffentlicht wurde und ebenfalls unter der MIT-Open-Source-Lizenz steht. Aktuelle Version ist Laravel 10 (Februar 2023). Es folgt ebenfalls dem MVC-Muster und bietet leistungsstarke Funktionen für eine schnelle und intuitive Anwendungsentwicklung, z. B. HTML-Templating, Routing, Authentifizierung, Lokalisierung oder objektrelationales Datenbank-Mapping (Eloquent ORM), was das Schreiben von SQL-Abfragen überflüssig macht. Dank seiner Modularität ist es flexibel erweiterbar und bringt dafür sogar ein leistungsfähiges Paketmanagementsystem mit ausgefeilter Verwaltung von Abhängigkeiten mit.
Aufgrund seines Erfolges bei PHP-Entwicklern gibt es inzwischen ein umfangreiches Laravel-Ökosystem mit Erweiterungen und Services, zum Beispiel für das Betreiben von Laravel-Servern (Laravel Forge), ihr Deployment und Monitoring (Laravel Envoyer), Testen (Laravel Valet) oder Debugging (Laravel Telescope).
Frontend-Web-Frameworks
Angular
Das Frontend-Webframework Angular wurde 2016 von Google auf Basis des ursprünglichen AngularJS völlig neu entwickelt. Es basiert auf Microsofts JavaScript-Derivat TypeScript und wird insbesondere für die Entwicklung von Single-Page-Apps (SPAs) und mobilen Anwendungen eingesetzt. Wie viele andere Web-Frameworks wird auch Angular unter der MIT-Lizenz veröffentlicht. An der Entwicklung ist eine große Community unter Führung von Google beteiligt.
Angular ist eher eine Entwicklungsplattform als ein reines Framework: Neben dem komponentenbasierten Core-Framework und zahlreichen Bibliotheken für die verschiedensten Funktionen (z. B. Routing, Formularverwaltung, Client-Server-Kommunikation) bringt diese auch diverse Entwickler-Tools mit, darunter das vielseitige Kommandozeilenwerkzeug Angular CLI. Ein weiterer Vorteil für Angular-Anwender ist das umfangreiche Software-Ökosystem mit einsatzfertigen Lösungen für die verschiedensten Aufgaben.
Vue.js
Auch Vue.js ist ein populäres Open-Source-Web-Framework (MIT-Lizenz) für die Frontend-Entwicklung und vor allem für SPAs. Es wurde als schlankere Alternative für AngularJS geschaffen.
Wie der Name schon sagt, liegt der Fokus von Vue (ausgesprochen „View“) auf der Präsentation. Die Core-Bibliothek ist auf die View-Komponente spezialisiert, aber dank zahlreicher Erweiterungen ist Vue.js dennoch als vollwertiges Framework für komplexere Single-Page-Anwendungen nutzbar. Zu den gebotenen Funktionen zählen z. B. Routing, Zustandsmanagement, Server-side Rendering oder das Kommandozeilenwerkzeug Vue CLI. Seine Stärke spielt Vue aber vor allem in kleineren Projekten oder Teilaufgaben aus.
Titelmotiv des Artikels: Die beliebtesten Web Application Frameworks - Photo by Christopher Gower on Unsplash