Moderne Web-Anwendungen mit Vaadin



Ähnliche Dokumente
Moderne Web-Anwendungen mit Vaadin

Moderne Web- Anwendungen mit

Festpreisprojekte in Time und in Budget

Installation von NetBeans inkl. Glassfish Anwendungs-Server

MOBILE ON POWER MACHEN SIE IHRE ANWENDUNGEN MOBIL?!

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

Lokale Installation von DotNetNuke 4 ohne IIS

Build-Pipeline mit Jenkins

ArcGIS Online Werkstatt II Wege zur eignen Webanwendung

jbpm5 in Java EE 6 Marek Iwaszkiewicz Pascal Schaerf akquinet AG

- XPages 2.0? René Winkelmeyer

Web2Lead. Konfiguration

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

OERA OpenEdge Reference Architecture. Mike Fechner PUG Infotag 19. Mai 05 Frankfurt

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

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

Effizenzsteigerung bei Villeroy & Boch durch den Einsatz von Magento und Zend

Vaadin TouchKit. W3L AG

Schüler-E-Tutorial für mobile Endgeräte. Ein Folgeprojekt des Netzwerks Informationskompetenz Berlin/Brandenburg mit der HdM

MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP)

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, Java Forum Stuttgart 2007

Installation und Inbetriebnahme von Microsoft Visual C Express

QTS. Qualitätssicherungs-Teileverfolgungs- System online. Benutzung der grafischen Oberfläche via Internetbrowser

Internet Explorer Version 6

Java Script für die Nutzung unseres Online-Bestellsystems

Tipp: Proxy Ausschalten ohne Software Tools

SSI WHITE PAPER Design einer mobilen App in wenigen Stunden

MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP)

Von Windows-Forms zu WPF mit Expression Blend? Thomas Müller conplement AG Nürnberg

Outlook Web App 2010 Kurzanleitung

Abschlussarbeiten für StudentInnen

Graphen in Apex von Thomas Hernando.

4D Server v12 64-bit Version BETA VERSION

Informationen zum neuen Studmail häufige Fragen

1 Vorraussetzungen. 2 Installiere Eclipse. FS 2015 Herausgabe: Dr. A. L. Schüpbach, D. Sidler, Z. István Departement Informatik, ETH Zurich

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

BFV Widget Kurzdokumentation

> Mozilla Firefox 3. Browsereinstellungen optimieren. Übersicht. Stand Juli Seite. Inhalt. 1. Cache und Cookies löschen

Aktivierung von Makros in den Erfassungshilfen

Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool

Parallels Plesk Panel

EPO Consulting GmbH. Ihr Partner für HTML5 und SAP UI5 Apps. Stand 2015/04. EPO Consulting GmbH - 1 -

modern - sharp - elegant

Die Bürgermeister App. Mein Bürgermeister hört mich per App.

«Integration in WebSite» HTML-/Javascript-Code-Beispiele

Download unter:

Softwareentwicklungsprozess im Praktikum. 23. April 2015

Installationsanleitung dateiagent Pro

Mobiles SAP für Entscheider. Permanente Verfügbarkeit der aktuellen Unternehmenskennzahlen durch den mobilen Zugriff auf SAP ERP.

Präsentation zur Vorstellung meiner Bachelor-Arbeit beim BSE- Seminar. Vortrag von Patrick Bitterling

Version 4.0. service.monitor. Systemanforderungen

Der schnelle Weg zu Ihrer eigenen App

Fernzugang Uniklinikum über VMware View

Cross-Platform Mobile Development mit Xamarin Mark

BFV Widgets Kurzdokumentation

Schritt 1: Starten Sie Hidemyass, wählen Sie "IP: Port Proxies"

> Mozilla Firefox 3.5

Inhalt. 1 Übersicht. 2 Anwendungsbeispiele. 3 Einsatzgebiete. 4 Systemanforderungen. 5 Lizenzierung. 6 Installation. 7 Key Features.

Revit Modelle in der Cloud: Autodesk 360 Mobile

XQueue Product Sheet - Seiten Editor

Popup Blocker/Sicherheitseinstellungen

TechCommToGo (DE) conbody section title TechCommToGo - so einfach wie Kaffee machen. / title / section. section p image / p

GEONET Anleitung für Web-Autoren

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

Lernprogramm "Veröffentlichen von WMS- Services"

Anleitung für den Zugriff auf Mitgliederdateien der AG-KiM

Schenkel Personal Partner

zur Sage New Classic 2015

GuiXT und mysap ERP. Regensdorf, April 2004 Dr.Gerhard Rodé, Synactive GmbH

Wichtige Information zur Verwendung von CS-TING Version 9 für Microsoft Word 2000 (und höher)

eridea AG Installation Eclipse V 1.4

SSH Authentifizierung über Public Key

Datenbanken Microsoft Access 2010

MOC Entwicklung von ASP.NET MVC 4 Webapplikationen

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

APEX und Phonegap? Das kann APEX doch mit HTML5! APEX connect Düsseldorf, 10. Juni 2015 Daniel Horwedel. APEX und Phonegap?

Herzlich willkommen zur Kurzvorlesung: Die häufigsten Fehlerquellen bei der Erstellung von Webapplikationen. Udo H. Kalinna. Nürnberg, den

LEHRSTUHL FÜR DATENBANKEN

Client-Systemanforderungen für Brainloop Secure Dataroom ab Version 8.30

Einsatzbearbeitung im Sanitätsdienst

Liferay 6.2. Open Source IT-Dienstleister. Ein modernes Open Source Portal System. forwerts solutions GmbH, Gabriele Maas

Applets I. Grundlagen der g Applet-Programmierung

Finden Sie Ihr IT-Wunschpraktikum oder eine engagieren Sie sich bei uns mit einer längerfristigen Werkstudentätigkeit!

Stellvertretenden Genehmiger verwalten. Tipps & Tricks

Designänderungen mit CSS und jquery

Programmierung für Mathematik (HS13)

E-Business Architekturen

Video-Tutorial: Einrichten einer Facebook Landing Page in der Facebook Chronik (Timeline)

Automatisiertes Testen von Java EE-Applikationen mit Arquillian

Informationen Zur Ticketregistrierung

Anlegen eines virtuellen http Server unter Exchange 2003 mittels HOSTNAME

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

LDAP Konfiguration nach einem Update auf Version 6.3 Version 1.2 Stand: 23. Januar 2012 Copyright MATESO GmbH

Anleitung zur Citrix Anmeldung

Transkript:

Moderne Web-Anwendungen mit Vaadin Sebastian.Rothbucher@akquinet.de Juni 2013

19.06.2013 2

Web-Anwendungen mit Vaadin??? <{ 3

Agenda Was sind tägliche Herausforderungen? Warum ist Vaadin bei deren Bewältigung hilfreich? Wie wird in Vaadin eine Anwendung entwickelt? Womit anfangen? 4

Agenda Was sind tägliche Herausforderungen? Warum ist Vaadin bei deren Bewältigung hilfreich? Wie wird in Vaadin eine Anwendung entwickelt? Womit anfangen? 5

Was sind tägliche Herausforderungen? Effizienz Roundtrip API / Libraries Debugging Testbarkeit 6

Was sind tägliche Herausforderungen? Varianz Feedback Standards Vorbereitung 7

Was sind tägliche Herausforderungen? Akzeptanz Nutzen Einfachheit Einstellung tats. Nutzung 8

Agenda Was sind tägliche Herausforderungen? Warum ist Vaadin bei deren Bewältigung hilfreich? Wie wird in Vaadin eine Anwendung entwickelt? Womit anfangen? 9

Was ist Vaadin? Rich Internet Applications= RIA (im Browser) Auf Desktop-Niveau für die Anwender Mittels Komponenten(wie SWT / Swing) für die Entwickler In pure Java entwickeln Strongly Typed Web Development 10

Wege zu Vaadin Fat Client(Ausgangspunkt) 12 8 6 4 stark 10 ausgeprägt wenig 2 ausgeprägt 0 Fat Client maximaler Umfang für einen kleinen Kreis Ausprägungen verschiedener Kriterien; 1=minimal, 10=maximal 11

Wege zu Vaadin CGI 12 8 6 4 stark 10 ausgeprägt wenig 2 ausgeprägt 0 Fat Client CGI sehr rudimentäre, aber eben weithin einsetzbare Architektur Ausprägungen verschiedener Kriterien; 1=minimal, 10=maximal 12

Wege zu Vaadin JSF & Co. 12 8 6 4 stark 10 ausgeprägt wenig 2 ausgeprägt 0 Fat Client CGI JSF & Co. in der Effizienz verbesserte, nach wie vor weithin einsetzbare Architektur Ausprägungen verschiedener Kriterien; 1=minimal, 10=maximal 13

Wege zu Vaadin Vaadin 12 8 6 4 stark 10 ausgeprägt wenig 2 ausgeprägt 0 Fat Client CGI JSF & Co. Vaadin Evolution zu Perfektion: sehr großer Umfang für eine sehr breite Zielgruppe Ausprägungen verschiedener Kriterien; 1=minimal, 10=maximal 14

Geschichte von Vaadin 2000 Start intern 2003 AJAX Rendering 2007 Open Src / GWT 2009 Vaadin 6 2012 Beta Vaadin 7 2013 Vaadin 7 Stabilität + Aktualität 15

Architektur von Vaadin: Shared State/Terminal Adapter via Framework 16

UI-Bibliothek = Umfangreiche Vorarbeit Dito: verschiedene Themes für die Render-Engine 17

Mobile Development Vaadin TouchKit Nach wie vor RIA iphone Look&Feel Navigationsmodell ios, Karten, Wischen vor/zurück Pure Java 18

Warumist Vaadinhilfreich? Effizienz Effizienz Roundtrip API / Libraries Debugging Testbarkeit Server-Plugin Autodeploy Remote-Debug JRebel UI-Element-Sammlung styled/ tested Selenium JMeter u.v.m. 19

Warum ist Vaadin hilfreich? Varianz / Risiko Große UI-Element-Sammlung ohne Kinderkrankheiten Schnelle erste Version qualifiziertes Feedback Varianz Feedback Standards Vorbereitung Standard JEE-Technologie gehärtet incl. Tooling 20

Warum ist Vaadin hilfreich? Akzeptanz erwartungskonforme UI Style und Usability bis TouchKit- iphone Akzeptanz Nutzen Einfachheit Einstellung tats. Nutzung Zeit für Business-Logik schnelles Feedback Breite Basis für QA z.b. UI-Testing 21

Agenda Was sind tägliche Herausforderungen? Warum ist Vaadin bei deren Bewältigung hilfreich? Wie wird in Vaadin eine Anwendung entwickelt? Womit anfangen? 22

Basis der Vaadin-Architektur Darstellung im Browser Kommunikation / State UI für spezifische Use Cases Theme / Design Data Binding Client State im Hintergrund abgewickelt Erstellen von Widgets (analog Swing / SWT) auf dem Server Verwenden von Web / JEE Container Fokus auf spezifische Logik (türkis) Spezifische Business-Logik und Datenhaltung JVM 23

Sprung in den Code: init() @Inject Notificator notificator; @Override public void init() { this.i18nlocaleconfig.setlocale(getlocale()); Window windowmain = new Window("Officewerker"); main() von vaadin(6) Fenster analog Swing this.environmentconfig.setwindow(windowmain); this.notificatorconfig.setwindow(windowmain); } try { windowmain.setcontent((componentcontainer) this.mainpresenter.getview().getcomponent()); windowmain.setname("officewerker"); } catch (IllegalStateException e) { ((WebApplicationContext) getcontext()).gethttpsession().invalidate(); close(); } setmainwindow(windowmain); settheme("officewerker"); MVP ist eine Option Eigenes Theme 24

Sprung in den Code: LoginComponent public void init() { setsizefull(); Toolbar toolbar = new Toolbar( this.i18n.get("login.title"), null); this.textfieldmandator = new TextField( this.i18n.get("login.label.mandator")); this.textfieldmandator.setwidth("100%"); this.textfieldmandator.settabindex(1); this.textfieldmandator.focus(); this.textfieldmandator.setdebugid("loginmandant"); this.textfieldmandator.addstylename("styleid-loginmandant"); Internationalisierung TextField analog Swing Vorbereitung funkt. Test this.textfieldlogin = new TextField( this.i18n.get("login.label.login")); this.textfieldlogin.setwidth("100%"); this.textfieldlogin.settabindex(2); this.textfieldlogin.setdebugid("loginname"); this.textfieldlogin.addstylename("styleid-loginname"); HorizontalLayout layoutloginmandator = new HorizontalLayout(); layoutloginmandator.setwidth("100%"); layoutloginmandator.setspacing(true); layoutloginmandator.addcomponent(this.textfieldmandator); layoutloginmandator.addcomponent(this.textfieldlogin); Panels analog Swing Copyright 2013 akquinetag 25

Sprung in den Code: init() + LoginComponent

Sprung in den Code: init() + LoginComponent HTML

Sprung in den Code: init() + LoginComponent HTML

Vaadin Entwicklungsumgebung Core Quality IDE (z.b. Eclipse) Visual Designer Server/Debug CI (z.b. Jenkins) Develop/ Manage Build (z.b. Maven) Build Dev Server (z.b. Glassfish) Functional Test (z.b. Selenium) PerformanceTest (z.b. JMeter) Test/Run Repository (z.b. SVN) 29

Vaadin Entwicklungsumgebung Performance Test disable-xsrf-protection (in vaadin) Record via JMeter HTTP Proxy + Cookie Manager (oder kopiere aus F12 = Developer Tools von Chrome, Firefox & Co.) Die Aufzeichnung MUSS nachgearbeitet werden Einbau von Assertions, zufällige Auswahl des Testdatensatzes; hilfreich dabei: das UIDL-Protokoll ist lesbar Debug-IDs sind mehr als wertvoll (regexp-extraktion ist nervig) (alternativ Style-ID) Bottleneck ist der Server 30

Data Binding SQL-Container Analog Datenbindung VB6ff. Direkter Zugriff auf die Datenbank Erstellung der Oberfläche (analog Runtime Scaffold in e.g. Grails) -Tabelle mit Zeilen / Spalten - Form mit einer Zeile + Inhalten (Editing) - einige Beeinflussungen trotz Automatismus Trotzdem: Use with extreme caution! - direkter DB-Zugriff ist nie sauber - wann von Zusatz auf strukturell richtig schwenken? - keine schlechte Technik schwierige Struktur Fazit: für dauerhaft simple, gut kommunizierte Situationen 19.06.2013 31

Details zur Entwicklung JavaScript Bridge Aufruf von beliebigem JavaScript Two-Way vaadin.forcesync() getwindow().executejavascript( ) = JS 2 vaadin = vaadin 2 JS Einschließlich Integration via HTML5 (e.g. HTML postmessage( )) Beispiel: Integration mit Bonita einen kleinen TEIL einer großen Anwendung mit vaadin umsetzen Rechts: außen Bonita, innen vaadin: (Klick auf Choose in vaadinführt den Prozess in Bonita fort) 32

Details zur Entwicklung TouchKit Spezielles Window setmainwindow(new TouchKitWindow()); i.e. gleiche Metaper Navigation nach Links und rechts Style (mobile) Quelle: Book of vaadin 33

Agenda Was sind tägliche Herausforderungen? Warum ist Vaadin bei deren Bewältigung hilfreich? Wie wird in Vaadin eine Anwendung entwickelt? Womit anfangen? 34

Wofange ich an? Eine WARNUNGvorab: Vaadinentbindet nicht von einem klaren Case guter Projektmethodik permanentem Feedback sauberer Architektur (aber unterstützt dies) Copyright 2013 akquinet AG 35

Wofange ich an? Tutorials e.g. JavaMagazin (auch gedruckt) Book of Vaadin Comm unity (vaadin.com) (e.g. akquinet) Solution Partner 36

Fazit und Wrap-Up Streng typisierte Web-Entwicklung Pure and Full Java Evolution Richtung Perfektion bzgl. Effizienz / Varianz / Akzeptanz Legen Sie los! FRAGEN? Copyright 2013 akquinetag 37

Backup 19.06.2013 38

Wie können wir Sie unterstützen? 39

Ihre Ansprechpartner Olaf Lange Geschäftsführer akquinet engineering GmbH 040-88173-2412 0179-121 42 06 olaf.lange@akquinet.de Sebastian Rothbucher Analyst / Developer / Berater akquinet engineering GmbH 0157-738 657 78 sebastian.rothbucher@akquinet.de 19.06.2013 40