22. HTML-Code muss selbst
entwickelt werden
CSS-Code muss selbst
entwickelt werden
Responsive Design,
Statefulness, Client/Server-
Kommunikation etc. muss
selbst entwickelt werden
etc.
Micro
Dienstag, 8. Oktober 13
24. Daher oft Kombination mit
Drittanbieter-Komponenten:
- jqGrid
- jsTree
- Twitter Bootstrap etc.
- Make or Buy?
Konsequenzen:
- Komplexität?
- Mischung von Konzepten?
- Drittanbieter-Qualität?
etc.
Micro
Dienstag, 8. Oktober 13
26. HTML-Code wird zur
Laufzeit (im Browser) vom
Framework generiert
CSS-Code wird mitgeliefert
(„Themes“), lässt sich
aber auch anpassen
Viele Komponenten sind
bereits vorhanden und
bilden ein konsistentes
Gesamtwerk
Universell
Dienstag, 8. Oktober 13
38. Ext JSJava
import foo.Bar;
class HelloWorld {
...
// foo.Bar ist in
// Attributen und Methoden
// automatisch bekannt
}
Ext.define("HelloWorld", {
requires: ["foo.Bar"],
...
// foo.Bar ist in
// Methoden der Klasse
// automatisch bekannt
})
Dienstag, 8. Oktober 13
39. Ext JSJava
ClassLoader-Techniken zum
Nachladen von ByteCode
aus .class-Files oder JAR‘s.
<zu viel Code für diese
Slide>
Ext.require("foo.Bar",
function onClassLoaded() {
new foo.Bar();
});
Dienstag, 8. Oktober 13
42. Ext.dom.Element
Abstraktion des DOM-
Eventing (35 Events)
166 Methoden für die
Arbeit mit DOM-Elementen
(Cross-Browser-Shimed)*
AJAX-Helper Methods
Animations-Framework:
Ext.fx.*
CSS3-Selektor-basiertes
Querying
Cross-Browser Drag &
Drop-API mittels Ext.dd.
Mehr als das gesamte jQuery-Feature-Set!
Dienstag, 8. Oktober 13
47. Observer-Pattern!
Jede Komponente „wirft“ zahlreiche Events (25+)
An jedes Ereignis dass eintritt, kann eigener
Programmcode gekoppelt werden
Eigener Programmcode kann das Standard-
Verhalten des Frameworks beeinflussen
Dienstag, 8. Oktober 13
58. Große Mengen CSS?
CSS3 wird aus der modularen SASS-Metasprache
generiert (Open Soure; http://sass-lang.org)
Ältere Browser (Internet Explorer) beherrschen
CSS3-Features nicht. Ext JS rendert CSS3-Effekte
automatisch als Image-Sprites.
Neue Themes (Custom CI) kann ohne Änderung
großer CSS-Codemengen durch „Vererbung“ und
Änderung von SCSS-Variablen erreicht werden.
Dienstag, 8. Oktober 13
60. Sencha CMD
cmd> sencha compile
Erkennt die Abhängigkeiten im Projekt
(Autoloader) und erstellt optimierte
Gesamt-Builds.
app-debug.js und app.js („compiled“)
Dienstag, 8. Oktober 13
62. Bryntum Siesta
bryntum.com/products/siesta
Ext JS-oriented Unit Testing
Spezielle API für Ext JS-Oberflächen-Tests
Automatisierbar (Continues Integration)
Oberfläche zum Interaktiven Ausführen der Tests
Tests müssen programmiert werden
kommerziell
Dienstag, 8. Oktober 13
63. Selenium IDE
docs.seleniumhq.org/projects/ide/
„Record & Replay“-Verfahren
Keine Implementierung von Tests notwending
Für einfache „Fire Tests“ geeignet (kann nicht alle
Komponenten-Ereignisse von Ext JS aufzeichnen)
Bei komplexen Ext JS-Oberflächen mit dynamisch
generierten Anteilen fehleranfällig.
Open Source
Dienstag, 8. Oktober 13
64. Royal Test Suite
In der Beta-Phase
„Record & Replay“-Verfahren
Keine Implementierung von Tests notwending
Durch intelligente Algorithmen können komplexeste
Web-Anwendungen getestet werden. (Ext JS, SAP
Web UI‘s, etc.)
Automatisierbar
kommerziell
Dienstag, 8. Oktober 13
69. Sencha Touch
Sencha Touch basiert auf Ext JS
Oberflächen-Komponenten angepasst
Zugriff auf Native API‘s
Via PhoneGap / Cordova auch „Quasi-Nativ“ /
App Store fähig
Für alle Mobile-Plattformen mit WebKit-basiertem
Web-Browser
Dienstag, 8. Oktober 13