Be dynamic! RichClient-Funktionalitäten mit dem Google Web Toolkit

Ähnliche Dokumente
GWT Google Web Toolkit. by PRODYNA AG

RAP vs. GWT vs. GAE/J + jquery. Web Technologien im Verlgeich

DCCS Lotusphere Nachlese 2012 Was sind XPages? Mobile Features für XPages

Agenda. Ingo Ebel (ie007) Benjamin Müller (bm032) Was ist AJAX? Sicherheit Vor- und Nachteile. AJAX Frameworks. Wozu benötigt Client/Server

Ajax & GWT. Kurs: User Interfaces und ihre Evaluierung Dozent: Manfred Thaller WS 2012/2013 Referent: Rafael Kalina

Diplomarbeit: GOMMA: Eine Plattform zur flexiblen Verwaltung und Analyse von Ontologie Mappings in der Bio-/Medizininformatik

Web 2.0 Architekturen und Frameworks

Rich Internet Applications, Flex & Mate. (Ja, das ist Grafische Benutzeroberflächen!) Jakob Külzer jakob.kuelzer@gmail.

Erfahrungen und Erkenntnisse. Klaus Richarz, HBT GmbH

XPages Good to know. Benjamin Stein & Pierre Hein Stuttgart 7. Mai 2015

Wir bringen Ihre Notes/Domino Anwendungen sicher ins Web , Bilster Berg Drive Resort Michael Steinhoff, agentbase AG.

Plattformunabhängige App-Entwicklung - Eine für alle?

Moderne Web- Anwendungen mit

Cross Platform Development mit SharePoint

Studygroup AJAX 1 / 28. Studygroup AJAX. Christian Kroiß / 4A Solutions GmbH

Entwicklung und Integration mobiler Anwendungen. <Speaker> Oracle Deutschland B.V. & Co. KG

Moderne Web-Anwendungen mit Vaadin

OWASP Stammtisch München Sep 2014 XSS und andere Sicherheitslücken aus der Perspektive des Programmcodes

Rechnernetze Projekt SS 2015

Oliver Zeigermann, Stefan Toth embarc GmbH. Flux Facebooks Beitrag zur UI- Architektur der Zukunft

Überblick. Allgemeines, Geschichtliches. Architektur. Oberfläche. Plugins und deren Einsatz

Design Patterns MVC. Marcus Köhler Markus Merath Axel Reusch. Design Patterns MVC Marcus Köhler Markus Merath Axel Reusch Seite 1

Kategorisierung von Web-Frameworks im Java-Umfeld

Einführung in Maven und GWT

Beispiel aus der Praxis

Frontend-Entwicklung mit JavaScript

Seminar aus Informatik. Google Web Toolkit Supervisor: O.Univ.-Prof. Dipl.-Ing. Dr. Wolfgang PREE

Multimedia im Netz. Wintersemester 2011/12. Übung 10. Betreuer: Verantwortlicher Professor: Sebastian Löhmann. Prof. Dr.

Browserbasiertes, kollaboratives Whiteboard

Einführung... 1 Anwendungsszenarien multimedialer Client-Server Systeme... 1 Aufbau des Buches... 2 Die Entwicklung des multimedialen Internets...

JavaScript & Ajax Debugging. Marcel Bsufka

Openlaszlo. Rich Internet Application Platform

UI-Architekturen mit JSF

Einsatz und Grenzen von Java Server Faces 2.0

Sicherheit in Rich Internet Applications

Microsoft.NET und SunONE

Cross-Platform Apps mit HTML5/JS/CSS/PhoneGap

Business Applika-onen schnell entwickeln JVx Framework - Live!

Legacy Web-Apps mit AngularJS pimpen

Moderne Web-Anwendungen mit Vaadin

Eignet sich Eclipse RCP als Enterprise Plattform? 2. Mai 2006 Lars Stucki & Edwin Steiner

Einführung in die Cross-Plattform Entwicklung Web Services mit dem Intel XDK

Der GWT oder JSF Wahl-O-Mat

Do 6.4. Seam - Web 2.0 Anwendungen mit der JEE. Torsten Fink. January 21-25, 2008, Munich, Germany International Congress Centre Munich

Oracle ADF Mobile. Jürgen Menge Oracle Deutschland B.V. & Co. KG. Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Automatisches Exploratives Testen von Webanwendungen

Inhalt. Portalgesteuerte Simulation Ergebniskonferenz Bonn , Uhr. Folie PT-Grid-Zielsetzung 3-4. PT-Grid-Infrastruktur 5

Empfehlungen für erfolgreiche ADF-Projekte. Volker Linz Oracle Deutschland B.V. & Co. KG

Wiederholung: Beginn

Webinar: Einführung in ICEfaces

Vaadin ein Erfahrungsbericht

Java und XML 2. Java und XML

Mobility mit IBM Worklight Erste Schritte zu einer mobilen App. Benjamin Stein, Consultant Stuttgart,

Entwicklungswerkzeuge

Netzwerk Technologien in LabVIEW

Schlussbewertung FB VI SOFTWAREPROJEKT II WS 09/10 TEAM. Alexander Kalden Dominik Eckelmann Marcel Pierry Julian Heise Besha Taher

Web Service Entwicklung mit Java. Sven Lindow

Agenda. Einleitung. Einbinden von JSF AJAX Beispiele Komponenten Entwicklung PrimeFaces Praktikum. Was ist JSF Aufbau und Techniken HTML vs.

Verteilte Systeme Hochschule Mannheim

Web Dynpro / FloorPlanManager / NWBC

HERZLICH WILLKOMMEN SHAREPOINT 2013 DEEP DIVE - APPS IOZ AG 1

Leichtgewichtige Web 2.0-Architektur für komplexe Business-Anwendungen Nicolas Moser PRODYNA AG

Android Kurs Online Kurs Entwicklung auf Android-Handys

SHS Swiss Innovation Tour ITB Responsive Webdesign Unschlagbar schnelle Websites Web Analytics Tricks

Grafische Interaktionssysteme/ dynamische Visualisierung des endlichen Automaten

Evolution der Web-Entwicklung nach AJAX

Softwareschnittstellen

Ajax zum Projekteinsatz!

IBIS Desktop. IBIS.ch. Ein Blick hinter einen smarten Rich Client. Nissim J. Buchs, RTC. Entstehungsgeschichte der Client Architektur.

AJAX DRUPAL 7 AJAX FRAMEWORK. Was ist das Ajax Framework? Ein typischer Ablauf eines Ajax Requests Die Bestandteile des Ajax Frameworks.

Thomas Freitag achelos GmbH SmartCard-Workshop achelos GmbH

Seminar SS 2000 Enterprise Application Intergration

JavaScript: Von einfachen Scripten zu komplexen Anwendungen. MMT Dezember 2011

Destructive AJAX. Stefan Proksch Christoph Kirchmayr

Client/Server-Systeme

Mobile Application Development

Der SCHWEIZER WELTATLAS interaktiv als Web Applikation

! Jahrgang ! Studium der Mathematik und Informatik an der TU Braunschweig. ! Entwicklung klassischer Client-Server-Systeme zur Terminplanung

Notes / Domino New Features & Was bringt die Eclipse Plattfrom von Lotus Notes für mein Unternehmen. Dipl.-Ing.

Spring Dynamic Modules for OSGi Service Platforms

Abschlussarbeiten für StudentInnen

Server-centric vs. Client-centric Web Applications. BITKOM Software Summit 2014, Frankfurt

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2010

Java Applet Alternativen

Erste Erfahrungen mit NSASJ anhand der OmnivoBase Portierung. September 2013

Web 2.0 Software-Architekturen

Rich Internet Applications Technologien. Leif Hartmann INF-M3 Anwendungen 2 - Wintersemester 2007/ Januar 2008

Komponenten & Hypermedia Seminar Prof. Dr. Frank Thiesing Struts Java-Framework für Web-Applikationen. Referenten: Fabian Bartelt Jens de Witt

WEBAPPLIKATIONEN MIT PHP. Wo gibt es Hilfe? Wie fang ich an?

Graphen in Apex von Thomas Hernando.

Jakarta Turbine Ein Open Source Framework fÿr Webanwendungen. KNF Kongre 2001 Henning P. Schmiedehausen

Remote Communications

App Entwicklung mit Hilfe von Phonegap. Web Advanced II - SS 2012 Jennifer Beckmann

UI-Architekturen mit JSF

Open Source IDE - eclipse ETIS SS04

Um asynchrone Aufrufe zwischen Browser und Web Anwendung zu ermöglichen, die Ajax Hilfsmittel DWR ist gebraucht.

Über mich. Daniel Bälz. Softwareentwickler (inovex GmbH) github.com/dbaelz

WEB 2.0 für Entwickler

New Features Oracle Forms 11g Nichts Neu für Forms?

Transkript:

Be dynamic! RichClient-Funktionalitäten mit dem Google Web Toolkit DOAG Konferenz 16. 18.11.2010, Nürnberg Julian Gärtner info@ordix.de www.ordix.de

Heutiges Ziel Einordnen von GWT in die Welt der Rich Internet Applications Aufbau und Funktionsweise Konkrete Anwendungsszenarien Aber: Kein Quellkode Be dynamic! RichClient-Funktionalitäten mit dem Google Web Toolkit 2 / 32

Agenda Web-Applikationen Das Google Web Toolkit Asynchrone Kommunikation Model View Controller Pattern Aufgabenstellung im konkreten Projekt Fazit Be dynamic! RichClient-Funktionalitäten mit dem Google Web Toolkit 3 / 32

Web-Applikationen Anforderungen Web-Applikationen versuchen native Desktop-Anwendungen zu ersetzen und stoßen mit ihrem klassischen Response/Request-Verhalten an technische Grenzen Steigende Nachfrage nach RichClient-Funktionalitäten Mischung aus Desktop- und Web-Anwendungen Verbindung der Flexibilität von Web-Anwendungen mit dem Komfort von Desktop-Applikationen Anwendungsbereiche und Plattformen Aktuell: Internetapplikationen in Desktop- und Mobil-Browsern Zukünftig Betrieb auf: Heimkinokomponenten, Spielekonsolen und Set-Top-Boxen Mobilen Endgeräten Be dynamic! RichClient-Funktionalitäten mit dem Google Web Toolkit 4 / 32

Web-Applikationen Richness Technische Lösungen zur Umsetzung von RichClient-Funktionen im Browser Applets/Plugins => Installierte Browser-Plugins JavaScript als Alternative, um ohne Installation von Plugins RIA-Funktionalitäten anzubieten Technologien für RichClient-Funktionalitäten (im Browser) JSF + a4j JSF+ Be dynamic! RichClient-Funktionalitäten mit dem Google Web Toolkit 5 / 32

Web-Applikationen RIA: Einordnung Pluginbasierend HTMLbasierend JSF JSF+ a4j JSF+ HTML 5 Klassische Web-Entwicklung Rich Internet Application Be dynamic! RichClient-Funktionalitäten mit dem Google Web Toolkit 6 / 32

Agenda Web-Applikationen Das Google Web Toolkit Asynchrone Kommunikation Model View Controller Pattern Aufgabenstellung im konkreten Projekt Fazit Be dynamic! RichClient-Funktionalitäten mit dem Google Web Toolkit 7 / 32

Das Google Web Toolkit Klassische Web-Entwicklung Be dynamic! RichClient-Funktionalitäten mit dem Google Web Toolkit 8 / 32

Das Google Web Toolkit Vielseitiger Werkzeugkoffer Be dynamic! RichClient-Funktionalitäten mit dem Google Web Toolkit 9 / 32

Das Google Web Toolkit Grundlagen Ermöglicht die Erstellung von moderne, hochdynamische Webseiten mit asynchroner Kommunikation (AJAX) Der Entwickler benutzt dabei fast ausschließlich Java und benötigt nur ein Minimum an Know-how im Bereich HTML und JavaScript Jede GWT-Applikation besteht lediglich aus einer einzelnen HTML-Seite JavaScript-Code verarbeitet Ergebnisse aus Benutzerinteraktion und Serverkommunikation durch Manipulation des Document Object Models (DOM) im Browser Be dynamic! RichClient-Funktionalitäten mit dem Google Web Toolkit 10 / 32

Das Google Web Toolkit Von Java zu Java Script Für die Ausführung einer Rich Internet Applikation in einem Browser OHNE Plugins wird zwangsläufig JavaScript benötigt Entwicklung größerer Programme mit JavaScript-Anteil komplex inkompatible JS-Implementierungen unterschiedliche Datenmodelle und Darstellungen in verschiedenen Browsern Komplexe Entwicklung und hoher Aufwand Be dynamic! RichClient-Funktionalitäten mit dem Google Web Toolkit 11 / 32

Das Google Web Toolkit Von Java zu Java Script JAVA Quellcode- Programmierung JavaScript Browserspezifisches JavaScript Lauffähig auf allen Browsern Be dynamic! RichClient-Funktionalitäten mit dem Google Web Toolkit 12 / 32

Das Google Web Toolkit Von Java zu Java Script GWT-Compiler übernimmt die Übersetzung von Java zu JavaScript / HTML und generiert den für jeden Browser spezialisierten und optimierten Code Aufruf der GWT-Seite: Universaler JavaScript-Code analysiert und identifiziert Browser, um browserspezifischen Code nachzuladen Generierung jeweils einer optimierten JS-Datei für jeden unterstützen Browser JS-Code standardmäßig maschinenoptimiert => PRETTY-Modus erzeugt lesbaren JS-Code Exponentiell steigende Anzahl von Kompilierungen bei Internationalisierung und Multi-Browser-Unterstützung GWT-Eclipse-Plugin: Breakpoints im Java-Code erlauben Frontend-JS- Debugging Be dynamic! RichClient-Funktionalitäten mit dem Google Web Toolkit 13 / 32

Das Google Web Toolkit UI >> Panels VerticalPanel PopupPanel TabPanel FlowPanel HorizontalPanel DisclosurePanel Be dynamic! RichClient-Funktionalitäten mit dem Google Web Toolkit 14 / 32

Das Google Web Toolkit UI >> Widgets Be dynamic! RichClient-Funktionalitäten mit dem Google Web Toolkit 15 / 32

Das Google Web Toolkit UIObject-Klassenhierarchie TabBar TabPanel UIObject SuggestBox Composite FileUpload Hidden Widget Hyperlink Image Label FocusWidget MenuBar TextBoxBase SimplePanel Panel ComplexPanel DisclosurePanel ListBox ButtonBase HTMLTable???? My Widget Be dynamic! RichClient-Funktionalitäten mit dem Google Web Toolkit 16 / 32

Agenda Web-Applikationen Das Google Web Toolkit Asynchrone Kommunikation Model View Controller Pattern Aufgabenstellung im konkreten Projekt Fazit Be dynamic! RichClient-Funktionalitäten mit dem Google Web Toolkit 17 / 32

Asynchrone Kommunikation Client/Server Die ausschließlich asynchrone Kommunikation mit dem Server ist ein zentraler Aspekt bei der Entwicklung von GWT-Applikationen Notwendigen Klassen zur Kommunikation von Client und Server werden von der GWT-API geliefert GWT-Client fordert Daten vom Server mittels eines Remote Procedure Calls (RPC) an Serverseitige Funktionalität als Servlet implementiert Erleichterte Integration in anderer Frameworks (z.b. Seam) Daten müssen serialisierbar sein, neben primitiven Datentypen können auch andere Strukturen (darunter Arrays) übermittelt werden Be dynamic! RichClient-Funktionalitäten mit dem Google Web Toolkit 18 / 32

Asynchrone Kommunikation Client Clientseitig ist ein Callback-Mechanismus notwendig, der die angeforderten Daten beim Eintreffen weiterverarbeitet Das Observer-Pattern spielt in diesem Zusammenhang in jeder GWT-Anwendung eine zentrale Rolle Auch die internen clientseitigen Ereignisse wie Mausklicks, Tastatureingaben oder Timersignale werden asynchron geliefert und müssen über entsprechende Handler verarbeitet werden Ohne einen strukturierten Plan zur Behandlung der Kommunikationsabläufe droht schnell ein nicht beherrschbares Chaos Achtung! JavaScript => Single Threaded Be dynamic! RichClient-Funktionalitäten mit dem Google Web Toolkit 19 / 32

Agenda Web-Applikationen Das Google Web Toolkit Asynchrone Kommunikation Model View Controller Pattern Aufgabenstellung im konkreten Projekt Fazit Be dynamic! RichClient-Funktionalitäten mit dem Google Web Toolkit 20 / 32

Model View Controller Pattern Grundlagen Ziel ist die Trennung von Haltung und Darstellung der Daten Abhängigkeiten sollen reduziert, ein hoher Wiederverwendungsgrad erreicht und eine gute Erweiterbarkeit sichergestellt werden Modell: Repräsentiert den Zustand der Daten View: Ist für die Darstellung zuständig Controller: Bindeglied zwischen Modell und View, benachrichtigt die View sobald die Daten an der Oberfläche aktualisiert werden müssen Be dynamic! RichClient-Funktionalitäten mit dem Google Web Toolkit 21 / 32