In meinen aktuellen Projekt wird das UI als SinglePage WebApp implementiert. Da es sich um eine komplette Neuentwicklung handelt wird mit Blick auf die Zukunft Angular als UI-Framework verwendet. (Ich verwende hier den Begriff Angular für die Versionen 2 – 4+, da diese kompatibel miteinander sind.)

Ich will hier meine Erfahrungen mit Angular  weitergeben. Für diejenigen die bereits mit AngularJS(1) arbeiten, habe ich leider eine schlechte Nachricht: Angular  verwendet größtenteils neue Paradigmen und Konzepte wie komponentenbasierte Entwicklung, ein eventbasiertes Programmiermodell auf Basis von RxJS und als Entwicklungssprache Typescript. Dedizierte Controller und Scopes wurden über Bord geworfen. Aber keine Angst, so schlimm ist es nicht 😉

Getreu dem Motto

Der beste Code ist der den man nicht schreiben muss

verfolgt Angular einen komponentenbasierten Ansatz. Komponenten in Angular sind mit den Direktiven aus AngularJS zu vergleichen und sind in sich gekapselte Bestandteile des UI. Einmal geschriebene Komponenten lassen sich sehr einfach in verschiedene Bereiche der Anwendung wiederverwenden. Angular verfolgt dabei den Ansatz des kommenden W3C Standards der Web Components und ist zu diesen kompatibel. Damit könnte man bei Bedarf ohne grosse Schmerzen Angular durch ein anderes Komponentenframework wie z.B. polymer.js ersetzen.

Ich werde hier die grundlegenden Konzepte anhand eines kleinen Beispiels vorstellen, und dann in späteren Beiträgen etwas mehr in die Tiefe gehen.

Wie bei einem AngularJS-Projekt sind einige vorbereitende Schritte nötig um die entsprechenden Entwicklungstools zu installieren. Klar, auch hier braucht man wieder das obligatorische nodejs und npm. Wer es noch nicht nicht installiert hat sollte dies nun nachholen.

Hier wird beschrieben wie man node auf verschiedenen Plattformen installiert: https://nodejs.org/en/download/

Ein Angular-Projekt kann auf verschiedenen Wegen aufgesetzt werden: Manuell, unter Verwendung des Angular-Seed-Projekts oder per Angular-Cli

Manuelle Installation

Bei der manuellen Installation sind Folgende Schritte  auszuführen:

  • Projektverzeichnis anlegen
    • mkdir angular2-start
  • tsconfig.json für den Typescriopt-Compiler anlegen
  • typings.json für fehlende Typescript Definition Files
  • package.json für Paket-Abhängigkeiten erstellen

Die Inhalte der Dateien können von der Angular2-Quickstart Seite kopiert werden.  https://angular.io/docs/ts/latest/quickstart.html

Wenn die Dateien erstellt sind können die Packages mit

npm install

installiert werden.

Angular2-Seed

Um sich diese manuellen Schritte zu sparen kann man auch das angular2-seed Projekt verwenden, welches ein komplettes Projektgerüst, inklusive Testumgebung für Karma und protractor, enthält.

Dazu das angular2-seed Projekt von Github clonen

git clone --depth 1 https://github.com/mgechev/angular2-seed.git 
\ angular2-start
 
cd angular2-start
 
# Paketabhängigkeiten installieren
npm install
 
# lokalen http-server mit live-reload starten und Seite im Browser öffnen
npm start

Angular-cli

angular-cli ist ein Kommandozeilentool mit dem man schnell ein Angular-Projekt aufsetzen kann, sowie per Scaffolding Komponenten, Routen, Klassen, Interfaces und Services erzeugen kann. Das Vorgehen ist ähnlich wie bei Rails, Grails oder anderen Scaffolding-Tools. Zu angular-cli werde ich noch einen eigenen Blog-Eintrag veröffentlichen. Weitere Informationen findet man auf der Projektseite https://cli.angular.io

Für das Projektsetup reichen erstmal folgende Befehle:

# angular-cli installieren
npm install -g angular-cli
 
# Projekt anlegen
ng new PROJECT_NAME
 
cd PROJECT_NAME
 
# HTTP-Server starten
ng serve

Der Server  sollte dann unter http://localhost:4200/ zu erreichen sein.

 

Welche der Methoden zum Projektsetup man wählt ist eher Geschmacksache. angular-cli bietet den Vorteil das per Scaffolding schnell Blueprints von Komponenten, Routen usw. erzeugt werden können.

Das wars erstmal zur Installation. Im nächsten Beitrag  gebe ich eine kleine Einführung in Typescript.