Slide 1

Slide 1 text

Full-stack development is dead, Long live full-stack development! Simon Martinelli @simas_ch martinelli.ch

Slide 2

Slide 2 text

About me 1972 1995 2000 2007 2009 2011 2012 2013 2021 2022 COBOL JSR-352 Java Batch JSR-354 Money/Currency

Slide 3

Slide 3 text

History

Slide 4

Slide 4 text

Client/Server

Slide 5

Slide 5 text

Layered Architecture Presentation Layer Business Layer Persistence Layer

Slide 6

Slide 6 text

J2EE

Slide 7

Slide 7 text

Some Java UI Frameworks

Slide 8

Slide 8 text

History Repeats Client Server

Slide 9

Slide 9 text

Simon's Selection Full-Stack Web Frameworks for Java Developers

Slide 10

Slide 10 text

Browser Server HTML Page Vaadin Flow Custom SPA Controller Endpoint Business Logic and Data Access UI Logic

Slide 11

Slide 11 text

Thymeleaf Vaadin Hilla Programming Model • Server-side rendering of HTML Templates • Dynamic with HTMX • Server-side Java Component model • Rendering on client-side • Client-side TypeScript • Backend Java Skills required • Java • HTML/CSS • Java • Java • TS/JS API • REST for HTMX • Generated from Java Endpoints Components • HTML • Rich Webcomponents • Rich Webcomponents Build • Maven/Gradle • Maven/Gradle • (npm) • Maven/Gradle • (npm) Server State • Maybe • Yes • No Security • Server • Server (and Client) • Client and Server Characteristics

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

I would use… • Vaadin • If you are a Java developer • If you develop business applications • Hilla • If the application has a lot of client interaction • If you want to use Browser APIs • If you already have frontend developers with JS/TS, React or Lit know-how • Thymeleaf • If you want full control over the HTML code • If you want to take advantage of SSR (SEO, No JavaScript, Cache)

Slide 14

Slide 14 text

Thank you! • Try it yourself https://github.com/simasch/fullstack-is-dead • Get in touch https://martinelli.ch