adesso Blog
27.09.2024 By Manfred Specht
Version control for non-developer
Version control is a system that helps developers track, manage and secure changes to code. This blog post is aimed at non-developers and explains what version control is, what advantages it offers and how it can be used in your daily work, especially with GitLab.
Read more25.09.2024 By Tobias Kirsch
Automated accessibility testing with cypress-axe
Accessibility is a crucial aspect of modern web development. It ensures that digital products are accessible to all users, including people with disabilities. In this blog post, I'll show how automated accessibility testing can be implemented with cypress-axe. We'll also take a look at the relevant technologies.
Read more28.08.2024 By Jannis Kaiser
Bringing error messages safely to the frontend with Spring-Boot
Seit Spring Boot 2.3 werden detaillierte Fehlermeldungen aus Sicherheitsgründen standardmäßig unterdrückt. Das Frontend benötigt aber oft spezifische Fehlerdetails, um eine gute User Experience zu gewährleisten. In diesem Blogbeitrag zeige ich, wie du in Spring Boot Fehlerdetails sicher und gezielt an das Frontend weitergeben kannst - ohne die Sicherheit deines Projekts zu gefährden. In meinem Blog-Beitrag erfahrt ihr, wie ihr mit @ControllerAdvice, ErrorAttributes und Annotations eine maßgeschneiderte Fehlerbehandlung implementieren könnt.
Read more13.08.2024 By Christian Ortiz
Spring Modulith as an alternative to microservices
Microservices are a prevailing trend in software architecture that breaks down large systems into independent units. They offer advantages, but are not always necessary. Alternatively, a modularised monolith can be useful, especially if the boundaries between microservices are fluid. In this blog post, I will discuss modularisation concepts in the Java ecosystem, with a focus on Spring Modulith.
Read more16.07.2024 By Milena Fluck
The leftover box trap: the dangers of common structures in repositories
Do you have a box of leftovers at home? A box where you don't know exactly what's in it. It could contain anything. If you're looking for something, then definitely have a look in this box. In our repos you will occasionally find boxes with names like "Common" or "Shared". This blog post explains how to sort them correctly.
Read more26.06.2024 By Merlin Bögershausen
Automated modernisation - Part 3
The first article on this topic explained the basic concepts of Open Rewrite. The second article dealt with the technical implementation of recipes and this article discusses the use of Open Rewrite in the context of an organisation's application portfolio. The use of internal libraries, application portfolios and efficient use as a service will be discussed.
Read more21.06.2024 By Murat Fevzioglu
Virtual Threads in Java
The development of the virtual threads, also known as Project Loom, began in late 2017. The final implementation brings with it two major changes. Virtual threads now support thread-local variables by default, and they are now monitored by default and observable via the new thread dump. This blog post introduces virtual threads and explains how they are used in Java.
Read more19.06.2024 By Daniil Zaonegin
Create .NET Blazor Hosted App with the new Blazor Web App Project Template (in .NET 8)
Blazor is a .NET front-end framework for creating an interactive web UI with C# and not JavaScript. This offers many advantages, such as being able to share code between the back-end and front-end. With Blazor, you no longer have to use two different languages, JavaScript for the frontend and C# for the backend. This makes it easier to reuse code and write consistent applications in a familiar language environment. In addition, many errors can be resolved at compile time and no longer occur dynamically at application runtime, as was the case in JavaScript.
Read more21.05.2024 By Dominik Táskai
Migrating EventBridge archives
If your infrastructure utilizes EventBridge and its archive feature, you may easily encounter situations where modifications to your event bus are necessary. This could involve creating a new archive or event bus and subsequently transferring events from the old archive to the new one as there is no way to attach an existing archive to a new event bus, so creating a new event bus requires creating a new archive for it.
Read more