Angular. Ferdinand Malcher
Applikationen zu entwickeln. Tatsächlich hat Angular seinen Ursprung beim wohl größten Player des Internets – Google. Obwohl kommerzielle Absichten hinter der Idee stehen, wurde Angular von Anfang an quelloffen unter der MIT-Lizenz veröffentlicht. Im September 2016 erschien Angular in der Version 2.0.0. Google setzte damit einen Meilenstein in der Welt der modernen Webentwicklung: Das Framework nutzt die Programmiersprache TypeScript, bietet ein ausgereiftes Tooling und komponentenbasierte Entwicklung. In kurzer Zeit haben sich rund um Angular ein umfangreiches Ökosystem und eine vielfältige Community gebildet.
Die Entwicklung wird maßgeblich von einem dedizierten Team bei Google vorangetrieben, wird aber auch stark aus der Community beeinflusst. Angular gilt neben React.js (Facebook) und Vue.js (Community-Projekt) als eines der weltweit beliebtesten Webframeworks. Sie haben also die richtige Entscheidung getroffen und haben Angular für die Entwicklung Ihrer Projekte ins Auge gefasst.
Opinionated Framework
Das Framework ist modular aufgebaut und stellt eine Vielzahl an Funktionalitäten bereit, um wiederkehrende Standardaufgaben zu lösen. Der Einstieg ist umfangreich, aber die Konzepte sind durchdacht und konsequent. Hat man die Grundlagen erlernt, so kann man den Fokus auf die eigentliche Businesslogik legen. Häufig verwendet man im Zusammenhang mit Angular das Attribut opinionated, das wir im Deutschen mit dem Begriff meinungsstark ausdrücken können: Angular ist ein meinungsstarkes Framework, das viele klare Richtlinien zu Architektur, Codestruktur und Best Practices definiert. Das kann zu Anfang umfangreich erscheinen, sorgt aber dafür, dass in der gesamten Community einheitliche Konventionen herrschen, Standardlösungen existieren und bestehende Bibliotheken vorausgewählt wurden.
Obwohl die hauptsächliche Zielplattform für Angular-Anwendungen der Browser ist, ist das Framework nicht darauf festgelegt: Durch seine Plattformunabhängigkeit kann Angular auf nahezu jeder Plattform ausgeführt werden, unter anderem auf dem Server und nativ auf Mobilgeräten.
Grundlegende Konzepte
Sie werden in diesem Buch lernen, wie Sie mit Angular komponentenbasierte Single-Page-Applikationen entwickeln. Wir werden Ihnen vermitteln, wie Sie Abhängigkeiten und Asynchronität mithilfe des Frameworks behandeln. Weiterhin erfahren Sie, wie Sie mit Routing die Navigation zwischen verschiedenen Teilen der Anwendung implementieren. Sie werden lernen, wie Sie komplexe Formulare mit Validierungen in Ihre Anwendung integrieren und wie Sie Daten aus einer HTTP-Schnittstelle konsumieren können.
Beispielanwendung
Wir entwickeln mit Ihnen gemeinsam eine Anwendung, anhand derer wir Ihnen all diese Konzepte von Angular beibringen. Dabei führen wir Sie Schritt für Schritt durch das Projekt – vom Projektsetup über das Testen des Anwendungscodes bis zum Deployment der fertig entwickelten Anwendung. Auf dem Weg stellen wir Ihnen eine Reihe von Tools, Tipps und Best Practices vor, die wir in mehr als vier Jahren Praxisalltag mit Angular sammeln konnten.
Nach dem Lesen des Buchs sind Sie in der Lage,
das Zusammenspiel der Funktionen von Angular sowie das Konzept hinter dem Framework zu verstehen,
modulare, strukturierte und wartbare Webanwendungen mithilfe von Angular zu entwickeln sowie
durch die Entwicklung von Tests qualitativ hochwertige Anwendungen zu erstellen.
Die Entwicklung von Angular macht vor allem eines: Spaß! Diesen Enthusiasmus für das Framework und für Webtechnologien möchten wir Ihnen in diesem Buch vermitteln – wir nehmen Sie mit auf die Reise in die Welt der modernen Webentwicklung!
Versionen und Namenskonvention: Angular vs. AngularJS
It’s just »Angular«.
In diesem Buch dreht sich alles um das Framework Angular. Sucht man nach dem Begriff »Angular« im Internet, so stößt man auch oft noch auf die Bezeichnung »AngularJS«. Hinter dieser Bezeichnung verbirgt sich die Version 1 des Frameworks. Mit der Version 2 wurde Angular von Grund auf neu entwickelt. Die offizielle Bezeichnung für das neue Framework ist Angular, ohne Angabe der Programmiersprache und ohne eine spezifische Versionsnummer. Angular erschien im September 2016 in der Version 2.0.0 und hat viele neue Konzepte und Ideen in die Community gebracht. Weil es sich um eine vollständige Neuentwicklung handelt, ist Angular nicht ohne Weiteres mit dem alten AngularJS kompatibel. Um Verwechslungen auszuschließen, gilt also die folgende Konvention:
Angular – das Angular-Framework ab Version 2 und höher (dieses Buch ist durchgängig auf dem Stand von Angular 10)
AngularJS – das Angular-Framework in der Version 1.x.x
Long Term Support für AngularJS
AngularJS, das 2010 erschien, ist zwar mittlerweile etwas in die Jahre gekommen, viele Webanwendungen setzen aber weiterhin auf das Framework. Die letzte Version 1.8.0 wurde im Juni 2020 veröffentlicht und wird ab Januar 2022 offiziell nicht mehr weiterentwickelt.1
Semantic Versioning
Sie haben also die richtige Entscheidung getroffen, Angular ab Version 2.0.0 einzusetzen. Diese Versionsnummer x.y.z basiert auf Semantic Versioning.2 Der Release-Zyklus von Angular ist kontinuierlich geplant: Im Rhythmus von durchschnittlich sechs Monaten erscheint eine neue Major-Version x. Die Minor-Versionen y werden monatlich herausgegeben, nachdem eine Major-Version erschienen ist.
Abb. 1 Zeitleiste der Entwicklung von Angular
Umgang mit Aktualisierungen
Das Release einer neuen Major-Version von Angular bedeutet keineswegs, dass alle Ideen verworfen werden und Ihre Software nach einem Update nicht mehr funktioniert. Auch wenn Sie eine neuere Angular-Version verwenden, behalten die in diesem Buch beschriebenen Konzepte ihre Gültigkeit. Die Grundideen von Angular sind seit Version 2 konsistent und auf Beständigkeit über einen langen Zeitraum ausgelegt. Alle Updates zwischen den Major-Versionen waren in der Vergangenheit problemlos möglich, ohne dass Breaking Changes die gesamte Anwendung unbenutzbar machen. Gibt es doch gravierende Änderungen, so werden stets ausführliche Informationen und Tools zur Migration angeboten.
Alle Beispiele aus diesem Buch sowie zusätzliche Links und Hinweise können Sie über eine zentrale Seite erreichen:
Die Begleitwebsite zum Buch
Unter anderem veröffentlichen wir dort zu jeder Major-Version einen Artikel mit den wichtigsten Neuerungen und den nötigen Änderungen am Beispielprojekt. Wir empfehlen Ihnen aus diesem Grund, unbedingt einen Blick auf die Begleitwebsite des Buchs zu werfen, bevor Sie beginnen, sich mit den Inhalten des Buchs zu beschäftigen.
An wen richtet sich das Buch?
Webentwickler mit JavaScript-Erfahrung
Dieses Buch richtet sich an Webentwickler, die einige Grundkenntnisse mitbringen. Wir setzen allgemeine Kenntnisse in JavaScript voraus. Wenn Sie bereits ein erstes JavaScript-Projekt umgesetzt haben und Ihnen Frameworks wie jQuery vertraut sind, werden Sie an diesem Buch sehr viel Freude haben. Mit Angular erwartet Sie das modulare Entwickeln von Single-Page-Applikationen in Kombination mit Unit- und UI-Testing.
TypeScript-Einsteiger und Erfahrene
Für die Entwicklung mit Angular nutzen wir die populäre Programmiersprache TypeScript. Doch keine Angst: TypeScript ist lediglich eine Erweiterung von JavaScript, und die neuen