Slide 1

Slide 1 text

Marco Frodl @marcofrodl [email protected] SPA-Framework-Ratatouille: Angular, React und Co. im gleichen Projekt WebTechCon 2016 Manuel Rauber @manuelrauber [email protected]

Slide 2

Slide 2 text

SPA-Framework-Ratatouille: Angular, React und Co. im gleichen Projekt Womit wir euch Appetit machen wollen Was ihr erwarten dürft • Single-Page Application in the wild • Kunden-Retrospektive • Praktisches Fallbeispiel • Wie “kocht” Thinktecture? • Alle Insides als OpenSource Was euch nicht erwartet • Keine reine Coding-Session • Kein fertiges Gericht zum Mitnehmen • Kein allgemeingültiges Rezept Was kommt heute auf den Tisch?

Slide 3

Slide 3 text

SPA-Framework-Ratatouille: Angular, React und Co. im gleichen Projekt Eure Köche heute Manuel Rauber [email protected] @manuelrauber Marco Frodl [email protected] @marcofrodl “Bei gutem Essen muss alles perfekt zusammen passen.” “Essen stelle ich nach Lust und Laune zusammen.”

Slide 4

Slide 4 text

SPA-Framework-Ratatouille: Angular, React und Co. im gleichen Projekt Landwirtschaftlicher Versicherungsverein Münster a. G. Fallbeispiel LVM-Versicherung

Slide 5

Slide 5 text

SPA-Framework-Ratatouille: Angular, React und Co. im gleichen Projekt Architekturen im Wandel der Zeit • Akquise-& Verwaltungssystem aus 2000 • Frontend und Backend in Java => Sticky version • View-only Thin-Client => eingeschränkte Interaktivität/Speed • Befüllung und Interaktion auf Server => Roundtrip-Time => Online only • monolithisches System => one build to rule them all • starke Abhängigkeiten bei Dev-Teams Quelle: http://lvm-it.github.io/index_de.html Aktuelle Herausforderungen der LVM Quelle: https://www.lvm.de/medien/web/31917/s,x,1024/innovation.jpg

Slide 6

Slide 6 text

SPA-Framework-Ratatouille: Angular, React und Co. im gleichen Projekt So kochen Entwickler in Versicherungen Sparten-Denken Leben Kranken Unfall Haftpflicht Recht Kraftfahrt ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! QA & Deployment ! ! !

Slide 7

Slide 7 text

SPA-Framework-Ratatouille: Angular, React und Co. im gleichen Projekt Wir suchen geeignete Alternativen zum aktuellen Frontend. Dabei wurde der Fokus auf browserbasierte Ansätze gelegt, da desktopbasierte native Bibliotheken zukünftige Plattformwechsel erschweren würden. — LVM IT auf GitHub

Slide 8

Slide 8 text

SPA-Framework-Ratatouille: Angular, React und Co. im gleichen Projekt • UserExperience • Integrationsfähigkeit • Browserfunktionalität • Entwicklerproduktivität • Langlebigkeit • Testbarkeit • Modularisierung • Anpassbarkeit • Mobilfähigkeit Quelle: https://github.com/LVM-IT/spa-prototype/blob/master/docs/readme.md Anforderungen an die neue Lösung HTML5+CSS3 Touchoptimiert, Flexibel und Responsive SPA-Framework Schnelle Interaktionen, Cross-Platform JavaScript Single Codebase Web und App Real Cross-Platform, Web, Mobiles, Desktop TypeScript Typsicherheit, Umsteigerfreundlich Komponenten Wiederverwendung, zentrale Entwicklung

Slide 9

Slide 9 text

SPA-Framework-Ratatouille: Angular, React und Co. im gleichen Projekt • UserExperience • Integrationsfähigkeit • Browserfunktionalität • Entwicklerproduktivität • Langlebigkeit • Testbarkeit • Modularisierung • Anpassbarkeit • Mobilfähigkeit Quelle: https://github.com/LVM-IT/spa-prototype/blob/master/docs/readme.md Anforderungen an die neue Lösung HTML5+CSS3 Touchoptimiert, Flexibel und Responsive SPA-Framework Schnelle Interaktionen, Cross-Platform JavaScript Single Codebase Web und App Real Cross-Platform, Web, Mobiles, Desktop TypeScript Typsicherheit, Umsteigerfreundlich Komponenten Wiederverwendung, zentrale Entwicklung

Slide 10

Slide 10 text

SPA-Framework-Ratatouille: Angular, React und Co. im gleichen Projekt HTML5: Ein Gruß aus der Küche

Slide 11

Slide 11 text

SPA-Framework-Ratatouille: Angular, React und Co. im gleichen Projekt Kochduell Welches SPA-Framework? VS

Slide 12

Slide 12 text

SPA-Framework-Ratatouille: Angular, React und Co. im gleichen Projekt Welches SPA-Framework? Stellen wir die richtige Frage?

Slide 13

Slide 13 text

SPA-Framework-Ratatouille: Angular, React und Co. im gleichen Projekt Ein Framework für alle? Leben Kranken Unfall Haftpflicht Recht Kraftfahrt ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! QA & Deployment ! ! !

Slide 14

Slide 14 text

Leben Kranken Unfall Haftpflicht Recht Kraftfahrt QA & Deployment SPA-Framework-Ratatouille: Angular, React und Co. im gleichen Projekt Jeder Bereich mit seinem Framework ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

Slide 15

Slide 15 text

SPA-Framework-Ratatouille: Angular, React und Co. im gleichen Projekt Welche Version nehmen wir?

Slide 16

Slide 16 text

SPA-Framework-Ratatouille: Angular, React und Co. im gleichen Projekt Einmal All-you-can-eat bitte! Wunschszenario Ein Team – ein Framework Eine Zielanwendung Ein Framework – mehrere Versionen Keinen Updatezwang Modulares Deployment Wiederverwendbare Komponenten

Slide 17

Slide 17 text

SPA-Framework-Ratatouille: Angular, React und Co. im gleichen Projekt Einmal All-you-can-eat bitte! Wunschszenario Ein Team – ein Framework Eine Zielanwendung Ein Framework – mehrere Versionen Keinen Updatezwang Modulares Deployment Wiederverwendbare Komponenten

Slide 18

Slide 18 text

SPA-Framework-Ratatouille: Angular, React und Co. im gleichen Projekt Wie Hund und Katze SPA-Frameworks mischen Realität Vorstellung

Slide 19

Slide 19 text

SPA-Framework-Ratatouille: Angular, React und Co. im gleichen Projekt Separation durch Shadow DOM Shadow DOM provides encapsulation for the JavaScript, CSS and templating in a Web Component. Shadow DOM makes it so these things remain separate from the DOM of the main document. You can also use Shadow DOM by itself, outside of a web component. — Mozilla Developer Network

Slide 20

Slide 20 text

SPA-Framework-Ratatouille: Angular, React und Co. im gleichen Projekt Separation durch Shadow DOM

Slide 21

Slide 21 text

SPA-Framework-Ratatouille: Angular, React und Co. im gleichen Projekt Separation durch iFrames Wie wir uns an iFrames erinnern… DEMO Wie iFrames heute sind https://github.com/thinktecture/spa- framework-ratatouille/tree/master/demo-1

Slide 22

Slide 22 text

SPA-Framework-Ratatouille: Angular, React und Co. im gleichen Projekt Daten und Events übertragen Rede mit mir… Ich muss Dir was sagen Website iFrame Button wurde geklickt Verarbeitet, danke! Website iFrame

Slide 23

Slide 23 text

SPA-Framework-Ratatouille: Angular, React und Co. im gleichen Projekt Datenaustausch mit PostMessages

Slide 24

Slide 24 text

SPA-Framework-Ratatouille: Angular, React und Co. im gleichen Projekt Datenaustausch mit PostMessages DEMO https://github.com/thinktecture/spa-framework-ratatouille/tree/master/demo-2

Slide 25

Slide 25 text

SPA-Framework-Ratatouille: Angular, React und Co. im gleichen Projekt Kappselung und Wiederverwendbarkeit Komponentengedanke Website iFrame Komponente Website iFrame Komponente als iFrame

Slide 26

Slide 26 text

SPA-Framework-Ratatouille: Angular, React und Co. im gleichen Projekt Kappselung und Wiederverwendbarkeit Komponentengedanke DEMO https://github.com/thinktecture/spa-framework-ratatouille/tree/master/demo-3

Slide 27

Slide 27 text

SPA-Framework-Ratatouille: Angular, React und Co. im gleichen Projekt Einmal All-you-can-eat bitte! Wunschszenario Ein Team – ein Framework Eine Zielanwendung Ein Framework – mehrere Versionen Keinen Updatezwang Modulares Deployment Wiederverwendbare Komponenten " " " "

Slide 28

Slide 28 text

SPA-Framework-Ratatouille: Angular, React und Co. im gleichen Projekt Einmal All-you-can-eat bitte! Wunschszenario Ein Team – ein Framework Eine Zielanwendung Ein Framework – mehrere Versionen Keinen Updatezwang Modulares Deployment Wiederverwendbare Komponenten " " " "

Slide 29

Slide 29 text

SPA-Framework-Ratatouille: Angular, React und Co. im gleichen Projekt Zielanwendung mit modularem Deployment Zielanwendung https://crm.schreck24.ag PostMessage-Interfaces Vertragsdaten https://vertrag.schreck24 PostMessage-Interfaces Kundenverwaltung https://kunde.schreck24 PostMessage-Interfaces Komponenten https://shared.schreck24 PostMessage-Interfaces !

Slide 30

Slide 30 text

SPA-Framework-Ratatouille: Angular, React und Co. im gleichen Projekt Einmal All-you-can-eat bitte! Wunschszenario Ein Team – ein Framework Eine Zielanwendung Ein Framework – mehrere Versionen Keinen Updatezwang Modulares Deployment Wiederverwendbare Komponenten " " " " " "

Slide 31

Slide 31 text

SPA-Framework-Ratatouille: Angular, React und Co. im gleichen Projekt Alles in einer App Written with Angular 2 Written with Angular 1.5 Written with Angular 1.5 and independent from the surrounding App Zone (reusable)

Slide 32

Slide 32 text

SPA-Framework-Ratatouille: Angular, React und Co. im gleichen Projekt Alles in einer App DEMO https://github.com/LVM-IT/spa-prototype

Slide 33

Slide 33 text

SPA-Framework-Ratatouille: Angular, React und Co. im gleichen Projekt Oder: Zutaten, die noch nicht im Kochtopf sind • Optimierung der iFrame-Ladezeiten durch • iFrame-Caching und • iFrame-Reusing • Cross-iFrame Touchinteraktionen • Multi-Window, Multi-Monitor • Automatische Schnittstellengenerierung auf Basis von Modellen Ausblick

Slide 34

Slide 34 text

Danke! Fragen? Repositories https://github.com/thinktecture/spa-framework-ratatouille https://lvm-it.github.io/index_de.html https://github.com/LVM-IT/spa-prototype Kontakt: @manuelrauber @marcofrodl