SlideShare ist ein Scribd-Unternehmen logo
1 von 44
Downloaden Sie, um offline zu lesen
Domino & React
Modernstes Front-End für
Domino: React
Knut Herrmann
Domino & React
Knut Herrmann
 Senior Software Architekt
Leonso GmbH
 Notes Domino Entwickler
seit Version 2
 StackOverflower
E-Mail: knut.herrmann@leonso.de
Twitter: @KnutHerrmann
Skype: knut.herrmann
03.06.2016 2www.leonso.de
Domino & React
Warum React?
03.06.2016 3www.leonso.de
Domino & React
03.06.2016 4www.leonso.de
Domino
Server
Notes
Client
Code
Daten
Domino & React
03.06.2016 5www.leonso.de
Domino
Server
XPages
Browser
Dojo
Daten
HTML
JS
Domino & React
03.06.2016 6www.leonso.de
Domino
Server
XPages
Browser
Dojo
Daten
HTML
JS
Java
Domino & React
03.06.2016 7www.leonso.de
Domino
Server
XPages
Browser
Dojo
Select2
jQuery
Daten
jqGrid
JavaBootstrap
JS
HTML
Domino & React
03.06.2016 8www.leonso.de
Domino
Server
XPages
Browser
Java
Gesucht:
Datenbank JSON UI
?
Daten
Code
Domino & React
Angular ?
03.06.2016 9www.leonso.de
Domino & React
React !
6/3/2016 10www.leonso.de
Domino & React
React
hohe Performance
wiederverwendbare Komponenten
deklarativer gut lesbarer Code
entwickelt von Facebook
03.06.2016 11www.leonso.de
Domino & React
03.06.2016 12www.leonso.de
Webseiten, die React nutzen
Domino & React
Was ist React?
03.06.2016 13www.leonso.de
Domino & React
React
JavaScript Bibliothek – kein Framework
Fokus auf UI (= das "V" in MVC)
virtueller DOM
einseitig gerichteter Datenfluss
03.06.2016 14www.leonso.de
Domino & React
03.06.2016 15www.leonso.de
virtueller DOM
Domino & React
03.06.2016 16www.leonso.de
virtueller DOM
Domino & React
03.06.2016 17www.leonso.de
Komponente
Komponente
state – interne Daten
render() – liefert Elemente zum Rendern incl. Eventbehandlung
Lebenszyklus-Funktionen - beim Erstellen / Ändern / Verwerfen
props – Daten / Funktionen als Parameter
Kind-Komponenten
Komponente Komponente …
Domino & React
03.06.2016 18www.leonso.de
Beispiel
import React from 'react';
import ReactDOM from 'react-dom';
class App extends Component {
render() {
return (
<div>
<h1>{this.props.headline}</h1>
<Person name="Kurt Meier" />
<Person name="Hans Müller" />
</div>
);
}
}
ReactDOM.render(<App headline="Personenliste"/>,
document.getElementById('root'));
class Person extends Component {
render() {
return (
<div>
<h3>{this.props.name}</h3>
</div>
);
}
}
Domino & React
03.06.2016 19www.leonso.de
Beispiel
class App extends Component {
render() {
return (
<div>
<h1>{this.props.headline}</h1>
<Person name="Kurt Meier" />
<Person name="Hans Müller" />
</div>
);
}
}
ReactDOM.render(<App headline="Personenliste"/>,
document.getElementById('root'));
JSX
Domino & React
03.06.2016 20www.leonso.de
Beispiel
import React from 'react';
import ReactDOM from 'react-dom';
class App extends Component {
render() {
return (
<div>
<h1>{this.props.headline}</h1>
<Person name="Kurt Meier" />
<Person name="Hans Müller" />
</div>
);
}
}
ES6 (ECMAScript2015)
Domino & React
Babel
• konvertiert JSX in normales JavaScript
• konvertiert ES6 in eine JavaScript-Version,
die aktuelle Browser beherrschen
 man programmiert in einer zukünftigen
Sprachversion 
03.06.2016 21www.leonso.de
aus <App headline="Personenliste"/>
wird React.createElement(App, {headline:"Personenliste"});
Domino & React
Datenänderungen - Events
03.06.2016 22www.leonso.de
class Person extends Component {
render() {
return (
<div>
<h3>{this.props.name}</h3>
<button onClick={() => this.props.deletePerson(this.props.name)}>
Entfernen
</button>
</div>
);
}
}
Domino & React
Datenänderungen - Events
03.06.2016 23www.leonso.de
Domino & React
Datenänderungen - Events
03.06.2016 24www.leonso.de
Domino & React
Datenänderungen - Events
03.06.2016 25www.leonso.de
Store
Domino & React
Datenänderungen - Events
03.06.2016 26www.leonso.de
DispatcherStore
ActionsComponents
(previousState, action) => newState
Domino & React
Redux
 es gibt genau einen Datenspeicher (Store)
 State darf nicht geändert werden
neuer State = komplette Kopie mit Änderungen
 erlaubt Zeitreisen
03.06.2016 27www.leonso.de
Domino & React
Demo
03.06.2016 28www.leonso.de
Domino & React
Komponenten in Demo
6/3/2016 29www.leonso.de
App
Row
Prices Price
ReservedSeats
ReservedSeat
Button
Seat
Theatre
Stage
Domino & React
Entwicklertools
 IDE
 Atom (frei)
 WebStorm
 Sublime Text
 Visual Studio Code (frei)
 ESLint
 Syntaxprüfung, Programmierregeln
 Babel
03.06.2016 30www.leonso.de
Domino & React
Entwicklertools
 webpack
 bündelt Code/CSS/Ressourcen in eine Datei "bundle.js"
 npm
 Package Manager
 Node.js
 JavaScript Runtime
03.06.2016 31www.leonso.de
Domino & React
Entwicklertools
 Google Chrome Erweiterung
 React
 Redux
03.06.2016 32www.leonso.de
Domino & React
Warum Domino?
03.06.2016 33www.leonso.de
Domino & React
Domino
Datenbank
Web-Server (XPages / Java / REST)
Sicherheit / Nutzerverwaltung
Cluster / Replikation
03.06.2016 34www.leonso.de
Domino & React
Domino
unsere Kunden haben es
Alles in einer Datei (.nsf)
03.06.2016 35www.leonso.de
Domino & React
React und mehr?
03.06.2016 36www.leonso.de
Domino & React
React Router
hält UI mit der URL synchron
03.06.2016 37www.leonso.de
Domino & React
React Bootstrap
Bootstrap-Komponenten
so einfach zu nutzen wie eigene
Buttons, Dialogboxen, Navigation,
Seitenlayout, Forms, …
03.06.2016 38www.leonso.de
Domino & React
React Native
iOS & Android
nutzt native Komponenten
einmal lernen, überall schreiben
85-90% gemeinsamer Code
03.06.2016 39www.leonso.de
Domino & React
Relay
nutzt GraphQL
erforderliche Daten nur deklarieren
aggregierte Serveranfragen
automatische Datensynchronisation
optimistische Datenänderung
03.06.2016 40www.leonso.de
Domino & React
03.06.2016 41www.leonso.de
Domino
Server
XPages
Browser
Java
Gefunden:
React
& Co.
Daten
Code
Domino & React
03.06.2016 42www.leonso.de
Nutzen
 klare Trennung von Client und Server Code
 optimale Entwicklungsumgebung für Client UI
 Wiederverwendbare Komponenten
 Hohe Performance
Domino & React
Fragen? – jetzt …
… oder später
 E-Mail: knut.herrmann@leonso.de
 Twitter: @KnutHerrmann
 Skype: knut.herrmann
03.06.2016 43www.leonso.de
Domino & React
Quellen:
 Bilder zum virtuellem DOM:
http://teropa.info/blog/2015/03/02/change-and-its-detection-in-javascript-frameworks.html
03.06.2016 44www.leonso.de

Weitere ähnliche Inhalte

Was ist angesagt?

FMK2017 - Google Calendar API und FileMaker by Arnold Kegebein
FMK2017 - Google Calendar API und FileMaker by Arnold KegebeinFMK2017 - Google Calendar API und FileMaker by Arnold Kegebein
FMK2017 - Google Calendar API und FileMaker by Arnold KegebeinVerein FM Konferenz
 
FMK2017 - REST mobil- die andere Serververbindung by Volker Krambrich
FMK2017 - REST mobil- die andere Serververbindung by Volker KrambrichFMK2017 - REST mobil- die andere Serververbindung by Volker Krambrich
FMK2017 - REST mobil- die andere Serververbindung by Volker KrambrichVerein FM Konferenz
 
FMK2017 - Was ist neu in FileMaker 16 by Michael Valentin
FMK2017 - Was ist neu in FileMaker 16 by Michael ValentinFMK2017 - Was ist neu in FileMaker 16 by Michael Valentin
FMK2017 - Was ist neu in FileMaker 16 by Michael ValentinVerein FM Konferenz
 
FMK2017 - Das iOS FileMaker URL Schema by Alexis Gehrt
FMK2017 - Das iOS FileMaker URL Schema by Alexis GehrtFMK2017 - Das iOS FileMaker URL Schema by Alexis Gehrt
FMK2017 - Das iOS FileMaker URL Schema by Alexis GehrtVerein FM Konferenz
 
FMK2017 - WebDirect vs. FileMaker Pro by Klemens Kegebein und Holger Darjus
FMK2017 - WebDirect vs. FileMaker Pro by Klemens Kegebein und Holger DarjusFMK2017 - WebDirect vs. FileMaker Pro by Klemens Kegebein und Holger Darjus
FMK2017 - WebDirect vs. FileMaker Pro by Klemens Kegebein und Holger DarjusVerein FM Konferenz
 
FMK2017 - GUI Tipps für mobile Lösungen by Robert Kaiser
FMK2017 - GUI Tipps für mobile Lösungen by Robert KaiserFMK2017 - GUI Tipps für mobile Lösungen by Robert Kaiser
FMK2017 - GUI Tipps für mobile Lösungen by Robert KaiserVerein FM Konferenz
 
FMK2017 - Eine Bilddatenbank mit FileMaker erstellen by Karsten Risseeuw
FMK2017 - Eine Bilddatenbank mit FileMaker erstellen by Karsten RisseeuwFMK2017 - Eine Bilddatenbank mit FileMaker erstellen by Karsten Risseeuw
FMK2017 - Eine Bilddatenbank mit FileMaker erstellen by Karsten RisseeuwVerein FM Konferenz
 
FMK2017 - Der Bug - des Entwicklers Fluch by Jörg Köster
FMK2017 - Der Bug - des Entwicklers Fluch by Jörg KösterFMK2017 - Der Bug - des Entwicklers Fluch by Jörg Köster
FMK2017 - Der Bug - des Entwicklers Fluch by Jörg KösterVerein FM Konferenz
 
FMK2017 - Zeit und Datum in FileMaker by Arnold Kegebein
FMK2017 - Zeit und Datum in FileMaker by Arnold KegebeinFMK2017 - Zeit und Datum in FileMaker by Arnold Kegebein
FMK2017 - Zeit und Datum in FileMaker by Arnold KegebeinVerein FM Konferenz
 
FMK2017 - Vortrag FileMaker als Frontend zum Aktuallisieren von dynamischen W...
FMK2017 - Vortrag FileMaker als Frontend zum Aktuallisieren von dynamischen W...FMK2017 - Vortrag FileMaker als Frontend zum Aktuallisieren von dynamischen W...
FMK2017 - Vortrag FileMaker als Frontend zum Aktuallisieren von dynamischen W...Verein FM Konferenz
 
FMK2017 - Wordpress und FileMaker by Karsten Risseeuw
FMK2017 - Wordpress und FileMaker by Karsten RisseeuwFMK2017 - Wordpress und FileMaker by Karsten Risseeuw
FMK2017 - Wordpress und FileMaker by Karsten RisseeuwVerein FM Konferenz
 
FMK2017 - FileMaker Server in der Cloud by Volker Krambrich
FMK2017 - FileMaker Server in der Cloud by Volker KrambrichFMK2017 - FileMaker Server in der Cloud by Volker Krambrich
FMK2017 - FileMaker Server in der Cloud by Volker KrambrichVerein FM Konferenz
 
App-Development für SharePoint 2013
App-Development für SharePoint 2013App-Development für SharePoint 2013
App-Development für SharePoint 2013Digicomp Academy AG
 
FMK2016 - Longin Ziegler - Schritt für Schritt zum eigenen Kalender
FMK2016 - Longin Ziegler - Schritt für Schritt zum eigenen KalenderFMK2016 - Longin Ziegler - Schritt für Schritt zum eigenen Kalender
FMK2016 - Longin Ziegler - Schritt für Schritt zum eigenen KalenderVerein FM Konferenz
 
FMK2017 - Webdevelopment mit Rails by Stefan Husch qutic.com
FMK2017 - Webdevelopment mit Rails by Stefan Husch qutic.comFMK2017 - Webdevelopment mit Rails by Stefan Husch qutic.com
FMK2017 - Webdevelopment mit Rails by Stefan Husch qutic.comVerein FM Konferenz
 
FMK2016 - Holger Darjus und Jörg Köster - Migration und Synchronisation
FMK2016 - Holger Darjus und Jörg Köster - Migration und SynchronisationFMK2016 - Holger Darjus und Jörg Köster - Migration und Synchronisation
FMK2016 - Holger Darjus und Jörg Köster - Migration und SynchronisationVerein FM Konferenz
 
FMK2017 - Das FileMaker Selector-Connector Modell - Wie kann ich es sinnvoll ...
FMK2017 - Das FileMaker Selector-Connector Modell - Wie kann ich es sinnvoll ...FMK2017 - Das FileMaker Selector-Connector Modell - Wie kann ich es sinnvoll ...
FMK2017 - Das FileMaker Selector-Connector Modell - Wie kann ich es sinnvoll ...Verein FM Konferenz
 
FMK2016 - Christian Schmitz - Einblick in das FileMaker SDK für iOS
FMK2016 - Christian Schmitz - Einblick in das FileMaker SDK für iOSFMK2016 - Christian Schmitz - Einblick in das FileMaker SDK für iOS
FMK2016 - Christian Schmitz - Einblick in das FileMaker SDK für iOSVerein FM Konferenz
 

Was ist angesagt? (18)

FMK2017 - Google Calendar API und FileMaker by Arnold Kegebein
FMK2017 - Google Calendar API und FileMaker by Arnold KegebeinFMK2017 - Google Calendar API und FileMaker by Arnold Kegebein
FMK2017 - Google Calendar API und FileMaker by Arnold Kegebein
 
FMK2017 - REST mobil- die andere Serververbindung by Volker Krambrich
FMK2017 - REST mobil- die andere Serververbindung by Volker KrambrichFMK2017 - REST mobil- die andere Serververbindung by Volker Krambrich
FMK2017 - REST mobil- die andere Serververbindung by Volker Krambrich
 
FMK2017 - Was ist neu in FileMaker 16 by Michael Valentin
FMK2017 - Was ist neu in FileMaker 16 by Michael ValentinFMK2017 - Was ist neu in FileMaker 16 by Michael Valentin
FMK2017 - Was ist neu in FileMaker 16 by Michael Valentin
 
FMK2017 - Das iOS FileMaker URL Schema by Alexis Gehrt
FMK2017 - Das iOS FileMaker URL Schema by Alexis GehrtFMK2017 - Das iOS FileMaker URL Schema by Alexis Gehrt
FMK2017 - Das iOS FileMaker URL Schema by Alexis Gehrt
 
FMK2017 - WebDirect vs. FileMaker Pro by Klemens Kegebein und Holger Darjus
FMK2017 - WebDirect vs. FileMaker Pro by Klemens Kegebein und Holger DarjusFMK2017 - WebDirect vs. FileMaker Pro by Klemens Kegebein und Holger Darjus
FMK2017 - WebDirect vs. FileMaker Pro by Klemens Kegebein und Holger Darjus
 
FMK2017 - GUI Tipps für mobile Lösungen by Robert Kaiser
FMK2017 - GUI Tipps für mobile Lösungen by Robert KaiserFMK2017 - GUI Tipps für mobile Lösungen by Robert Kaiser
FMK2017 - GUI Tipps für mobile Lösungen by Robert Kaiser
 
FMK2017 - Eine Bilddatenbank mit FileMaker erstellen by Karsten Risseeuw
FMK2017 - Eine Bilddatenbank mit FileMaker erstellen by Karsten RisseeuwFMK2017 - Eine Bilddatenbank mit FileMaker erstellen by Karsten Risseeuw
FMK2017 - Eine Bilddatenbank mit FileMaker erstellen by Karsten Risseeuw
 
FMK2017 - Der Bug - des Entwicklers Fluch by Jörg Köster
FMK2017 - Der Bug - des Entwicklers Fluch by Jörg KösterFMK2017 - Der Bug - des Entwicklers Fluch by Jörg Köster
FMK2017 - Der Bug - des Entwicklers Fluch by Jörg Köster
 
FMK2017 - Zeit und Datum in FileMaker by Arnold Kegebein
FMK2017 - Zeit und Datum in FileMaker by Arnold KegebeinFMK2017 - Zeit und Datum in FileMaker by Arnold Kegebein
FMK2017 - Zeit und Datum in FileMaker by Arnold Kegebein
 
FMK2017 - Vortrag FileMaker als Frontend zum Aktuallisieren von dynamischen W...
FMK2017 - Vortrag FileMaker als Frontend zum Aktuallisieren von dynamischen W...FMK2017 - Vortrag FileMaker als Frontend zum Aktuallisieren von dynamischen W...
FMK2017 - Vortrag FileMaker als Frontend zum Aktuallisieren von dynamischen W...
 
FMK2017 - Wordpress und FileMaker by Karsten Risseeuw
FMK2017 - Wordpress und FileMaker by Karsten RisseeuwFMK2017 - Wordpress und FileMaker by Karsten Risseeuw
FMK2017 - Wordpress und FileMaker by Karsten Risseeuw
 
FMK2017 - FileMaker Server in der Cloud by Volker Krambrich
FMK2017 - FileMaker Server in der Cloud by Volker KrambrichFMK2017 - FileMaker Server in der Cloud by Volker Krambrich
FMK2017 - FileMaker Server in der Cloud by Volker Krambrich
 
App-Development für SharePoint 2013
App-Development für SharePoint 2013App-Development für SharePoint 2013
App-Development für SharePoint 2013
 
FMK2016 - Longin Ziegler - Schritt für Schritt zum eigenen Kalender
FMK2016 - Longin Ziegler - Schritt für Schritt zum eigenen KalenderFMK2016 - Longin Ziegler - Schritt für Schritt zum eigenen Kalender
FMK2016 - Longin Ziegler - Schritt für Schritt zum eigenen Kalender
 
FMK2017 - Webdevelopment mit Rails by Stefan Husch qutic.com
FMK2017 - Webdevelopment mit Rails by Stefan Husch qutic.comFMK2017 - Webdevelopment mit Rails by Stefan Husch qutic.com
FMK2017 - Webdevelopment mit Rails by Stefan Husch qutic.com
 
FMK2016 - Holger Darjus und Jörg Köster - Migration und Synchronisation
FMK2016 - Holger Darjus und Jörg Köster - Migration und SynchronisationFMK2016 - Holger Darjus und Jörg Köster - Migration und Synchronisation
FMK2016 - Holger Darjus und Jörg Köster - Migration und Synchronisation
 
FMK2017 - Das FileMaker Selector-Connector Modell - Wie kann ich es sinnvoll ...
FMK2017 - Das FileMaker Selector-Connector Modell - Wie kann ich es sinnvoll ...FMK2017 - Das FileMaker Selector-Connector Modell - Wie kann ich es sinnvoll ...
FMK2017 - Das FileMaker Selector-Connector Modell - Wie kann ich es sinnvoll ...
 
FMK2016 - Christian Schmitz - Einblick in das FileMaker SDK für iOS
FMK2016 - Christian Schmitz - Einblick in das FileMaker SDK für iOSFMK2016 - Christian Schmitz - Einblick in das FileMaker SDK für iOS
FMK2016 - Christian Schmitz - Einblick in das FileMaker SDK für iOS
 

2016 DNUG #43: Modernstes Front-End für Domino: React

  • 1. Domino & React Modernstes Front-End für Domino: React Knut Herrmann
  • 2. Domino & React Knut Herrmann  Senior Software Architekt Leonso GmbH  Notes Domino Entwickler seit Version 2  StackOverflower E-Mail: knut.herrmann@leonso.de Twitter: @KnutHerrmann Skype: knut.herrmann 03.06.2016 2www.leonso.de
  • 3. Domino & React Warum React? 03.06.2016 3www.leonso.de
  • 4. Domino & React 03.06.2016 4www.leonso.de Domino Server Notes Client Code Daten
  • 5. Domino & React 03.06.2016 5www.leonso.de Domino Server XPages Browser Dojo Daten HTML JS
  • 6. Domino & React 03.06.2016 6www.leonso.de Domino Server XPages Browser Dojo Daten HTML JS Java
  • 7. Domino & React 03.06.2016 7www.leonso.de Domino Server XPages Browser Dojo Select2 jQuery Daten jqGrid JavaBootstrap JS HTML
  • 8. Domino & React 03.06.2016 8www.leonso.de Domino Server XPages Browser Java Gesucht: Datenbank JSON UI ? Daten Code
  • 9. Domino & React Angular ? 03.06.2016 9www.leonso.de
  • 10. Domino & React React ! 6/3/2016 10www.leonso.de
  • 11. Domino & React React hohe Performance wiederverwendbare Komponenten deklarativer gut lesbarer Code entwickelt von Facebook 03.06.2016 11www.leonso.de
  • 12. Domino & React 03.06.2016 12www.leonso.de Webseiten, die React nutzen
  • 13. Domino & React Was ist React? 03.06.2016 13www.leonso.de
  • 14. Domino & React React JavaScript Bibliothek – kein Framework Fokus auf UI (= das "V" in MVC) virtueller DOM einseitig gerichteter Datenfluss 03.06.2016 14www.leonso.de
  • 15. Domino & React 03.06.2016 15www.leonso.de virtueller DOM
  • 16. Domino & React 03.06.2016 16www.leonso.de virtueller DOM
  • 17. Domino & React 03.06.2016 17www.leonso.de Komponente Komponente state – interne Daten render() – liefert Elemente zum Rendern incl. Eventbehandlung Lebenszyklus-Funktionen - beim Erstellen / Ändern / Verwerfen props – Daten / Funktionen als Parameter Kind-Komponenten Komponente Komponente …
  • 18. Domino & React 03.06.2016 18www.leonso.de Beispiel import React from 'react'; import ReactDOM from 'react-dom'; class App extends Component { render() { return ( <div> <h1>{this.props.headline}</h1> <Person name="Kurt Meier" /> <Person name="Hans Müller" /> </div> ); } } ReactDOM.render(<App headline="Personenliste"/>, document.getElementById('root')); class Person extends Component { render() { return ( <div> <h3>{this.props.name}</h3> </div> ); } }
  • 19. Domino & React 03.06.2016 19www.leonso.de Beispiel class App extends Component { render() { return ( <div> <h1>{this.props.headline}</h1> <Person name="Kurt Meier" /> <Person name="Hans Müller" /> </div> ); } } ReactDOM.render(<App headline="Personenliste"/>, document.getElementById('root')); JSX
  • 20. Domino & React 03.06.2016 20www.leonso.de Beispiel import React from 'react'; import ReactDOM from 'react-dom'; class App extends Component { render() { return ( <div> <h1>{this.props.headline}</h1> <Person name="Kurt Meier" /> <Person name="Hans Müller" /> </div> ); } } ES6 (ECMAScript2015)
  • 21. Domino & React Babel • konvertiert JSX in normales JavaScript • konvertiert ES6 in eine JavaScript-Version, die aktuelle Browser beherrschen  man programmiert in einer zukünftigen Sprachversion  03.06.2016 21www.leonso.de aus <App headline="Personenliste"/> wird React.createElement(App, {headline:"Personenliste"});
  • 22. Domino & React Datenänderungen - Events 03.06.2016 22www.leonso.de class Person extends Component { render() { return ( <div> <h3>{this.props.name}</h3> <button onClick={() => this.props.deletePerson(this.props.name)}> Entfernen </button> </div> ); } }
  • 23. Domino & React Datenänderungen - Events 03.06.2016 23www.leonso.de
  • 24. Domino & React Datenänderungen - Events 03.06.2016 24www.leonso.de
  • 25. Domino & React Datenänderungen - Events 03.06.2016 25www.leonso.de Store
  • 26. Domino & React Datenänderungen - Events 03.06.2016 26www.leonso.de DispatcherStore ActionsComponents (previousState, action) => newState
  • 27. Domino & React Redux  es gibt genau einen Datenspeicher (Store)  State darf nicht geändert werden neuer State = komplette Kopie mit Änderungen  erlaubt Zeitreisen 03.06.2016 27www.leonso.de
  • 29. Domino & React Komponenten in Demo 6/3/2016 29www.leonso.de App Row Prices Price ReservedSeats ReservedSeat Button Seat Theatre Stage
  • 30. Domino & React Entwicklertools  IDE  Atom (frei)  WebStorm  Sublime Text  Visual Studio Code (frei)  ESLint  Syntaxprüfung, Programmierregeln  Babel 03.06.2016 30www.leonso.de
  • 31. Domino & React Entwicklertools  webpack  bündelt Code/CSS/Ressourcen in eine Datei "bundle.js"  npm  Package Manager  Node.js  JavaScript Runtime 03.06.2016 31www.leonso.de
  • 32. Domino & React Entwicklertools  Google Chrome Erweiterung  React  Redux 03.06.2016 32www.leonso.de
  • 33. Domino & React Warum Domino? 03.06.2016 33www.leonso.de
  • 34. Domino & React Domino Datenbank Web-Server (XPages / Java / REST) Sicherheit / Nutzerverwaltung Cluster / Replikation 03.06.2016 34www.leonso.de
  • 35. Domino & React Domino unsere Kunden haben es Alles in einer Datei (.nsf) 03.06.2016 35www.leonso.de
  • 36. Domino & React React und mehr? 03.06.2016 36www.leonso.de
  • 37. Domino & React React Router hält UI mit der URL synchron 03.06.2016 37www.leonso.de
  • 38. Domino & React React Bootstrap Bootstrap-Komponenten so einfach zu nutzen wie eigene Buttons, Dialogboxen, Navigation, Seitenlayout, Forms, … 03.06.2016 38www.leonso.de
  • 39. Domino & React React Native iOS & Android nutzt native Komponenten einmal lernen, überall schreiben 85-90% gemeinsamer Code 03.06.2016 39www.leonso.de
  • 40. Domino & React Relay nutzt GraphQL erforderliche Daten nur deklarieren aggregierte Serveranfragen automatische Datensynchronisation optimistische Datenänderung 03.06.2016 40www.leonso.de
  • 41. Domino & React 03.06.2016 41www.leonso.de Domino Server XPages Browser Java Gefunden: React & Co. Daten Code
  • 42. Domino & React 03.06.2016 42www.leonso.de Nutzen  klare Trennung von Client und Server Code  optimale Entwicklungsumgebung für Client UI  Wiederverwendbare Komponenten  Hohe Performance
  • 43. Domino & React Fragen? – jetzt … … oder später  E-Mail: knut.herrmann@leonso.de  Twitter: @KnutHerrmann  Skype: knut.herrmann 03.06.2016 43www.leonso.de
  • 44. Domino & React Quellen:  Bilder zum virtuellem DOM: http://teropa.info/blog/2015/03/02/change-and-its-detection-in-javascript-frameworks.html 03.06.2016 44www.leonso.de