Modern Business Applications Day 1 auf der BASTA! 2013 in Mainz

AngularJS – Keine Angst vor HTML und JavaScript
Kommentare

Frameworks gibt es wie Sand am Meer: SproutCore, Backbone.js,  Ember.js, Kockout und wie sie alle heißen. AngularJS  ist auch so eines. Aber: Es grenzt sich als eines der erfolgreichsten Frameworks ab,  wenn es um die Entwicklung großer, wartbarer HTML5-/JavaScript-Applikationen geht.

Ursprünglich von Google-Entwicklern ins Leben gerufen, um HTML mit Dynamik zu versehen,  erlaubt es die Modularisierung von JavaScript-Logik und die Trennung statischer Oberflächenbeschreibung von dynamischer Kontrolllogik nach dem MVC-Paradigma. Im Rahmen des Modern Business Applications Day 1 auf der BASTA! 2013 zeigte Ingo Rammer, Mitbegründer und Consultant von thinktecture, wie wartbare, testbare und lesbare Anwendungen mittels AngularJS aussehen können.

An sich sei es ja ein ketzerisches Thema: „HTML5-Anwendungen im Silverlight-Stil“. Aber der Blick über den Tellerrand hin zu Single Page Applications (SPAs), also große clientseitige Anwendungen, lohnt sich.

Alle MVC/SPA-Frameworks bieten drei Themen an: Model Binding, clientseitiges Routing und UI-Templating – dahinter stecken aber je nach Framework ganz unterschiedliche Designideen.

„Sie als Entwickler haben die Qual der Wahl“, so Rammer.  Auf http://todomvc.com kann man 66 Versionen der gleichen App auf unterschiedlichen Frameworks ansehen. Generell  sei bei der Framework-Vielfalt Achtung geboten: „Viele sind für Einzelfälle konzipiert worden, auf die möchte man nicht mit seiner Business-Applikation setzen.“

Warum also AngularJS?

Knockout  sei technisch sehr nah an Silverlight angelegt, aber das Kernteam besteht nur aus zwei Leuten ­– „Das wäre mir für Großprojekte zu riskant.“ Ember.js sei für diesen Use Case Rammers zweite Wahl.

AngularJS macht das Rennen, da es sich sehr gut für HTML-zentrische SPAs eignet und ein Komponentenkonzept hat, was es für große Applikationen sehr tauglich macht. Es ist einbettbar, DI-basierend und testbar.

Model Binding: Wie kommen die Daten ans UI?

Zur Kommunikation zwischen Model, Controller und View verwendet AngularJS Scopes: Namensräume, abgebildet als einfache JavaScript-Objekte. Jede AngularJS-Anwendung hat genau ein Root-Scope-Objekt, von dem weitere Scope-Objekte abgeleitet werden. So verfügt jeder Controller über einen eigenen Scope, über den wiederum die Kommunikation mit der zugeordneten View erfolgt.

Da AngularJS alle Scope-Objekte überwacht, werden Veränderungen eines Datenmodells sofort registriert und weitere Aktionen können ausgeführt werden.

Datenmodelle sind im AngularJS-Kontext immer Eigenschaften eines Scope-Objekts und nur in der View sichtbar, die dem Controller zugeordnet ist.

Eine Sache sei unbedingt zu beachten: „DOM-Manipulation werden nie aus dem Controller gemacht, das gehört in die Directive“.

AngularJS kann Directives

Das kann sonst kein Framework: Views werden in AngularJS in einfachem HTML definiert und durch Directives mit JavaScript-Logik versehen. Dazu bringt AngularJS eine Reihe vordefinierter Directives mit, die als Attribut, Klassen- oder Element-Name deklariert werden.

Der Code kann mit den Directives sehr verschachtelt werden. Davon sollten sich Unerfahrene aber nicht abschrecken lassen, rät Rammer.

Routing

AngularJS bietet ein Routing-System zur Navigation über die Bedienelemente des Browsers oder für das Setzen von Lesezeichen. Die Unterstützung des Browser-Verlaufs funktioniert so, dass AngularJS an den URL einen Hash anhängt. Der wird durch ein „#“ gekennzeichnet.

Keine Angst vor HTML

Die Directives in AngularJS sorgen für eine sauberen Trennung von statischer UI-Beschreibung und dynamischer Anwendungslogik. Der Code zur DOM-Manipulation entfällt, was die Testbarkeit von Controller– und Service-Komponenten erhöht. Komponenten mittels AngularJS-Modulen zu modularisieren, erleichtert die Wartbarkeit von JavaScript-Anwendungen un macht sie besser strukturierbar. Das Routing-Konzept löst das SPA-Problem des Browser-Verlaufs.

Auch .NET-Entwickler können also durchaus von HTML und JavaScript profitieren und finden in AngularJS vieles aus der Silverlight-Entwicklung wieder.

Die Modern Business Applications Days auf der BASTA! 2013 in Mainz gehen heute in die zweite Runde.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -