evaluation of frameworks for desktop-like web applications in pure javascript

47
Einführung Methode und Ausführung Schluss Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript Thomas Billicsich Institut für Informationssysteme und Computer Medien TU Graz 15. November 2012

Upload: social-learning

Post on 14-Jun-2015

1.651 views

Category:

Education


0 download

DESCRIPTION

Master Thesis at Graz University of Technology

TRANSCRIPT

Page 1: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

Evaluation of Frameworks for Desktop-LikeWeb Applications in Pure JavaScript

Thomas Billicsich

Institut für Informationssysteme und Computer MedienTU Graz

15. November 2012

Page 2: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

Gliederung

1 EinführungWeb ApplicationsFrameworks

2 Methode und AusführungEntscheidungsprozessKandidatenModell und Evaluierung

3 SchlussErgebnisValidierung und Learnings

Page 3: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

Gliederung

1 EinführungWeb ApplicationsFrameworks

2 Methode und AusführungEntscheidungsprozessKandidatenModell und Evaluierung

3 SchlussErgebnisValidierung und Learnings

Page 4: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

Was ist eine Web Application?

Eigenschaftenläuft im BrowserAufruf durch URL-Eingabe

Beispiele• Suchmaschinen• Maps• E-Mail

Page 5: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

Vorteile und Nachteile

Vorteile

• plattformunabhängig• kein Setup/Installation• keine Virengefahr

• Datensicherheit• Zusammarbeit, Mobilität

Nachteile• Internetverbindung• ressourcenintensiv• kein lokales Dateisystem• keine lokale Peripherie

Page 6: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

Desktop-LikeGMX

Page 7: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

Desktop-LikeiCloud

Page 8: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

Desktop-LikeGMX vs. iCloud

Page 9: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

Gliederung

1 EinführungWeb ApplicationsFrameworks

2 Methode und AusführungEntscheidungsprozessKandidatenModell und Evaluierung

3 SchlussErgebnisValidierung und Learnings

Page 10: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

FrameworksDefinition

ein Framework ist...• eine Menge von zusammengehörigen Klassen.• eine Lösungsskizze für eine bestimmte Problemklasse.• ein wiederverwendbares Design einer Menge von Klassen

und deren Interaktion.• ein Programmgerüst, das an die eigenen Bedürfnisse

angepasst werden muss.• ein vorgegebenes Design, das Entscheidungen

vorwegnimmt.• keine Library

Page 11: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

FrameworksEigenschaften

Eigenschaften

• Modular• Erweiterbar• Zentral steuernd• Abstrakt

• Ausgereift• Komplex• Outsourcing

Page 12: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

Gliederung

1 EinführungWeb ApplicationsFrameworks

2 Methode und AusführungEntscheidungsprozessKandidatenModell und Evaluierung

3 SchlussErgebnisValidierung und Learnings

Page 13: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

EntscheidungsprozessStufen

I EvaluationsmodellII Marktanalyse

III RequirementsIV ScreeningV Evaluierung

VI Validierung

Page 14: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

Gliederung

1 EinführungWeb ApplicationsFrameworks

2 Methode und AusführungEntscheidungsprozessKandidatenModell und Evaluierung

3 SchlussErgebnisValidierung und Learnings

Page 15: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

KandidatenGesamtübersicht I

• ActiveJS

• Agility.js• AmplifyJS

• AngularJS

• AppJS

• Backbone.js• batman.js• Bindows• Cappuccino• Choco

• CorMVC

• DHTMLX

• Dojo Toolkit• Eyeballs• Ember.js• Ext JS

• Glow• Google Closure Library• JavaScriptMVC

• jQuery

Page 16: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

KandidatenGesamtübersicht II

• Knockback.js• Knockout.js• Luna (Asana)• MooTools• MochiKit• Mojito (Yahoo!)• Prototype• qooxdoo• Rialto• Rico• Sammy.js

• script.aculo.us• SmartClient• Spine.js• SproutCore• Spry• UIZE

• underscore.js• Wakanda• YUI!

• zepto.js

Page 17: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

Kandidatenausgewählte

Bindows

Cappuccino

DHTMLX

Dojo Toolkit

Ext JS

qooxoo

SmartClient

SproutCore

Page 18: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

KandidatenBindows

Page 19: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

KandidatenCappuccino

Page 20: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

KandidatenDHTMLX

Page 21: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

KandidatenDojo Toolkit

Page 22: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

KandidatenExt JS

Page 23: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

Kandidatenqooxdoo

Page 24: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

KandidatenSmartClient

Page 25: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

KandidatenSproutCore

Page 26: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

Gliederung

1 EinführungWeb ApplicationsFrameworks

2 Methode und AusführungEntscheidungsprozessKandidatenModell und Evaluierung

3 SchlussErgebnisValidierung und Learnings

Page 27: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

EvaluierungsmodellKategorien

Getting Started

Development Setting

User Interface

Features

Community

Dokumentation

Page 28: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

Getting Started

• Anfänger• schnelle Entscheidung über potentielle Eignung• zentrale Stelle: Projektwebseite

Kriterien• informative Einführung auf der Projektseite• Beste Practices für den Start• Qualität des Getting Started Tutorials

Page 29: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

Getting Startedqooxdoo

Page 30: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

Getting Startedqooxdoo

Page 31: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

Getting Startedqooxdoo

Page 32: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

Getting Startedqooxdoo

Page 33: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

Development Setting

direkte Unterstützung der Entwickler für Coden, Testen,Veröffentlichung und Wartung

Kriterien• Tools zur Codegenerierung• Testunterstützung• Unterstützung für Deployment• Client-Server Protokolle• Plattformunabhängig (Server und Entwicklung)*• Lizenz

Page 34: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

Development SettingSproutCore

Page 35: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

Development SettingSproutCore

Page 36: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

User Interface

sichtbare Elemente des Frameworks

Kriterien

• Label• Button• Eingabefeld• Baumansichten

• Slider• Kalender• Diagramme• etc.

Page 37: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

Features

technische Ausstattung des Frameworks

Kriterien

• MVC Architektur*• Layoutmanager*• DOM-Abstraktion*• Data Store• Bindings• Drag & Drop• Sprachanpassung• Theming

• Inputvalidierung• Kontextmenü• Tool Tips• Keyboardshortcuts• Offline Mode• Server Push• Browserverlauf

Page 38: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

Community oder Hersteller

wie stark ist die Instanz die hinter dem Framework steht; wieviele Entwickler beschäftigen sich aktiv damit; wie ausgereift istdas Projekt

Kriterien

• in aktiver Entwicklung*• Reifegrad*• Verfügbarkeit von

Büchern• Berichterstattung in

Magazinen (on-/offline)

• Popularität im Internet• Aktivität im Forum• Aktivität auf Twitter• Aktivität auf eigenem

Blog• Real-Life Beispiele

Page 39: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

Dokumentation

Bezieht alle vom Frameworkhersteller zur Verfügung gestelltenInformationen ein. Gute Kommunikation vonZusammenhängen.

Kriterien• Themenabdeckung von Guides• Qualität von Guides• Qualität der API Referenz und des Viewers• Codebeispiele• Informationen über Änderungen in neuen Versionen• Aufbau und Gesamtstruktur• Kenntlichmachung des Aktualisierungsdatums

Page 40: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

DokumentationExt JS

Page 41: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

DokumentationExt JS

Page 42: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

DokumentationExt JS

Page 43: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

Gliederung

1 EinführungWeb ApplicationsFrameworks

2 Methode und AusführungEntscheidungsprozessKandidatenModell und Evaluierung

3 SchlussErgebnisValidierung und Learnings

Page 44: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

Ergebnis

EmpfohlenExt JS, qooxdoo, SproutCore

MittelmäßigDojo Toolkit, SmartClient, Cappuccino

Nicht empfohlenBindows, DHTMLX

Page 45: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

Gliederung

1 EinführungWeb ApplicationsFrameworks

2 Methode und AusführungEntscheidungsprozessKandidatenModell und Evaluierung

3 SchlussErgebnisValidierung und Learnings

Page 46: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

Validierung

einfaches Programm mit qooxdoo

Page 47: Evaluation of Frameworks for Desktop-Like Web Applications in Pure JavaScript

Einführung Methode und Ausführung Schluss

Learnings

zu viele Frameworkszusätzliche Filterstufe

Beurteilung von Features teils zu freipräzisere Definition der benötigten Funktionalität

theoretische Beurteilung von Funktionalitätdurcharbeiten von Tutorials