<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/https/speakerdeck.com/feed.rss.xml" type="text/xsl" media="screen"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Simon Martinelli</title>
    <description>Simon Martinelli is a Java Champion, Vaadin Champion, and Oracle ACE Pro, with over three decades of experience as a software architect, developer, consultant, and trainer. As the owner of Martinelli LLC, he specializes in optimizing full-stack development with Java and has a deep focus on modern architectures and distributed systems.

He frequently shares his expertise by speaking at international conferences, writing articles, and maintaining his blog: https://martinelli.ch.
His passion for teaching is reflected in his work as a lecturer at the Bern University of Applied Sciences BFH and the University of Applied Sciences Northwestern Switzerland FHNW, where he teaches courses on modern architecture, distributed systems, persistence technologies, and DevOps.</description>
    <link>https://speakerdeck.com/simas</link>
    <atom:link rel="self" type="application/rss+xml" href="https://speakerdeck.com/simas.rss"/>
    <lastBuildDate>2022-11-09 12:52:24 -0500</lastBuildDate>
    <item>
      <title>Lessons from Spec-Driven Development</title>
      <description>In many projects, specifications and code drift apart over time. Requirements change, documentation becomes outdated, and developers rely mainly on the code. This increases risk and makes changes harder, especially in long-living business applications.
This talk presents the AI Unified Process, a spec-driven approach where system use cases are the central artifact. A system use case describes observable system behavior and acts as a stable contract for the application. Code is derived from these use cases instead of treating the code itself as the source of truth.
AI is used as a supporting tool to generate and update code and tests from system use cases in small, controlled steps. The focus is not on full regeneration, but on keeping existing code and specifications aligned over time.
 Using concrete examples, the talk shows how backend logic, database access, and UI behavior can evolve together. It also explains when code is generated, when it is updated, and how version control and reviews help keep changes small and understandable.
The session shares concrete workflows and lessons learned from three customer projects, including limitations and trade-offs of using AI in this way.
</description>
      <media:content url="https://files.speakerdeck.com/presentations/deb2f540e4004810aecf243ee4d07599/preview_slide_0.jpg?39584244" type="image/jpeg" medium="image"/>
      <content:encoded>In many projects, specifications and code drift apart over time. Requirements change, documentation becomes outdated, and developers rely mainly on the code. This increases risk and makes changes harder, especially in long-living business applications.
This talk presents the AI Unified Process, a spec-driven approach where system use cases are the central artifact. A system use case describes observable system behavior and acts as a stable contract for the application. Code is derived from these use cases instead of treating the code itself as the source of truth.
AI is used as a supporting tool to generate and update code and tests from system use cases in small, controlled steps. The focus is not on full regeneration, but on keeping existing code and specifications aligned over time.
 Using concrete examples, the talk shows how backend logic, database access, and UI behavior can evolve together. It also explains when code is generated, when it is updated, and how version control and reviews help keep changes small and understandable.
The session shares concrete workflows and lessons learned from three customer projects, including limitations and trade-offs of using AI in this way.
</content:encoded>
      <pubDate>Mon, 01 Jun 2026 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/simas/lessons-from-spec-driven-development</link>
      <guid>https://speakerdeck.com/simas/lessons-from-spec-driven-development</guid>
    </item>
    <item>
      <title>Spec-driven Development: How AI Changes Everything (And Nothing)</title>
      <description>AI makes coding faster, but we’re still stuck with the same old problem: code becomes the source of truth. What if we flipped this around?

This talk shows a new way to build software: the AI Unified Process. Write your requirements once. Let AI generate everything else - diagrams, models, code, and tests. When requirements change, everything updates automatically. No more outdated docs.

You’ll see how to write requirements that AI understands and keep everything connected from business needs to working code. Based on a real-world project, we will see how this works in practice.

This isn’t about replacing developers. It’s about letting AI handle the boring stuff so we can focus on what matters - understanding what the business needs.

Source code: https://github.com/simasch/aiup-petclinic</description>
      <media:content url="https://files.speakerdeck.com/presentations/5c64ab32989744f19732fe2d56a801ed/preview_slide_0.jpg?39260385" type="image/jpeg" medium="image"/>
      <content:encoded>AI makes coding faster, but we’re still stuck with the same old problem: code becomes the source of truth. What if we flipped this around?

This talk shows a new way to build software: the AI Unified Process. Write your requirements once. Let AI generate everything else - diagrams, models, code, and tests. When requirements change, everything updates automatically. No more outdated docs.

You’ll see how to write requirements that AI understands and keep everything connected from business needs to working code. Based on a real-world project, we will see how this works in practice.

This isn’t about replacing developers. It’s about letting AI handle the boring stuff so we can focus on what matters - understanding what the business needs.

Source code: https://github.com/simasch/aiup-petclinic</content:encoded>
      <pubDate>Sun, 12 Apr 2026 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/simas/spec-driven-development-how-ai-changes-everything-and-nothing</link>
      <guid>https://speakerdeck.com/simas/spec-driven-development-how-ai-changes-everything-and-nothing</guid>
    </item>
    <item>
      <title>Spec-Driven Development with AI: From Use Case to Running Java Code</title>
      <description>Join this JavaOne Hack Haus session to collaboratively create a system use case, use AI to generate a full-stack Java application, and evolve the features live by changing the specification, all by demonstrating how to keep code and tests in sync and reduce hallucinations with strong guardrails. The hack session can be done with any AI agent, and we can compare the outcomes.

https://github.com/simasch/javaone-feedback</description>
      <media:content url="https://files.speakerdeck.com/presentations/dc62f882b8be476fbf33c4c3b7afc6cf/preview_slide_0.jpg?38764433" type="image/jpeg" medium="image"/>
      <content:encoded>Join this JavaOne Hack Haus session to collaboratively create a system use case, use AI to generate a full-stack Java application, and evolve the features live by changing the specification, all by demonstrating how to keep code and tests in sync and reduce hallucinations with strong guardrails. The hack session can be done with any AI agent, and we can compare the outcomes.

https://github.com/simasch/javaone-feedback</content:encoded>
      <pubDate>Tue, 17 Mar 2026 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/simas/spec-driven-development-with-ai-from-use-case-to-running-java-code</link>
      <guid>https://speakerdeck.com/simas/spec-driven-development-with-ai-from-use-case-to-running-java-code</guid>
    </item>
    <item>
      <title>Null Safety in Java: JSpecify in Action</title>
      <description>NullPointerExceptions are among the most common errors in Java applications. JSpecify now offers a standardized approach to clearly document nullability in Java code and verify it through static analysis. Open-source projects like Spring Boot have begun extending their code with JSpecify.

In this presentation, I'll demonstrate how I successfully implement JSpecify in all new client projects.

First, we'll look at what JSpecify is and how it differs from other nullability annotations like JetBrains' @Nullable or JSR-305.

Then we'll move on to practical application. I'll show you how to configure JSpecify in a Spring Boot project and how to integrate it with Maven, NullAway, ErrorProne, and IntelliJ.

We'll also discuss how to migrate existing projects to greater null safety step by step and which typical pitfalls to avoid.

This presentation is aimed at Java developers who want to improve their code quality. Basic knowledge of Spring Boot is helpful, but not required.

After this presentation, you'll be able to use JSpecify in your own projects and know what to look out for.</description>
      <media:content url="https://files.speakerdeck.com/presentations/bbb39237691447baad367030a9771ab3/preview_slide_0.jpg?38316624" type="image/jpeg" medium="image"/>
      <content:encoded>NullPointerExceptions are among the most common errors in Java applications. JSpecify now offers a standardized approach to clearly document nullability in Java code and verify it through static analysis. Open-source projects like Spring Boot have begun extending their code with JSpecify.

In this presentation, I'll demonstrate how I successfully implement JSpecify in all new client projects.

First, we'll look at what JSpecify is and how it differs from other nullability annotations like JetBrains' @Nullable or JSR-305.

Then we'll move on to practical application. I'll show you how to configure JSpecify in a Spring Boot project and how to integrate it with Maven, NullAway, ErrorProne, and IntelliJ.

We'll also discuss how to migrate existing projects to greater null safety step by step and which typical pitfalls to avoid.

This presentation is aimed at Java developers who want to improve their code quality. Basic knowledge of Spring Boot is helpful, but not required.

After this presentation, you'll be able to use JSpecify in your own projects and know what to look out for.</content:encoded>
      <pubDate>Thu, 05 Feb 2026 00:00:00 -0500</pubDate>
      <link>https://speakerdeck.com/simas/null-safety-in-java-jspecify-in-action</link>
      <guid>https://speakerdeck.com/simas/null-safety-in-java-jspecify-in-action</guid>
    </item>
    <item>
      <title>Spec-driven Development: How AI Changed Everything (And Nothing)</title>
      <description>AI makes coding faster, but we're still stuck with the same old problem: code becomes the source of truth. What if we flipped this around?

This talk shows a new way to build software: the AI Unified Process https://aiup.dev. Write your requirements once. Let AI generate everything else - diagrams, models, code, and tests. When requirements change, everything updates automatically. No more outdated docs.
You'll see how to write requirements that AI understands and keep everything connected from business needs to working code. Based on a real-world project, we will see how this works in practice.

This isn't about replacing developers. It's about letting AI handle the boring stuff so we can focus on what matters - understanding what the business needs.</description>
      <media:content url="https://files.speakerdeck.com/presentations/1d31e8ebf574445280a0ff62b658aceb/preview_slide_0.jpg?38867425" type="image/jpeg" medium="image"/>
      <content:encoded>AI makes coding faster, but we're still stuck with the same old problem: code becomes the source of truth. What if we flipped this around?

This talk shows a new way to build software: the AI Unified Process https://aiup.dev. Write your requirements once. Let AI generate everything else - diagrams, models, code, and tests. When requirements change, everything updates automatically. No more outdated docs.
You'll see how to write requirements that AI understands and keep everything connected from business needs to working code. Based on a real-world project, we will see how this works in practice.

This isn't about replacing developers. It's about letting AI handle the boring stuff so we can focus on what matters - understanding what the business needs.</content:encoded>
      <pubDate>Sun, 28 Sep 2025 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/simas/spec-driven-development</link>
      <guid>https://speakerdeck.com/simas/spec-driven-development</guid>
    </item>
    <item>
      <title>Return of the Full-Stack Developer</title>
      <description>Full-stack development, where one developer works on both the front-end and back-end of an application, is becoming popular again. In this talk, I will explain why full-stack development is important today and the benefits it brings to modern projects. I will focus on how Java developers can use frameworks like Vaadin, Spring Boot with JTE, Quarkus with Qute and HTMX, and JSF to build complete web applications quickly and easily. Whether you are an experienced Java developer or just starting with full-stack development, this session will give you practical tips and examples to help you be more productive.

The source code can be found here: https://github.com/simasch/full-stack</description>
      <media:content url="https://files.speakerdeck.com/presentations/35255f338d7649529d66b246a1d6bcdd/preview_slide_0.jpg?37239019" type="image/jpeg" medium="image"/>
      <content:encoded>Full-stack development, where one developer works on both the front-end and back-end of an application, is becoming popular again. In this talk, I will explain why full-stack development is important today and the benefits it brings to modern projects. I will focus on how Java developers can use frameworks like Vaadin, Spring Boot with JTE, Quarkus with Qute and HTMX, and JSF to build complete web applications quickly and easily. Whether you are an experienced Java developer or just starting with full-stack development, this session will give you practical tips and examples to help you be more productive.

The source code can be found here: https://github.com/simasch/full-stack</content:encoded>
      <pubDate>Wed, 19 Mar 2025 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/simas/return-of-the-full-stack-developer</link>
      <guid>https://speakerdeck.com/simas/return-of-the-full-stack-developer</guid>
    </item>
    <item>
      <title>Goodbye Microservices, Hello Self-Contained Systems</title>
      <description>Microservices are a popular approach to building modern software, offering scalability and flexibility. But for many teams, they come with challenges like increased complexity, difficult debugging, and managing too many small services.

In this talk, we'll introduce an alternative: Self-Contained Systems (SCS). Unlike microservices, SCS allows each part of your application to operate independently with its UI, logic, and database, simplifying both development and deployment.

You'll learn why SCS can be a better fit for many projects, how it reduces the complexity of distributed systems, and when it makes sense to use this approach over microservices. We'll also dive into real-world examples that show you how to build self-contained systems using Java and Vaadin.

If you're ready to rethink your architecture and say goodbye to microservice headaches, this talk will show you the way!</description>
      <media:content url="https://files.speakerdeck.com/presentations/751a2e42c5b745688a894cd7b4342534/preview_slide_0.jpg?39458562" type="image/jpeg" medium="image"/>
      <content:encoded>Microservices are a popular approach to building modern software, offering scalability and flexibility. But for many teams, they come with challenges like increased complexity, difficult debugging, and managing too many small services.

In this talk, we'll introduce an alternative: Self-Contained Systems (SCS). Unlike microservices, SCS allows each part of your application to operate independently with its UI, logic, and database, simplifying both development and deployment.

You'll learn why SCS can be a better fit for many projects, how it reduces the complexity of distributed systems, and when it makes sense to use this approach over microservices. We'll also dive into real-world examples that show you how to build self-contained systems using Java and Vaadin.

If you're ready to rethink your architecture and say goodbye to microservice headaches, this talk will show you the way!</content:encoded>
      <pubDate>Tue, 04 Feb 2025 00:00:00 -0500</pubDate>
      <link>https://speakerdeck.com/simas/goodbye-microservices-hello-self-contained-systems</link>
      <guid>https://speakerdeck.com/simas/goodbye-microservices-hello-self-contained-systems</guid>
    </item>
    <item>
      <title>You May Not Need JavaScript</title>
      <description>Single page applications (SPA) have become the for web application development. Angular, React, Vue.js and Ember.js are the best known representatives from this category of web frameworks. But does this client architecture fit every application? Or are there alternatives that may fit better and are less complex to develop?

In the first part of the talk, the differences between SPAs and classic, server-side approaches are explained and the advantages and disadvantages are discussed.

The second part reports on a current customer project in which the front end of a large ERP system had to be replaced by a modern web front end. The chosen framework is Vaadin Flow, a server-side web framework that makes development of web applications entirely in Java possible.</description>
      <media:content url="https://files.speakerdeck.com/presentations/74b5d6b1a8b740d6b1cd4cb30a12b95a/preview_slide_0.jpg?33476644" type="image/jpeg" medium="image"/>
      <content:encoded>Single page applications (SPA) have become the for web application development. Angular, React, Vue.js and Ember.js are the best known representatives from this category of web frameworks. But does this client architecture fit every application? Or are there alternatives that may fit better and are less complex to develop?

In the first part of the talk, the differences between SPAs and classic, server-side approaches are explained and the advantages and disadvantages are discussed.

The second part reports on a current customer project in which the front end of a large ERP system had to be replaced by a modern web front end. The chosen framework is Vaadin Flow, a server-side web framework that makes development of web applications entirely in Java possible.</content:encoded>
      <pubDate>Sat, 18 Jan 2025 00:00:00 -0500</pubDate>
      <link>https://speakerdeck.com/simas/you-may-not-need-javascript-abc09a83-bb78-4d62-8fa0-109c993736ac</link>
      <guid>https://speakerdeck.com/simas/you-may-not-need-javascript-abc09a83-bb78-4d62-8fa0-109c993736ac</guid>
    </item>
    <item>
      <title>CQRS meets modern Java</title>
      <description>Command Query Responsibility Segregation (CQRS) is a proven design pattern that enables the clear separation of data changes (commands) and data queries (queries). This separation allows these responsibilities to be scaled and optimized independently. The application code is also structured more understandably, which improves maintainability.

This talk will deepen our understanding of the practical implementation of the CQRS principles using modern Java language features such as records, sealed classes, switch expressions, and pattern matching. An example application will demonstrate how the theoretical foundations of CQRS can be applied in practice and how this affects application design while increasing data access efficiency.</description>
      <media:content url="https://files.speakerdeck.com/presentations/6d11c9527263465fa4583e69edd5f62b/preview_slide_0.jpg?34547443" type="image/jpeg" medium="image"/>
      <content:encoded>Command Query Responsibility Segregation (CQRS) is a proven design pattern that enables the clear separation of data changes (commands) and data queries (queries). This separation allows these responsibilities to be scaled and optimized independently. The application code is also structured more understandably, which improves maintainability.

This talk will deepen our understanding of the practical implementation of the CQRS principles using modern Java language features such as records, sealed classes, switch expressions, and pattern matching. An example application will demonstrate how the theoretical foundations of CQRS can be applied in practice and how this affects application design while increasing data access efficiency.</content:encoded>
      <pubDate>Tue, 14 May 2024 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/simas/cqrs-meets-modern-java</link>
      <guid>https://speakerdeck.com/simas/cqrs-meets-modern-java</guid>
    </item>
    <item>
      <title>Full-stack development is dead, long live full-stack development!</title>
      <description>The gap between frontend and backend in web development has widened in recent years. In frontend programming, frameworks such as Angular, React, or Vue.js are predominant, forcing developers to use a different programming language and a different ecosystem.

This has made it more difficult for Java developers to find their way around, and in many projects, frontend and backend developers are separated.

However, it can be beneficial in many ways if a developer can develop both the frontend and backend. But as a Java developer, do I have to get familiar with a whole new ecosystem?

No, there are alternatives!

This talk shows how to develop web applications quickly as a Java full-stack developer. We will compare three variants that suit the Java developer: Thymeleaf with htmx, Vaadin, and Hilla. Based on an example, we look at the advantages and disadvantages to determine which framework is the best choice in which scenario.</description>
      <media:content url="https://files.speakerdeck.com/presentations/d2f8539f8bf14beb9e45a96ff60fad5f/preview_slide_0.jpg?25931495" type="image/jpeg" medium="image"/>
      <content:encoded>The gap between frontend and backend in web development has widened in recent years. In frontend programming, frameworks such as Angular, React, or Vue.js are predominant, forcing developers to use a different programming language and a different ecosystem.

This has made it more difficult for Java developers to find their way around, and in many projects, frontend and backend developers are separated.

However, it can be beneficial in many ways if a developer can develop both the frontend and backend. But as a Java developer, do I have to get familiar with a whole new ecosystem?

No, there are alternatives!

This talk shows how to develop web applications quickly as a Java full-stack developer. We will compare three variants that suit the Java developer: Thymeleaf with htmx, Vaadin, and Hilla. Based on an example, we look at the advantages and disadvantages to determine which framework is the best choice in which scenario.</content:encoded>
      <pubDate>Fri, 09 Jun 2023 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/simas/full-stack-development-is-dead-long-live-full-stack-development</link>
      <guid>https://speakerdeck.com/simas/full-stack-development-is-dead-long-live-full-stack-development</guid>
    </item>
    <item>
      <title>Do you really need Hibernate?</title>
      <description>Projects often use Java Persistence API (JPA) by default and, thus, mostly Hibernate. But do all applications need a comprehensive object/relational mapping (ORM) with all conceivable functions?

This talk examines the architecture of database-centric applications and discusses whether you always need an object graph for persistence.

Using an example application, it is shown how pure SQL, with the help of jOOQ and (nested) Java Records simplifies data access and how common ORM problems, such as the n+1 select problem, can be avoided.
Finally, the possibility of combining jOOQ and JPA/Hibernate and thus using the best of both worlds is discussed.</description>
      <media:content url="https://files.speakerdeck.com/presentations/6a8a33049008459ebff60c53ef051b28/preview_slide_0.jpg?34991094" type="image/jpeg" medium="image"/>
      <content:encoded>Projects often use Java Persistence API (JPA) by default and, thus, mostly Hibernate. But do all applications need a comprehensive object/relational mapping (ORM) with all conceivable functions?

This talk examines the architecture of database-centric applications and discusses whether you always need an object graph for persistence.

Using an example application, it is shown how pure SQL, with the help of jOOQ and (nested) Java Records simplifies data access and how common ORM problems, such as the n+1 select problem, can be avoided.
Finally, the possibility of combining jOOQ and JPA/Hibernate and thus using the best of both worlds is discussed.</content:encoded>
      <pubDate>Tue, 23 May 2023 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/simas/do-you-really-need-hibernate</link>
      <guid>https://speakerdeck.com/simas/do-you-really-need-hibernate</guid>
    </item>
    <item>
      <title>Efficient Full-Stack Development with Java</title>
      <description>Single Page Applications (SPA) have become the quasi-standard in the development of web applications today. Angular, React, and Vue.js are the most well-known representatives of this category of web frameworks.

For Java developers, however, this means learning a new programming language and finding a completely foreign build environment with its ecosystem, which can often be more difficult.

Are there alternatives?
Vaadin is an established web framework that allows web applications to be developed entirely in Java but recently also supported a classic SPA approach.
First, the new architecture of Vaadin, which is no longer based on GWT but WebComponents, is explained. 

The second part explains Hilla (former Vaadin Fusion), which offers the possibility to develop SPAs with TypeScript and WebComponents in the frontend and Java in the backend.</description>
      <media:content url="https://files.speakerdeck.com/presentations/949b8a00cc1c4b249e444424e79a3b79/preview_slide_0.jpg?22918985" type="image/jpeg" medium="image"/>
      <content:encoded>Single Page Applications (SPA) have become the quasi-standard in the development of web applications today. Angular, React, and Vue.js are the most well-known representatives of this category of web frameworks.

For Java developers, however, this means learning a new programming language and finding a completely foreign build environment with its ecosystem, which can often be more difficult.

Are there alternatives?
Vaadin is an established web framework that allows web applications to be developed entirely in Java but recently also supported a classic SPA approach.
First, the new architecture of Vaadin, which is no longer based on GWT but WebComponents, is explained. 

The second part explains Hilla (former Vaadin Fusion), which offers the possibility to develop SPAs with TypeScript and WebComponents in the frontend and Java in the backend.</content:encoded>
      <pubDate>Thu, 06 Oct 2022 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/simas/vaadin-spas-for-java-developers</link>
      <guid>https://speakerdeck.com/simas/vaadin-spas-for-java-developers</guid>
    </item>
    <item>
      <title>Going Full-Stack with Hilla</title>
      <description>Full-stack development is often a good choice when developing business applications. But the integration of the frontend and the backend is not trivial.

Hilla to the rescue!  
Hilla integrates a Spring Boot Java backend with a reactive TypeScript frontend. You build UIs using Lit framework or React and web components without caring about a REST API. Hilla generates the REST-API and the client code for you.
The backend is secure by default and fully stateless.

Hilla was made by the creators of the famous Java web framework Vaadin. This talk introduces the architecture and concepts of Hilla and Lit. A hands-on demo shows how easy it is to do full-stack development using Hilla and Spring Boot.</description>
      <media:content url="https://files.speakerdeck.com/presentations/4f89425ec30042d1bedbb94039b60e93/preview_slide_0.jpg?22745110" type="image/jpeg" medium="image"/>
      <content:encoded>Full-stack development is often a good choice when developing business applications. But the integration of the frontend and the backend is not trivial.

Hilla to the rescue!  
Hilla integrates a Spring Boot Java backend with a reactive TypeScript frontend. You build UIs using Lit framework or React and web components without caring about a REST API. Hilla generates the REST-API and the client code for you.
The backend is secure by default and fully stateless.

Hilla was made by the creators of the famous Java web framework Vaadin. This talk introduces the architecture and concepts of Hilla and Lit. A hands-on demo shows how easy it is to do full-stack development using Hilla and Spring Boot.</content:encoded>
      <pubDate>Thu, 22 Sep 2022 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/simas/going-full-stack-with-hilla</link>
      <guid>https://speakerdeck.com/simas/going-full-stack-with-hilla</guid>
    </item>
    <item>
      <title>You may not need JavaScript</title>
      <description>Single page applications (SPA) have become the standard for web application development. Angular, React and Vue.js are the best-known. But does this client architecture fit every application? Or are there alternatives that may fit better and are less complex to develop?

In the first part of the talk, the differences between SPAs and classic, server-side approaches are explained and the advantages and disadvantages are discussed.

The second part reports on a current customer project in which the front end of a large ERP system had to be replaced by a modern web front end. The chosen framework is Vaadin Flow, a server-side web framework that makes development of web applications entirely in Java possible.

First, the new architecture of Vaadin Flow, which is no longer based on GWT but on web components, is explained. Then it will be shown how configurable, form-based and data-centric web applications can be implemented very efficiently by using jOOQ as a database access layer.

#Vaadin #jOOQ</description>
      <media:content url="https://files.speakerdeck.com/presentations/da338708198a4f0ea9f984e5a01ea4e2/preview_slide_0.jpg?21562790" type="image/jpeg" medium="image"/>
      <content:encoded>Single page applications (SPA) have become the standard for web application development. Angular, React and Vue.js are the best-known. But does this client architecture fit every application? Or are there alternatives that may fit better and are less complex to develop?

In the first part of the talk, the differences between SPAs and classic, server-side approaches are explained and the advantages and disadvantages are discussed.

The second part reports on a current customer project in which the front end of a large ERP system had to be replaced by a modern web front end. The chosen framework is Vaadin Flow, a server-side web framework that makes development of web applications entirely in Java possible.

First, the new architecture of Vaadin Flow, which is no longer based on GWT but on web components, is explained. Then it will be shown how configurable, form-based and data-centric web applications can be implemented very efficiently by using jOOQ as a database access layer.

#Vaadin #jOOQ</content:encoded>
      <pubDate>Sat, 28 May 2022 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/simas/you-may-not-need-javascript</link>
      <guid>https://speakerdeck.com/simas/you-may-not-need-javascript</guid>
    </item>
    <item>
      <title>Java Data Access Performance in Combination with Vaadin and REST API</title>
      <description></description>
      <media:content url="https://files.speakerdeck.com/presentations/b4fdec20618f4946ac2f00831052ce82/preview_slide_0.jpg?23409320" type="image/jpeg" medium="image"/>
      <content:encoded></content:encoded>
      <pubDate>Sun, 09 Jan 2022 00:00:00 -0500</pubDate>
      <link>https://speakerdeck.com/simas/java-data-access-performance-in-combination-with-vaadin-and-rest-api</link>
      <guid>https://speakerdeck.com/simas/java-data-access-performance-in-combination-with-vaadin-and-rest-api</guid>
    </item>
    <item>
      <title>The Real Value of Serverless</title>
      <description></description>
      <media:content url="https://files.speakerdeck.com/presentations/6741844c310a4d7584d21656fa7f0897/preview_slide_0.jpg?23369262" type="image/jpeg" medium="image"/>
      <content:encoded></content:encoded>
      <pubDate>Fri, 01 Oct 2021 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/simas/the-real-value-of-serverless</link>
      <guid>https://speakerdeck.com/simas/the-real-value-of-serverless</guid>
    </item>
    <item>
      <title>The Real Value of Microservices</title>
      <description></description>
      <media:content url="https://files.speakerdeck.com/presentations/3d0ed33d807443cf9c115cb41b7cdac8/preview_slide_0.jpg?23369208" type="image/jpeg" medium="image"/>
      <content:encoded></content:encoded>
      <pubDate>Thu, 01 Oct 2020 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/simas/the-real-value-of-microservices</link>
      <guid>https://speakerdeck.com/simas/the-real-value-of-microservices</guid>
    </item>
  </channel>
</rss>
