1. !Design Entscheidungen! Alt
1.1. Aufteilung Client/Server
1.1.1. Wieivel soll auf den Client?
1.1.1.1. Processing Power
1.1.1.2. Sicherheit
1.1.1.3. Codeduplizierung
1.1.2. Loose Kopplung
1.1.2.1. Wartbarkeit
1.1.2.2. Testbarkeit
1.1.2.3. Updatefähigkeit
1.1.2.4. Beispiel MVP Pattern
1.1.2.5. Layering
1.1.3. Wiederverwendung
1.1.3.1. Gemeinsame Client/Server Logik
1.1.3.1.1. Generieren?
1.1.3.1.2. Gleiche Sprache => kopieren
1.1.4. Caching
1.1.4.1. Je mehr auf dem Client los ist, desto wichtiger
1.1.5. Validation
1.1.5.1. Auf dem Client ist es fix
1.1.5.2. Aber immer auf dem Server Validieren
1.1.6. Session Management
1.1.6.1. State!
1.1.6.1.1. Brauchen wir State
1.1.6.1.2. Wo wird er gehalten
1.1.6.1.3. Spannend by Load Balancing
1.1.6.1.4. Avoid Server affinity
1.1.7. Kommunikation
1.1.7.1. REST
1.1.7.2. Async
1.1.7.3. Postback
1.1.8. Pattern
1.2. UI
1.2.1. Look and Feel
1.2.2. Navigation
1.2.3. Seitenaufbau + Rendering
1.2.4. Pattern
1.3. Querschnitt/Betrieb
1.3.1. Sicherheit
1.3.1.1. Authentifizierung/Authorisierung
1.3.1.2. Verschlüsselung
1.3.1.3. Hier ist wenig spannendes drin
1.3.2. Logging
1.3.2.1. Client und Server Logs kombinieren
1.3.2.2. Keine sicherheitskritischen Informationen
1.3.3. Exception Management
1.3.3.1. Only catch exceptions you can handle
1.3.3.2. Verständliche Fehlermeldungen
1.3.3.3. Synchrone/Asynchrone Exceptions
1.3.3.4. Keine Sicherheitskritischen Infos
1.3.3.5. Propagation
1.3.4. Deployment
1.3.5. Infrastruktur?
1.3.5.1. Plugin verfügbar?
1.3.6. Performance
1.3.6.1. Roundtrips minimieren
1.3.7. Pattern
2. !Die 3 wichtigsten Punkte! Alt
2.1. Minimiere Roundtrips
2.2. Gemeinsamen Code identifizieren
2.3. Aussagekräftige Informationen im Fehlerfall
2.4. ... Schichtentrennung/Loose Kopplung ...
3. Unterschied RIAs und Web Anwendungen
3.1. moderne Webapp ist fast RIA
3.1.1. Möglichkeiten sind nahezu gleich, anstatt Plugin JS-APIs und Libs
3.2. Unter RIA meint das Buch hauptsächlich Silverlight Anwendung
3.2.1. Für uns intéressant Flash/AIR
4. Schichtenübersicht
4.1. Beschreibung und Empfehlungen für die Schichten
4.2. Mehrere Schritte
4.2.1. Einfache Webapp (Formulare)
4.2.2. Moderne Webapp mit AJAX
4.2.3. "Google Maps"/"Trello" -like App
4.2.4. Besonderheit von Flash?
5. Tipps
5.1. Nutzer wollen schnelle Anwendung
5.1.1. Caching
5.1.2. Viel Logik auf dem Client
5.1.2.1. Roundtrips minimieren
5.1.3. Kommunikation
5.2. Entwicklung will wartbaren Code
5.2.1. Schichtentrennung
5.2.1.1. Testbarkeit!
5.2.1.2. Loose Kopllung
5.2.2. Wiederverwendung
5.2.2.1. Validierung
5.2.2.2. Logik
5.3. Betrieb möchte die Anwendung skalierbar gestalten
5.3.1. Deployment Issues
5.3.2. Schichtentrennung
5.3.2.1. Loose Kopplung
5.4. Betrieb, Entwickler und Nutzer wollen sinnvolle Meldungen
5.4.1. Logging auf Client und Server
5.4.2. Exception Management
5.5. Nutzer wollen übersichtliche UI
5.5.1. Look And Feel
5.5.2. Navigation
5.5.3. Seitenaufbau und Rendering
5.6. Betrieb hat Anforderung bzgl Infrastruktur
5.6.1. Sicherheit
5.6.2. Kommunikation
5.6.2.1. Firewall