23. Multi-Page
Mehrere getrennte Seiten. JavaScript eher als
Unterstützung und nicht zwingend für die
Applikation erforderlich. Einfacher barrierefrei zu
gestalten. Oft für öffentliche Seiten und
Shops.
25. Single-Page
Nur eine/wenige Seiten. JavaScript zwingend
für die Applikation erforderlich. Navigation
und Abbildung der Business Logik über
JavaScript. Wird für Applikationen eingesetzt.
27. Global Scope
Namenskonflikte im globalen Namensraum.
Wiederverwendbarkeit wird durch
Unberechenbarkeit eingeschränkt. Ungewollte
Seiteneffekte durch gleiche Variablennamen.
Eingeschränkte Nachvollziehbarkeit des
Quellcodes.
34. Modularisierung
Unterteilung der Applikation in den Kern und einzelne
Komponenten oder Module.
Der Kern stellt die Infrastruktur und die
Integrationsplattform für die Module dar.
Die Module beinhalten die einzelnen Features
der Applikation.
38. MVC
Model View Controller
!
Seit 1979 in Smalltalk.
Models halten die Daten und die
Businesslogik.
Views visualisieren die Daten.
Controller verbinden die Models und die
Views miteinander.
41. MVP
Model View Presenter
!
Seit den frühen 1990ern.
Weiterentwicklung von MVC.
Konzentration auf die Präsentationslogik.
Presenter enthält die Anzeigelogik.
44. MVVM
Model View ViewModel
!
Seit 2005 von Microsoft.
Weiterentwicklung von MVC und MVP.
Model enthält Daten und Businesslogik.
Die View übernimmt die Anzeige.
ViewModel sorgt für die automatische
Datenbindung zwischen Model und View.
46. Unterschiede
• Abhängigkeiten zwischen den Schichten
• MVC: View sitzt auf der Struktur parallel
zum Controller
• MVP: Controller wird durch Presenter
ersetzt (Events von Models und Views)
• MVVM: Es wird nur ein Teil des Models
der View bekannt gegeben
48. Frameworks
Lösung für häufig auftretende
Problemstellungen. Hilfestellungen auch für
zukünftige Probleme, von denen man noch
nicht einmal weiß, dass man sie haben wird.
Bieten häufig Strukturierungselemente.
Basieren häufig auf jQuery.
49.
50. Backbone.js
Einfaches Framework mit vorgegebenen
Model- und View-Strukturen.
Hash- und PushState-Navigation über einen
Router.
Sammlung von Models in Collections.!
Models sind REST-fähig.
51.
52. Ember.js
Controller halten den Zustand der Applikation.
Models als Datencontainer, die über XHRs
mit dem Server kommunizieren können.
Handlebars als Template Engine.
Komponenten zur Erweiterung von HTML.
Models und Templates werden automatisch
synchronisiert. Router zur Navigation
innerhalb der Applikation.
53.
54. AngularJS
Von Google seit 2009. Deskriptive
Programmierung. HTML als Templatesprache
wird durch Direktiven erweitert. Dependency
Injektion Mechanismus zur Auflösung von
Abhängigkeiten. Models als einfache
Datencontainer und Services für
wiederverwendbare Logik. Two-Way Data
Bindung über das ViewModel zwischen Model
und View. Unterstützt testbaren Code.
58. RequireJS
Module Loader des Dojo Frameworks.
AMD Standard.
Im Wesentlichen zwei Funktionen: require &
define.
shim-Konfiguration für Bibliotheken ohne AMD.
r.js Optimizer zum Konkatenieren und
Minifizieren.
60. CommonJS Modules
Serverseitige Standardisierung. Wird vor allem in
Node.js eingesetzt, aber auch clientseitige
Implementierung.
Definition über module.exports.
Einbindung über require.
Standardmäßig kein Optimizier.
62. ES6 Module
Der neue JavaScript-Sprachstandard sieht ein
eigenes Modulsystem vor. Ein separater
Loader übernimmt das Laden der Module.
Aktuell noch keine Browserunterstützung.
Definition über module Keyword.
Zusätzlich gibt es noch import und export.