Neuigkeiten aus dem AngularJS Universum

Neuigkeiten aus dem AngularJS Universum

Markus Günther 27. November 2014 Expert Topics

0 Kommentare // Lesezeit: 5 min.

Wie wir schon hin und wieder in den Sozialen Medien angemerkt haben, verwenden wir bei einigen unserer Projekte das JavaScript Framework AngularJS.

AngularJS ist ein sehr mächtiges Framework und bietet uns die Möglichkeiten auch im JavaScript Bereich qualitativ hochwertige, gut wartbare und vor allem testbare Applikationen zu entwickeln. Das Framework ist mit Features wie Two-Way Data-Binding, Templates, MVC (Model View Controller), Dependency Injection und Direktiven genau nach unserem Geschmack.

Es gibt wahrlich viele Javascript Frameworks und darunter auch sehr mächtige wie Ember.js oder Backbone.js. Doch das Angular Umfeld mit seiner großen Open-Source Community und die Unterstützung durch Google Mitarbeiter hat uns überzeugt auf AngularJS zu setzen. Bis jetzt bereuen wir es nicht und die aktuellen Geschehnisse zeigen auch, dass die Angular-Story noch lange nicht zu Ende ist. Ganz im Gegenteil Angular scheint erst richtig an Fahrt aufzunehmen.

Im April diesen Jahres gab das Angular-Team bekannt nun an AngularJS Version 2 zu arbeiten. Die neue Major Version soll natürlich die beste Angular Version überhaupt werden. In der Zeit von April bis Oktober haben die Entwickler sehr viel Zeit in Prototyping, Brainstormings und Forschung investiert. Auf der Konferenz ng-europe in Paris wurden nun Ende Oktober die ersten Ergebnisse und die Marschrichtung bekannt gegeben. Es hat sich, betreffend der Webtechnologien, sehr viel in den letzten 4 Jahren getan und in der Version 2.0 soll Angular nun unter Verwendung vieler neuer Technologien schneller und einfacher werden.

Igor Minar fasste die Unterschiede zwischen AngularJS 1.X und 2.0 mit folgender Aussage sehr gut zusammen:

„AngularJS 1.X is built for current browsers while AngularJS 2.0 is being built for the browsers of the future.“

Man wendet sich somit von alten Browsern ab und setzt auch die aktuellen und zukünftigen Browser und Technologien. So wird AngularJS 2.0 EcmaScript 6 (Harmony) sowie auch EcmaScript 5 unterstützen. Wenn die eigene Anwendung in ES5 geschrieben wird Angular auch in ES5 transpiled.

Features der neuen Version:

  • ES 6 Unterstützung
  • WebComponents werden Out of the Box unterstützt
  • Weitere Modularisierung und ein „mobile first Design“
  • Einführung von AtScript als eine Erweiterung von TypeScript und ES6 

Einige Konzepte von Angular 1.x werden nicht mit in Angular 2.0 übernommen. Die Konzepte an sich sind natürlich nicht verschwunden. Das Kind bekommt jedoch häufig einen anderen Namen.

  • Controller
  • Das Definitionsobjekt für Direktiven
  • $scope
  • angular.module
  • jqLite

Das sieht erst einmal danach aus als ob alles anders wird. Vor allem da sich an manchen stellen auch die Syntax leicht ändert. Doch Miško Hevery beantwortet einige Diskussionen mit der simplen Aussage:
„Es sind alles nur Objekte und es ist doch egal wie ein Objekt heißt. Es spielt keine Rolle ob es Factory, Service oder Controller heißt - es kommt darauf an was es tut.“

In diesem Sinne werden die Controller und Direktiven nicht „abgeschafft“. Man könnte sagen das diese Konzepte nur vereinigt werden und somit die Nutzung einfacher und besser wiederverwendbar wird.

Ebenso verhält es sich mit $scope. Das Konzept der Scopes wird nicht abgeschafft, sondern weiterentwickelt. Wer hat nicht schon krampfhaft einen Fehler gesucht, da etwas in einem Isolated Scope schief gegangen ist? Ich begrüße somit die Vereinfachung des Scope-Konzeptes und bin gespannt auf diese neue Version.

In meinem ersten AngularJS Backend-Module hatte ich mir das Ziel gesetzt ohne jQuery auszukommen und was soll ich sagen, es hat auch geklappt. Ich musste nur für eine Sache auf „jqLite“ in einer Direktive zurückgreifen. Für das Angular Projekt hat sich jqLite allerdings zu einem Performance-Flaschenhals entwickelt und daher kann ich die Entscheidung des Teams voll und ganz verstehen.

Das Templating wird mit AngularJS 2.0 also etwas anders. Doch da die Basis Konzepte erhalten bleiben und nach Aussagen des Teams vieles einfacher werden soll, kann man gespannt sein.

Falls man nicht auf jqLite verzichten mag oder kann, steht es einem ja auch frei, einfach jQuery in den Direktiven zu nutzen.

Zusammenfassend geht die Weiterentwicklung von Angular in eine sehr gute Richtung und ich kann es gar nicht erwarten es zu testen. Das Team gibt keinen genauen Termin für einen Release bekannt. Sie haben das Ziel eine grandiose neue Version zu entwickeln und lassen sie nicht von Migrationspfaden oder Deadlines stören. Das Team informiert regelmässig im Blog über den aktuellen Stand und die Mutigen und Wissbegierigen können den Prototypen schließlich auch testen. :)

Neuigkeiten zu AngularJS 1.x

Aktuell verwenden wir Angular in der Version 1.3 und da die Fertigstellung von Angular 2.0 noch in den Sternen steht, fragt man sich: „Was kann ich noch vom aktuellen Branch erwarten?“

Einiges, denn die Entwicklung von Angular 1.x steht nicht still. Das Angular Team möchte die Versionen 1.x solange Supporten und entwickeln, wie die Community sie verwendet. Also wenn man ein neues Projekt startet, muss man nicht fürchten mit Angular auf das falsche Pferd zu setzen. Angular 1.x wird es noch eine ganze Weile geben.

Die Community hat sich für Angular 1.4 das Ziel gesetzt, wiederum einiges im 1.x Branch zu verbessern. Brian Ford arbeitet derzeit eng mit dem Team von Angular 2.0 zusammen um den neuen Router for Angular 1.4 zu Backporten. Die Community profitiert also zum Teil schon von Angular 2.0. Ein weiteres Feature von Angular 1.4 sollen kleine Core-Module sein.

Neben neuen Feature sollen natürlich bestehende Module verbessert werden:

  • Das I18N Module ist teilweise schwerfällig und bedarf noch ein wenig Liebe. Daher
  • soll es eine einfachere und bessere Version geben.
  • Formulare sollen verbessert werden.
  • Im Angular Core gibt es teilweise ungenutzt Code. Dieser soll entfernt werden.
  • Pawel Kozlowski möchte $http verbessern
    • Anpassung der request parameter Serialisierung
    • XMLHttpRequest factory soll teil der öffentlichen API werden
    • es soll ein Progress-Event hinzugefügt werden

Ich persönlich finde den letzten Punkt der $http Anpassungen sehr interessant. Mit Hilfe dieses Events wäre das Darstellen einer Ladeanzeige ein Kinderspiel.

Wie auch schon bei Angular 2, freue ich mich auf diesen Release bereits sehr.

One more thing

Neben der Entwicklung von AngularJS 2.0, arbeitet das Team auch an einem neuen Modul, welches einem die Möglichkeit gibt seine App im Material Design von Google erstrahlen zu lassen.

Das Modul wird denke ich eine sehr gute Alternative zum aktuellen Boostrap.UI Modul sein. Schaut es euch doch einfach einmal auf https://material.angularjs.org/latest/#/ an. Zur Zeit befindet sich das Modul noch in der Entwicklung, doch die meisten Direktiven sehen schon sehr gut aus.


0 Kommentare

Dateien hier ablegen
Dateien hochladen
Keine Kommentare.