für Domino (und andere) EntwicklerCamp 2015 René Winkelmeyer midpoints GmbH 1 About me midpoints GmbH http://www.midpoints.de IBM Advanced Business Partner IBM Design Partner (Notes Domino, Mobile, Verse) Apple Enterprise Developer und MDM Group Member Samsunt Enterprise Alliance Partner Services - Enterprise Mobility Service - Mobile Device und Application Management - IBM Notes Traveler und IBM Mobile Connect René Winkelmeyer Head of Development 2 About me • Skype muenzpraeger • Twitter muenzpraeger • LinkedIn muenzpraeger • Slideshare muenzpraeger • Web • Mail René Winkelmeyer http://blog.winkelmeyer.com http://www.midpoints.de [email protected] [email protected] Head of Development OpenNTF • File Navigator • Generic NSF View Widget for IBM Connections 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 Stateless, stateful – server-side oder client-side? § xxx 6 Stateless, stateful – server-side oder client-side? § xxx HTML (1992) CSS (1996) Java (1995) JavaScript (1995) 7 Stateless, stateful – server-side oder client-side? § xxx 8 Stateless, stateful – server-side oder client-side? § xxx 9 Stateless, stateful – server-side oder client-side? § xxx 10 Client-side Frameworks 11 JVM Frameworks 12 Stateless, stateful – server-side oder client-side? § xxx 13 14 DUMB vs. KNOWS 15 NEED DATA 16 Person 17 Stateless, stateful – server-side oder client-side? 18 Stateless, stateful – server-side oder client-side? 19 Stateless, stateful – server-side oder client-side? 20 AngularJS HTML 21 AngularJS script 22 API Design https://api.mycompany.com /people/all /people/<id> /people/<id> /people/<id> 23 API Design https://api.mycompany.com /people/all /people/<id> /people/<id> /people/<id> GET GET POST DELETE 24 API Design https://api.mycompany.com /people/all /people/<id> /people/update/<id> /people/delete/<id> GET GET UPDATE DELETE 25 GET Person 26 REST Handling 27 Vaadin 28 AngularFaces 29 Serverside – RAM (Vaadin example) 500 – 1.000 kb / Session 8.000 aktive User == 8 GB 30 Stateless, stateful – server-side oder client-side? 31 http://www.slideshare.net/cnbailey/ibm-interconnect-java-vs-javascript 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 32 Vaadin – die Entscheidung § Beschäftigung mit Vaadin seit 2013 § Selektion als Basis-Platform für Web-Anwendungen von midpoints (anstatt XPages) https://vaadin.com/certificate/-/view/48b183a61884e0bced560ed20b580295 33 XPages vs. Vaadin – Historie und Gegenwart XPages Vaadin • Zukauf der IBM in 2001 (vormals XForms) • In 2001 neu entwickelt als „Millstone Library“ (IT Mill) • War mal „Workplace“ • Nutzung von GWT seit 2007 (IT Mill Toolkit 4) • Hat seinen Ursprung in JSF • Weiterentwicklung erfolgt durch IBM (Core, closed source) und teils durch Community (ExtLib) • „Fühlt“ sich an wie SWT/Swing/ AWT • Weiterentwicklung erfolgt durch Vaadin Ltd. (open source, Apache licensed) 34 XPages vs. Vaadin – Betriebssysteme XPages • Alle von Domino unterstützte Betriebssysteme Vaadin • Alle Betriebssysteme mit Java 6 und höher 35 XPages vs. Vaadin – Unterstützte App-Server XPages Vaadin • IBM Domino • Apache Tomcat 5+ • XPages Buildpack (IBM Bluemix) • IBM WebSphere (Full/Liberty) 7+ • JBoss 4+ • Liferay Portal 5.2 • Oracle WebLogic 10.3+ • WildFly 8+ • Java Servlet 2.4 / JSR-286 • ... 36 XPages vs. Vaadin – Release / Abhängigkeiten XPages • Abhängig von Domino-Updates (Major, Minor, FP, IF) Vaadin • Neues Release (Minor) alle 4-5 Wochen • Ein Update des App-Servers bringt • Updates des App-Servers sind auch immer ein Update der XPages unabhängig von Vaadin – und vice mit sich versa • Ein Update wirkt sich auf alle XPages-Anwendungen aus • Vaadin-Updates können selektiv pro Applikation durchgeführt werden 37 XPages vs. Vaadin – IDE XPages • IBM Domino Designer 8.5.2+, nur Windows Vaadin • Eclipse • IntelliJ • Netbeans • ... 38 XPages vs. Vaadin – Programmiersprachen XPages Vaadin • SSJS • Java • JavaScript • JavaScript • Java • Scala • Jython • ... 39 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 40 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 41 Vaadin – Addons http://www.vaadin.com/directory 42 Vaadin – Pro Tools http://www.vaadin.com/tools-and-services 43 Vaadin Grundlagen – Architektur 44 Vaadin Grundlagen – Client-side communication 45 Vaadin Grundlagen – Komponenten 46 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 47 Vaadin Development – IDE-Setup § IBM hat mit 8.5.x eine J2EE-Engine dem Domino-Server hingezfügt § Expeditor WebContainer § Erfüllt Servlet 2.5 Spezifikation § Ermöglicht den Einsatz von Standard-WebApps (aka Web Application Archive == WAR) in etwas abgewandelter Form § Setup-Prozedur ist hier beschrieben (wir wollen ja keinen alten Kaffee aufkochen) http://www.slideshare.net/fiorep/domino-osgi-development 48 Vaadin Development – IDE-Setup § 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 49 Vaadin Development – Basics 50 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 51 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 DominoUmfeld 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 52 Vaadin Development – IDE-Setup 53 Vaadin Development – IDE-Setup 54 Vaadin Development – IDE-Setup 55 Vaadin Development – IDE-Setup 56 Vaadin Development – IDE-Setup 57 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 58 Vaadin Development – UI 59 Vaadin Development – UI 60 Vaadin Development – Components § Components werden über addComponent() und addComponents() hinzugefügt § Die Reihenfolge der Methodenaufrufe bestimmt die UI Anzeige 61 Vaadin Development – Layouts § VerticalLayout § HorizontalLayout § GridLayout § FormLayout (+1 für Erfassungsmasken) § CssLayout 62 Vaadin Development – Layouts 63 Vaadin Development – Layouts 64 Vaadin Development – Listener § Bekannt aus AWT, Swing, SWT etc. § „Listened“ auf eine User-Interaktion § Field enter § Button click § etc. 65 Vaadin Development – per GUI-Designer 66 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 67 Deployment auf Domino § Export als Plug-In-Project § Entweder via Domino UpdateSite oder direkt als File nach <dominodata>/workspace/applications/eclipse/plugins 68 Deployment auf WebSphere Liberty § WebSphere Liberty == IBM‘s Antwort auf Tomcat & Co. § Speed-Demoing heute abend! § Export aus Eclipse als WAR und Ablage in das Unterverzeichnis „dropins“ des WebSphere Liberty Servers 69 Deployment - Ressource http://www.slideshare.net/markmyers106/1-app-2-developers-3-servers 70 DEMO 71 Q & A! 72
© Copyright 2024 ExpyDoc