AngularJS & TypeScript
Roman Roelofsen
Twitter & GitHub: romanroe
Thin Web (klassische) Clients
- Jede UI Aktion wird vom Server behandelt
- Server liefert Daten und Darstellung
- UIs werden i.d.R. mit jQuery & Co. "gepimped"
- Typisch für:
- Servlets-basierte Web Frameworks
- PHP
- ...
Vorteile
- Code ist zentralisiert
- Code ist nicht öffentlich
- Es werden nur die Daten übertragen, die für eine Ansicht notwendig sind
- Vereinfacht Sicherheitsanforderungen
- Vereinfacht Datenbankoperationen
Nachteile
- Komplett überholtes Bedienkonzept
- Schlechte UX == unzufriedene Benutzer
- "Komplexere" UIs sind aufwendig
Rich Web Clients
- Die gesamte UI Logik läuft im Browser
- Optional: Geschäftslogik im Client
- Server liefert nur Daten (REST o.ä.), keine Darstellung
- Frameworks
- AngularJS
- Ember.js
- Facebook React
Vorteile
- Moderne User Experience
- Komplexe Bedienkonzepte werden möglich
- Server kann zustandlos werden
- Strenge, erzwungene Trennung der Architektur:
- Server liefert Daten
- Client stellt Daten dar
Nachteile
- Breiteres Wissen beim Programmierer notwendig
- Geschäftslogik im Client eventuell ungewünscht
- Erhöhte Angreifbarkeit
- Erfordert mehr Resourcen im Client (RAM & CPU)
AngularJS
- Web Framework für Rich Client Apps
- Entwickelt von Google
- Riesiges Ökosystem
- "HTML enhanced for web apps!"
- Deklaratives Layout + JavaScript Code
-
Was Angular nicht ist:
- Imperative API zur UI Erstellung (à la Swing)
- HTML/XML Abstraktion zur UI Generierung (à la Flex)
AngularJS und TypeScript kombinieren
TypeScript type definitions
Roman Roelofsen
@romanroe