React.js flottes Front-End für Domino. Knut Herrmann

Ähnliche Dokumente
Mobile Apps mit. React-Native. Manuel

Mobile Apps mit. React-Native. Manuel

JS goes mobile: Eine Übersicht. Frederik von Berg w11k / thecodecampus

EINFÜHRUNG IN REACT.JS UND REDUX

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

Frontend-Entwicklung mit JavaScript

Cross Platform Development mit SharePoint

Node.js Einführung Manuel Hart

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

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

Qualitätssicherungskonzept

APEX DESKTOP APPS. Interaktion mit dem Client System

Mit PL/SQL auf s ipad

JavaScript Frameworks für Mobile

Einführung in Google Web Toolkit

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

Cross-Platform Mobile Development mit Xamarin Mark

TUT1 Javascript-Frameworks zum Erstellen von plattformunabhängigen mobilen Anwendungen

TypeScript JavaScript mit ohne Kopfschmerzen. Veit Weber 3. JUG Saxony Day Radebeul

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

Echte Cross-Plattform Anwendungen mit Angular 2 in Action!

Webentwicklung mit Vaadin 7. Theoretische und praktische Einführung in Vaadin 7. Christian Dresen, Michael Gerdes, Sergej Schumilo

Apps entwickeln mit HTML und Javascript

Web Apps. Offlinefähige mobile Webapplikationen mit XPages als Alternative zu nativen Apps Thomas Brandstätter /

The app the crashes, before the breakpoint is reached: Code to the event:

2 Schnelldurchgang React im Überblick

informatik ag IT mit klarer Linie S i e b e l O p e n U I

Couchbase Syncpoint, GeoCouch und

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

Übung 1: Von einer naiven JavaScript Applikation zu einem modernen Front-End Build:

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

Web-Anwendungsentwicklung mit dem Delivery Server

Vorwort... 3 Angular CLI: Der Codegenerator für unser Projekt Vorstellung Installation Die wichtigsten Befehle...

So erreichen Sie Ihre Event-App

Echte Cross-Plattform Anwendungen mit Angular 2 in Action!

Zend PHP Cloud Application Platform

Multimedia im Netz Wintersemester 2012/13

Google Gears Offline Web?

Agon Solutions. The native web mobile Architekturen mit HTML5 und PhoneGap. Ihre Prozesse in besten Händen.

Mobile hybride Applikationen Investment-App der BW-Bank

MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP)

Moderne Benutzeroberflächen für SAP Anwendungen

XPages - Core Technologie der Lotus Zukunft? 2011 IBM Corporation

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

MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP)

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

Mobile Apps mit DSLs. und entfernter Codegenerierung. Codierst Du noch oder generierst Du schon? Powered by

HERZLICH WILLKOMMEN SHAREPOINT 2013 DEEP DIVE - APPS IOZ AG 1

Dirk Reinemann Working Student Sales Consulting

Cross-Plattform-App- Entwicklung mit Visual Studio 2017

JSF goes Mobile Mit JavaServer Faces mobile Welten erschließen Copyright 2013, Andy Bosch,

Smartphone Entwicklung mit Android und Java

- Google-Maps-API - Intel App Framework - Cordova / Phonegap. Server. - Debian - Apache - Node.js. - Subversion (SVN) - Ajax - MVC.

IBM NOTES/DOMINO 9 EUGEN HEIDEBRECHT SENIOR SOFTWARE BERATER

Responsive Web Design

Line-of-Business-Apps mit der Universal Windows Platform entwickeln. Thomas Claudius

MURAT KEMALDAR [MAPPE] DIPLOM-DESIGNER / FRONTEND-DEVELOPER [WEBSEITE: MU-KU.NET]

XE IDE Cloud Web. secure Data Agile. RAD Studio XE was gibt es Neues in Delphi? Daniel Magin Delphi Experts. Daniel Wolf Delphi-Praxis

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

Mapbender3 Workshop. Christian Wygoda. FOSSGIS Dessau 2012

Appery.io Mobile Apps schnell und einfach entwickeln

Ihr Dienstleister für individuelle Softwareentwicklung und IT-Beratung

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

AJAX Implementierung mit Joomla!

Cross-Platform Mobile Apps

Visual Studio 2012 Windows 8 und.net 4.5. Hans Peter Bornhauser, Noser Engineering AG Fachbereichsleiter.NET, Digicomp AG

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

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

NativeScript & Angular 2

Der Server glüht, doch die Seite lahmt. Pagespeed-Optimierung jenseits des Servers

Lessons Learned: Mobile CRM Integration

HERZLICH WILLKOMMEN SHAREPOINT 2013 DEEP DIVE APPS IOZ AG 1

WERDEGANG BENJAMIN STELLJES FULL STACK WEB DEVELOPER

Meine App, die Cloud und ich

Der mobile Technologie-Dschungel Eine Roadmap. Dr. Frank

Lernen vom Page Designer. Auf den Spuren von Jules Verne

{ Light up the Web } Oliver Scheer. Evangelist Microsoft Deutschland

Schick statt altbacken Oberflächen-Modernisierung von Forms-Anwendungen

ZenQuery - Enterprise Backend as a Service Single Page Applications mit AngularJS und Spring MVC. - Björn Wilmsmann -

Good Practice: Entwicklung einer Smartphone App mit Unterstützung von Open Text WSM. OpenText Websolutions Usergroup,

Programmieren. Programmieren. Webseiten aufpeppen. Grafikkarte ausreizen. Coole Sprachen. Kinect am PC. 3D-Programmierung

2.1. Short description to bug Xamarin.Forms: ListView not scrollable in a ScrollView in a Stacklayout on Android

Einführung in das Google Web Toolkit am Beispiel eines Projektes aus der Verkehrstelematik

Dominik Doerner, Jonathan Bechtle ESCde

WERDEGANG BENJAMIN STELLJES FULL STACK WEB DEVELOPER

From Legacy to modern Web

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

XPages. Die neue Web Entwicklung für Lotus Domino. Jens Winkelmann -Senior Software Engineer-

Entwicklungswerkzeuge & - methoden

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

Web-Techniken Einführung in JavaScript

Mobile Backend in der

Basisworkshop inchorus Gadgets

Rails Ruby on Rails Ajax on Rails. Clemens H. Cap

Immer mehr lebt mobil

APEX verbessern mit Browser-Extensions

Modulare Anwendungen und die Lookup API. Geertjan Wielenga NetBeans Team Deutschsprachige Überarbeitung, Aljoscha Rittner NetBeans Dream Team

Workshop Java Webentwicklung Tapestry. Ulrich Stärk

Applets Belebung von Webseiten. Dipl.-Ing. Wolfgang Beer

Transkript:

React.js flottes Front-End für Domino Knut Herrmann

Knut Herrmann Senior Software Architekt Leonso GmbH Notes Domino Entwickler seit Version 2 Web-App-Entwickler aktiv auf StackOverflow E-Mail: knut.herrmann@leonso.de Twitter: @KnutHerrmann Skype: knut.herrmann 2

Warum React? 3

Notes Client Code Daten Domino Server 4

Browser Dojo HTML JS Daten Domino Server XPages 5

Browser Dojo HTML JS Daten Java Domino Server XPages 6

Select2 Bootstrap Browser HTML JS Daten Java Domino Server jqgrid Dojo jquery XPages 7

Gesucht: Browser? Code Daten Java Domino Server XPages UI JSON Datenbank 8

Angular? 9

React! 3/23/2017 www.leonso.de 10

React hohe Performance wiederverwendbare Komponenten deklarativer gut lesbarer Code entwickelt von Facebook 11

GitHub Star Ranking 2017 4. Platz 2016 6. Platz 2014 33. Platz 2013 neu 12

Webseiten, die React nutzen 13

Was ist React? 14

React JavaScript Bibliothek kein Framework rendert HTML/CSS auf Clientseite virtueller DOM einseitig gerichteter Datenfluss 15

virtueller DOM 16

virtueller DOM 17

Komponente props Daten / Funktionen als Parameter Komponente state render() Lebenszyklus-Funktionen interne Daten liefert Elemente zum Rendern incl. Events Code beim Erstellen / Ändern / Verwerfen Komponente Komponente Kind-Komponenten Komponente Komponente 18

Beispiel import React from 'react'; import ReactDOM from 'react-dom'; class App extends React.Component { render() { return ( <div> <h1>{this.props.headline}</h1> <Person name="kurt Meier" /> <Person name="hans Müller" /> </div> ); } } class Person extends React.Component { render() { return ( <div> <h3>{this.props.name}</h3> </div> ); } } ReactDOM.render(<App headline="personenliste"/>, document.getelementbyid('root')); 19

Beispiel class App extends React.Component { render() { return ( <div> <h1>{this.props.headline}</h1> <Person name="kurt Meier" /> <Person name="hans Müller" /> </div> ); } } JSX ReactDOM.render(<App headline="personenliste"/>, document.getelementbyid('root')); 20

Beispiel import React from 'react'; import ReactDOM from 'react-dom'; class App extends React.Component { render() { return ( <div> <h1>{this.props.headline}</h1> <Person name="kurt Meier" /> <Person name="hans Müller" /> </div> ); } } ES6 (ECMAScript2015) 21

Babel konvertiert JSX in normales JavaScript aus wird <App headline="personenliste"/> React.createElement(App, {headline:"personenliste"}); konvertiert ES6 in eine JavaScript-Version, die aktuelle Browser beherrschen man programmiert in einer zukünftigen Sprachversion 22

Datenänderungen - Events class App extends Component { deleteperson(name) { this.setstate( ) } <Person name={person} deleteperson={this.deleteperson} /> class Person extends React.Component { render() { return ( <div> <h3>{this.props.name}</h3> <button onclick={() => this.props.deleteperson(this.props.name)}> Entfernen </button> </div> 23

Datenänderungen - Events 24

Datenänderungen - Events 25

Datenänderungen - Events Store 26

Datenänderungen - Events Store Events Data 27

Datenänderungen - Events Store Dispatcher (previousstate, action) => newstate Components Actions 28

Redux Alle Daten (State) in einem Datenspeicher (Store) State-Änderungen nur durch Actions Aktueller State darf nicht geändert werden neuer State = Kopie mit Änderungen erlaubt Zeitreisen 29

React Router für Single-Page-Webanwendungen hält UI mit der URL synchron URLs als Favorit speicherbar deklarativ durch Komponenten 30

Demo 31

Entwicklertools IDE Atom (frei) WebStorm (meine Empfehlung) Sublime Text Visual Studio Code (frei) ESLint Syntaxprüfung, Programmierregeln Babel 32

Entwicklertools webpack bündelt Code/CSS/Ressourcen in eine Datei "bundle.js" npm Package Manager yarn der bessere Package Manager Node.js JavaScript Runtime 33

Entwicklertools Browser-Erweiterungen für Chrome und Firefox React Developer Tools Redux DevTools 34

Warum Domino? 35

Domino Datenbank Web-Server (XPages / Java / REST) Sicherheit / Nutzerverwaltung Cluster / Replikation Alles in einer Datei (.nsf) 36

Domino REST-Services XPages + Java Domino Data Service (DDS) OSGi-Plugin ( Sven Hasselbach) 37

React und mehr? 38

React Bootstrap Bootstrap-Komponenten so einfach zu nutzen wie eigene Buttons, Dialogboxen, Navigation, Seitenlayout, Forms, 39

React Native ios & Android nutzt native Komponenten einmal lernen, überall schreiben 85-90% gemeinsamer Code 40

Gefunden: Browser React & Co. Code Daten Java Domino Server XPages 41

Nutzen klare Trennung von Client und Server Code optimale Entwicklungsumgebung für Client UI Wiederverwendbare Komponenten Hohe Performance 42

node.js installieren "Create React App" installieren Versuch macht klug! https://github.com/facebookincubator/create-react-app codieren 43

Fragen? jetzt oder später E-Mail: knut.herrmann@leonso.de Twitter: @KnutHerrmann Skype: knut.herrmann 44

Quellen: Bilder zum virtuellem DOM: http://teropa.info/blog/2015/03/02/change-and-its-detection-in-javascript-frameworks.html 45