1
- XPages 2.0?
René Winkelmeyer
2
•  Skype / Twitter / LinkedIn / Slideshare
Muenzpraeger
•  Web
https://blog.winkelmeyer.com
•  Mail
mail@winkelmeyer.com
OpenNTF
•  File Navigator
•  Generic NSF View Widget for IBM Connections
About me
René Winkelmeyer
Head of Development
3
Agenda
§  Stateless, stateful – server-side oder client-side?
§  XPages vs. Vaadin
§  Vaadin Grundlagen
§  Vaadin Development – per Code und per GUI-Designer
§  Deployment auf Domino und Liberty
4
Agenda
§  Stateless, stateful – server-side oder client-side?
§  XPages vs. Vaadin
§  Vaadin Grundlagen
§  Vaadin Development – per Code und per GUI-Designer
§  Deployment auf Domino und Liberty
5
Agenda
§  Stateless, stateful – server-side oder client-side?
§  XPages vs. Vaadin
§  Vaadin Grundlagen
§  Vaadin Development – per Code und per GUI-Designer
§  Deployment auf Domino und Liberty
6
Vaadin – die Entscheidung
§  Beschäftigung mit Vaadin seit 2013
§  Selektion als Basis-Platform für zukünftige Unternehmens-Web-
Anwendungen (anstatt XPages)
https://vaadin.com/certificate/-/view/48b183a61884e0bced560ed20b580295
7
XPages vs. Vaadin – Historie und Gegenwart
XPages Vaadin
•  Zukauf der IBM in 2001 (vormals
XForms)
•  War mal „Workplace“
•  Hat seinen Ursprung in JSF
•  Weiterentwicklung erfolgt durch
IBM (Core, closed source) und teils
durch Community (ExtLib)
•  In 2001 neu entwickelt als
„Millstone Library“ (IT Mill)
•  Nutzung von GWT seit 2007 (IT Mill
Toolkit 4)
•  „Fühlt“ sich an wie SWT/Swing/
AWT
•  Weiterentwicklung erfolgt durch
Vaadin Ltd. (open source, Apache
licensed)
8
XPages vs. Vaadin – Betriebssysteme
XPages Vaadin
•  Alle von Domino unterstützte
Betriebssysteme
•  Alle Betriebssysteme mit Java 6
und höher
9
XPages vs. Vaadin – Unterstützte App-Server
XPages Vaadin
•  IBM Domino
•  XPages Buildpack (IBM Bluemix)
•  Apache Tomcat 5+
•  IBM WebSphere (Full/Liberty) 7+
•  JBoss 4+
•  Liferay Portal 5.2
•  Oracle WebLogic 10.3+
•  WildFly 8+
•  Java Servlet 2.4 / JSR-286
•  ...
10
XPages vs. Vaadin – Release / Abhängigkeiten
XPages Vaadin
•  Abhängig von Domino-Updates
(Major, Minor, FP, IF)
•  Ein Update des App-Servers bringt
auch immer ein Update der XPages
mit sich
•  Ein Update wirkt sich auf alle
XPages-Anwendungen aus
•  Neues Release (Minor) alle 4-5
Wochen
•  Updates des App-Servers sind
unabhängig von Vaadin – und vice
versa
•  Vaadin-Updates können selektiv
pro Applikation durchgeführt
werden
11
XPages vs. Vaadin – IDE
XPages Vaadin
•  IBM Domino Designer 8.5.2+, nur
Windows
•  Eclipse
•  IntelliJ
•  Netbeans
•  ...
12
XPages vs. Vaadin – Programmiersprachen
XPages Vaadin
•  SSJS
•  JavaScript
•  Java
•  Java
•  JavaScript
•  Scala
•  Jython
•  ...
13
IBM – Vaadin Challenge
http://vaadin.com/challenge
14
Agenda
§  Stateless, stateful – server-side oder client-side?
§  XPages vs. Vaadin
§  Vaadin Grundlagen
§  Vaadin Development – per Code und per GUI-Designer
§  Deployment auf Domino und Liberty
15
Vaadin – Valo, Sampler und Github
§  Demo Valo-Theme
§  http://demo.vaadin.com/valo-theme/
§  Demo Sampler
§  http://demo.vaadin.com/sampler
§  Github
§  https://github.com/vaadin
16
Vaadin – Addons
http://www.vaadin.com/directory
17
Vaadin – Pro Tools
http://www.vaadin.com/tools-and-services
18
Vaadin Grundlagen – Architektur
19
Agenda
§  Stateless, stateful – server-side oder client-side?
§  XPages vs. Vaadin
§  Vaadin Grundlagen
§  Vaadin Development – per Code und per GUI-Designer
§  Deployment auf Domino und Liberty
20
Vaadin Development – IDE-Setup
§  Setup-Prozedur ist hier beschrieben (wir wollen ja keinen alten
Kaffee aufkochen)
http://www.slideshare.net/fiorep/domino-osgi-development
§  OpenNTF – Workflow for XPages
§  Setzt den Activiti Explorer ein, welcher auf Vaadin basiert
§  http://www.openntf.org/main.nsf/project.xsp?r=project/Workflow
%20for%20XPages/summary
21
Vaadin Development – IDE-Setup
§  Eclipse J2EE
§  Vaadin Eclipse Plug-In
§  Alle Installations-Varianten (verschiedene IDEs, Vorgehensweisen)
sind im „Book of Vaadin“ beschrieben
§  https://vaadin.com/book/-/page/getting-started.html
22
Vaadin Development – IDE-Setup
§  Im Idealfall wird das Vaadin Eclipse-Plug-In für die Erstellung einer
neuen App eingesetzt
§  Fügt weitere Abhängigkeiten und Toolings hinzu wie Maven oder
Tycho, daher nur mit deutlichem Mehraufwand im Domino-
Umfeld einzusetzen
§  Für Domino empfiehlt sich das Deployment innerhalb des Plug-In
(ungünstig, aber möglich) oder als dediziertes Plug-In, welches die
Vaadin-Klassen exportiert
23
Vaadin Development – UI
§  Eine Applikation kann mehrere „UI“‘s haben
§  Ein UI gibt es immer in einer Instanz pro User
§  Vaadin verfolgt einen Single-Page-Approach
§  Ohne manuelle Zuarbeit kein URL-Navigation
24
Vaadin Development – UI
25
Vaadin Development – UI
26
Vaadin Development – Layouts
§  VerticalLayout
§  HorizontalLayout
§  GridLayout
§  FormLayout (+1 für Erfassungsmasken)
§  CssLayout
27
Vaadin Development – Layouts
28
DEMO
29
Agenda
§  Stateless, stateful – server-side oder client-side?
§  XPages vs. Vaadin
§  Vaadin Grundlagen
§  Vaadin Development – per Code und per GUI-Designer
§  Deployment auf Domino und Liberty
30
Deployment auf Domino
§  Export als Plug-In-Project
§  Entweder via Domino UpdateSite oder direkt als File nach
<dominodata>/workspace/applications/eclipse/plugins
31
Deployment - Ressource
http://www.slideshare.net/markmyers106/1-app-2-developers-3-servers
32
DEMO
33
Q & A!

SNoUG 2015 - Vaadin - XPages 2.0?

  • 1.
  • 2.
    2 •  Skype /Twitter / LinkedIn / Slideshare Muenzpraeger •  Web https://blog.winkelmeyer.com •  Mail mail@winkelmeyer.com OpenNTF •  File Navigator •  Generic NSF View Widget for IBM Connections About me René Winkelmeyer Head of Development
  • 3.
    3 Agenda §  Stateless, stateful– server-side oder client-side? §  XPages vs. Vaadin §  Vaadin Grundlagen §  Vaadin Development – per Code und per GUI-Designer §  Deployment auf Domino und Liberty
  • 4.
    4 Agenda §  Stateless, stateful– server-side oder client-side? §  XPages vs. Vaadin §  Vaadin Grundlagen §  Vaadin Development – per Code und per GUI-Designer §  Deployment auf Domino und Liberty
  • 5.
    5 Agenda §  Stateless, stateful– server-side oder client-side? §  XPages vs. Vaadin §  Vaadin Grundlagen §  Vaadin Development – per Code und per GUI-Designer §  Deployment auf Domino und Liberty
  • 6.
    6 Vaadin – dieEntscheidung §  Beschäftigung mit Vaadin seit 2013 §  Selektion als Basis-Platform für zukünftige Unternehmens-Web- Anwendungen (anstatt XPages) https://vaadin.com/certificate/-/view/48b183a61884e0bced560ed20b580295
  • 7.
    7 XPages vs. Vaadin– Historie und Gegenwart XPages Vaadin •  Zukauf der IBM in 2001 (vormals XForms) •  War mal „Workplace“ •  Hat seinen Ursprung in JSF •  Weiterentwicklung erfolgt durch IBM (Core, closed source) und teils durch Community (ExtLib) •  In 2001 neu entwickelt als „Millstone Library“ (IT Mill) •  Nutzung von GWT seit 2007 (IT Mill Toolkit 4) •  „Fühlt“ sich an wie SWT/Swing/ AWT •  Weiterentwicklung erfolgt durch Vaadin Ltd. (open source, Apache licensed)
  • 8.
    8 XPages vs. Vaadin– Betriebssysteme XPages Vaadin •  Alle von Domino unterstützte Betriebssysteme •  Alle Betriebssysteme mit Java 6 und höher
  • 9.
    9 XPages vs. Vaadin– Unterstützte App-Server XPages Vaadin •  IBM Domino •  XPages Buildpack (IBM Bluemix) •  Apache Tomcat 5+ •  IBM WebSphere (Full/Liberty) 7+ •  JBoss 4+ •  Liferay Portal 5.2 •  Oracle WebLogic 10.3+ •  WildFly 8+ •  Java Servlet 2.4 / JSR-286 •  ...
  • 10.
    10 XPages vs. Vaadin– Release / Abhängigkeiten XPages Vaadin •  Abhängig von Domino-Updates (Major, Minor, FP, IF) •  Ein Update des App-Servers bringt auch immer ein Update der XPages mit sich •  Ein Update wirkt sich auf alle XPages-Anwendungen aus •  Neues Release (Minor) alle 4-5 Wochen •  Updates des App-Servers sind unabhängig von Vaadin – und vice versa •  Vaadin-Updates können selektiv pro Applikation durchgeführt werden
  • 11.
    11 XPages vs. Vaadin– IDE XPages Vaadin •  IBM Domino Designer 8.5.2+, nur Windows •  Eclipse •  IntelliJ •  Netbeans •  ...
  • 12.
    12 XPages vs. Vaadin– Programmiersprachen XPages Vaadin •  SSJS •  JavaScript •  Java •  Java •  JavaScript •  Scala •  Jython •  ...
  • 13.
    13 IBM – VaadinChallenge http://vaadin.com/challenge
  • 14.
    14 Agenda §  Stateless, stateful– server-side oder client-side? §  XPages vs. Vaadin §  Vaadin Grundlagen §  Vaadin Development – per Code und per GUI-Designer §  Deployment auf Domino und Liberty
  • 15.
    15 Vaadin – Valo,Sampler und Github §  Demo Valo-Theme §  http://demo.vaadin.com/valo-theme/ §  Demo Sampler §  http://demo.vaadin.com/sampler §  Github §  https://github.com/vaadin
  • 16.
  • 17.
    17 Vaadin – ProTools http://www.vaadin.com/tools-and-services
  • 18.
  • 19.
    19 Agenda §  Stateless, stateful– server-side oder client-side? §  XPages vs. Vaadin §  Vaadin Grundlagen §  Vaadin Development – per Code und per GUI-Designer §  Deployment auf Domino und Liberty
  • 20.
    20 Vaadin Development –IDE-Setup §  Setup-Prozedur ist hier beschrieben (wir wollen ja keinen alten Kaffee aufkochen) http://www.slideshare.net/fiorep/domino-osgi-development §  OpenNTF – Workflow for XPages §  Setzt den Activiti Explorer ein, welcher auf Vaadin basiert §  http://www.openntf.org/main.nsf/project.xsp?r=project/Workflow %20for%20XPages/summary
  • 21.
    21 Vaadin Development –IDE-Setup §  Eclipse J2EE §  Vaadin Eclipse Plug-In §  Alle Installations-Varianten (verschiedene IDEs, Vorgehensweisen) sind im „Book of Vaadin“ beschrieben §  https://vaadin.com/book/-/page/getting-started.html
  • 22.
    22 Vaadin Development –IDE-Setup §  Im Idealfall wird das Vaadin Eclipse-Plug-In für die Erstellung einer neuen App eingesetzt §  Fügt weitere Abhängigkeiten und Toolings hinzu wie Maven oder Tycho, daher nur mit deutlichem Mehraufwand im Domino- Umfeld einzusetzen §  Für Domino empfiehlt sich das Deployment innerhalb des Plug-In (ungünstig, aber möglich) oder als dediziertes Plug-In, welches die Vaadin-Klassen exportiert
  • 23.
    23 Vaadin Development –UI §  Eine Applikation kann mehrere „UI“‘s haben §  Ein UI gibt es immer in einer Instanz pro User §  Vaadin verfolgt einen Single-Page-Approach §  Ohne manuelle Zuarbeit kein URL-Navigation
  • 24.
  • 25.
  • 26.
    26 Vaadin Development –Layouts §  VerticalLayout §  HorizontalLayout §  GridLayout §  FormLayout (+1 für Erfassungsmasken) §  CssLayout
  • 27.
  • 28.
  • 29.
    29 Agenda §  Stateless, stateful– server-side oder client-side? §  XPages vs. Vaadin §  Vaadin Grundlagen §  Vaadin Development – per Code und per GUI-Designer §  Deployment auf Domino und Liberty
  • 30.
    30 Deployment auf Domino § Export als Plug-In-Project §  Entweder via Domino UpdateSite oder direkt als File nach <dominodata>/workspace/applications/eclipse/plugins
  • 31.
  • 32.
  • 33.