Slide 1

Slide 1 text

RETURN OF THE MONOLITH

Slide 2

Slide 2 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. Sergio del Amo https://sergiodelamo.com @sdelamo Member of the Micronaut Foundation Board of Directors Micronaut Lead Engineer at Object Computing Inc. Micronaut Developer Advocate Involved with Micronaut since its inception. Micronaut Core committer. Micronaut Guides. Micronaut Starter, Security, AWS, Views, RSS, Problem+JSON, Email, 2

Slide 3

Slide 3 text

THANK YOU TO OUR SPONSORS

Slide 4

Slide 4 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. 4 FREEDOM

Slide 5

Slide 5 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. 5 OBJECTIVE-C SWIFT

Slide 6

Slide 6 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. 6 JAVA KOTLIN

Slide 7

Slide 7 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. 7 RUBY WEB PYTHON GROOVY JAVA SCALA PHP KOTLIN GO RUST C#

Slide 8

Slide 8 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. 8 HELIDON WEB MICRONAUT SPRING KTOR GRAILS QUARKUS

Slide 9

Slide 9 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. 9 RUBY WEB PYTHON GROOVY JAVA SCALA PHP KOTLIN GO RUST C# JAVASCRIPT

Slide 10

Slide 10 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. 10 WEB 👩💻👨💻👩💻 👨💻👩💻 👩💻👨💻👩💻 👨💻👩💻 👩💻👨💻👩💻 👩💻👨💻👩💻 👩💻👨💻👩💻

Slide 11

Slide 11 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. 11 WEB 👨💻👩💻 👨💻👩💻 👩💻👨💻👩💻 👩💻👨💻👩💻

Slide 12

Slide 12 text

Copyright © 2022 by Object Computing, Inc. (OCI). All rights reserved. 12 Server-side rendered HTML Language: Java, Apache Groovy Backend build: Maven Gradle Backend framework: SpringBoot Grails Test Framework: JUnit Spock UI Testing: Selenium Geb Template Engines: e.g. Thymleaf Lightweight JS library (e.g. JQuery) for small animations. Traditional Approach JSON API Backend Languages: Java, Groovy, Kotlin Backend build: Maven Gradle Backend framework: Micronaut SpringBoot Quarkus Helidon Test Framework: JUnit Spock Frontend languages: Javascript, Typescript Frontend framework: Vue.js React Angular Front end build: npm, Webpack Front end testing: cypress JS Front End / JVM Backend

Slide 13

Slide 13 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. 13 JS Front End / JVM Backend Traditional Approach vs ❌ MIRRORED LOGIC

Slide 14

Slide 14 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. 14 JS Front End / JVM Backend Traditional Approach vs ❌ MORE COMPLEX

Slide 15

Slide 15 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. 15 JS Front End / JVM Backend Traditional Approach vs ❌ MORE DEVELOPERS

Slide 16

Slide 16 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. 16 JS Front End / JVM Backend Traditional Approach vs ❌ MORE MONEY

Slide 17

Slide 17 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. 17 JS Front End / JVM Backend Traditional Approach vs ✅ SPEED OF NAVIGATION NOT CONSTANTLY TEARING DOWN THE APPLICATION PROCESS ONLY TO REINITIALISE IT ON THE VERY NEXT PAGE

Slide 18

Slide 18 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. 18 JAVASCRIPT SERVER SIDE RENDERING TRANSPILERS

Slide 19

Slide 19 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. 19 JAVASCRIPT SERVER SIDE RENDERING BETTER BROWSER IMPLEMENTATION

Slide 20

Slide 20 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. 20 JAVASCRIPT SERVER SIDE RENDERING ES6 TYPESCRIPT

Slide 21

Slide 21 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. 21 JS Front End / JVM Backend Traditional Approach vs Hotwire / Backend vs

Slide 22

Slide 22 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. 22 Hotwire HTML Over the wire REAL LIFE EXAMPLES

Slide 23

Slide 23 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. 23 SIMPLER MORE PRODUCTIVE DEVELOPMENT EXPERIENCE

Slide 24

Slide 24 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. 24 RENDERING SHOULD HAPPEN ONCE FOR ONE SET OF TEMPLATES

Slide 25

Slide 25 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. 25 SIMPLER ALTERNATIVE TO CLIENT-SIDE FRAMEWORKS

Slide 26

Slide 26 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. 26 NO LONGER MIRRORING LOGIC ON BOTH SIDES OF A JSON DIVIDE

Slide 27

Slide 27 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. 27 SIMPLER CONTROL FLOW

Slide 28

Slide 28 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. 28 YOU DON’T NEED TO SERIALISE THE NEW MESSAGE AS JSON, RECEIVE IT IN JAVASCRIPT, RENDER A CLIENT-SIDE TEMPLATE

Slide 29

Slide 29 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. 29 Hotwire +

Slide 30

Slide 30 text

Copyright © 2022 by Object Computing, Inc. (OCI). All rights reserved. Micronaut Views 30 TEMPLATE RENDERING ON THE SERVER Pebble Rocker Soy Freemarker

Slide 31

Slide 31 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. 31 DRIVE

Slide 32

Slide 32 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. Click Link ❖ Prevents the browser from following it ❖ Changes the browser’s URL using the History API ❖ Request the new page using fetch ❖ Renders the HTML Response ‣ Replaces the element ‣ Merges the element ‣ Javascript window and document, and the persist. 32 DRIVE Intercepts all links to same domain

Slide 33

Slide 33 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. Form submission ❖ Set the “submitter” element’s disabled attribute when the submission begins ❖ Remove the attribute after the submission ends ❖ After a stateful request from a form submission, Turbo Drive expects the server to return an HTTP 303 redirect response, which it will then follow and use to navigate and update the page without reloading 33 DRIVE

Slide 34

Slide 34 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. 34 DRIVE DEMO

Slide 35

Slide 35 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. 35 @TurboFrameView MICRONAUT

Slide 36

Slide 36 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. 36 FRAMES

Slide 37

Slide 37 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. 37 FRAMES EFFICIENT CACHING

Slide 38

Slide 38 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. 38 FRAMES PARALLELISED EXECUTION

Slide 39

Slide 39 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. 39 FRAMES READY FOR MOBILE

Slide 40

Slide 40 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. 40 STREAMS

Slide 41

Slide 41 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. STREAMS ACTIONS ❖ append ❖ prepend ❖ replaces ❖ update ❖ remove ❖ before ❖ after 41

Slide 42

Slide 42 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. STREAMS ACTIONS 42 NOT POSSIBLE TO CALL CUSTOM JAVASCRIPT FUNCTIONS AS PART OF TURBO STREAMS ACTION

Slide 43

Slide 43 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. 43 MICRONAUT

Slide 44

Slide 44 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. STREAMS 44 WEBSOCKETS / SSE

Slide 45

Slide 45 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. 45 NATIVE

Slide 46

Slide 46 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. 📖 Guide: Build with the Micronaut Framework a chat application such as the Rails application demonstrated in the Hotwire announcement screencast. Micronaut Turbo Resources ❖ https://guides.micronaut.io/latest/hotwire-turbo-micronaut-chat.html 46 📖 Guide: Run the Turbo Native Demo with a Micronaut application as the backend. ❖ https://guides.micronaut.io/latest/micronaut-turbo-native.html 📃 Micronaut Views Turbo ❖ https://micronaut-projects.github.io/micronaut-views/latest/guide/#turbo 📃 Turbo ❖ https://turbo.hotwired.dev/ 📼 Hotwire Turbo Chat with the Micronaut Framework ❖ https://www.youtube.com/watch?v=Fas3Scyk9Ps 📼 Turbo Native iOS demo with the Micronaut Framework ❖ https://www.youtube.com/watch?v=ZyEdv_xQTK4 📼 Turbo Native Android demo with the Micronaut Framework ❖ https://www.youtube.com/watch?v=zgRRlp0779A

Slide 47

Slide 47 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. Q & A 47

Slide 48

Slide 48 text

Copyright © 2021 by Object Computing, Inc. (OCI). All rights reserved. Micronaut Resources ❖ https://launch.micronaut.io ❖ https://micronaut.io/docs ❖ https://guides.micronaut.io ❖ https://micronautpodcast.com ❖ https://gitter.im/micronautfw ❖ https://twitter.com/micronautfw ❖ https://micronaut.io/blog ❖ https://micronaut.io/category/webinar ❖ https://micronaut.io/resources/community-support ❖ https://github.com/micronaut-projects ❖ https://micronaut.io/foundation ❖ https://micronaut.io/commercial-support ❖ https://objectcomputing.com/products/micronautsolutions 48