Die SAP-Entwicklerkonferenz in Sachen Frontend – die UI5con – fand auch dieses Jahr wieder als hybride Veranstaltung statt. Wir waren vor Ort in St. Leon Rot, was dieses Mal nicht ganz so einfach war: Alle Tickets waren innerhalb von 3 Minuten vergriffen.
Grundsätzlich gliedert sich die Veranstaltung in bis zu drei parallele Tracks - gefüllt mit Vorträgen und Workshops. In den „Expert Corner Sessions“ bietet sich die Gelegenheit, direkt mit den Experten zu diskutieren und Feedback zu geben.
Umfragen
Die Keynote ging zuerst auf eine Umfrage (1000 Befragte aus 56 Ländern) ein, welche die Nutzung der verschiedenen Technologien herausstellte. Der Benchmark bleibt ABAP mit 85 Prozent Verbreitung, aber gerade der Blick auf die eingesetzten UI-Technologien ist ganz interessant und wurde durch eine weitere Umfrage vor Ort unterstrichen:
- 75% SAPUI5
- 59% Fiori Elements
- 20% OpenUI5
- 15% Web Components
Auf Grundlage einer Befragung unter 165 Teilnehmern stellten Volker Buzek und Marian Zeis ein paar interessante Trends in ihrem Vortrag vor. Die wichtigsten Erkenntnisse:
- Smart Controls werden sehr häufig genutzt und das Analogon für V4 fehlt.
- Insgesamt werden dramatisch zu wenig automatisierte Tests erstellt: 68% der Befragten testen überhaupt nicht.
- Trotz enorm guter Generatoren (Easy UI5 / Fiori Tools) kopieren 20% der Befragten andere Apps als Grundlage.
- Das Thema DevOps ist bisher absolut unterrepräsentiert: Der Anteil von Deployments vom lokalen Rechner aus ist hoch.
Keynote
Im Fokus der Keynote stand UI5 in Version 2 und die damit verbundenen internen Entwicklungen. Der Hintergrund für den Breaking Change: UI5 2.x erlaubt keinen synchronen Code und keine Globals mehr, und ebenfalls sind alle deprecated APIs und damit auch alte, lästige Code-Strecken entfernt worden.
Hieraus ergibt sich die Notwendigkeit eines neuen Releases des UI5 Toolings: Version 4.0 ist für Ende Juni angekündigt. Hiermit erfolgt der Applikationsstart nun vollständig asynchron, was eben die Voraussetzung für UI5 2.0 ist. Darüber hinaus wird ES2023 unterstützt und Node.js in Version 20.11.0 als Minimum vorausgesetzt. Das goldene Nugget an dieser Stelle war allerdings das Refactoring bzgl. des Ladens von Message Bundles: Wie jeder UI5-Entwickler weiß, versucht UI5 zu Applikationsstart Übersetzungen für verschiedene Sprachen / Locales abzufragen, die zuhauf ins Leere laufen (404). Dieses Problem wird in Zukunft anscheinend zur „Build-Time“ gelöst, so dass die Anfragen entfallen.
Um den „Breaking Change“ etwas abzudämpfen, wurde das folgende Mantra unterstrichen: „best practice apps keep running“. Zudem ist ein UI5 Linter entstanden, der den Übergang zu UI5 2.x weiter vereinfachen soll.
Web Components
Die Lead-Entwickler der Web Components haben einen Einblick in ihre Tätigkeit des letzten Jahres gegeben. Getreu ihres Mottos native Lösungen zu bevorzugen, wurden insbesondere Pop-ups und Eingabefelder überarbeitet und Eigenimplementierungen entsprechend ersetzt. Gerade Komponenten innerhalb von Pop-ups, bspw. <ui5-option>, sind nun hochgradig anpassbar.
Für Ende Juni ist das Release 2.0 der Web Components angekündigt, das sich in erster Linie um eine API-Angleichung an UI5 dreht. Nuggets hier sind, dass Dialoge über Attribute geöffnet und geschlossen werden und dass List, Tree und Tab Container Drag-and-Drop unterstützen. Für die mittelfristige Zukunft ist geplant, JSX anstatt Handlebars für das Templating innerhalb selbst erstellter Web Components nutzen zu können. Last but not least wurde die Dokumentation komplett überarbeitet und besticht durch Code-Beispiele, die direkt bearbeitet werden können.
Im Gegenzug stellte Peter Muessig in seinem Vortrag „Bring You Own Design System“ eine neue Basisklasse (sap/ui/core/webc/WebComponent) vor, die es erlaubt, jedwede Web Component als natives UI5 Control einzubinden. Somit funktionieren dann Data Binding, das OData Model, etc. out-of-the-box. Darüber hinaus lassen sich auch native UI5 controls mit Web Components schachteln und umgekehrt. Das bedeutet letztlich, dass sich UI5 in Zukunft auch mit anderen Design-Systemen verwenden lässt. Es muss nicht zwangsläufig Fiori sein und es müssen nicht zwangsläufig die UI5 Web Components sein.
Weitere Vorträge im Kurzdurchlauf
Der Easy UI5 Generator wurde komplett neu geschrieben und ist nun deutlich schneller, bietet mehr Templates an und unterstützt auch Mono-Repo-Projekte. Darüber hinaus gibt es Sub-Generatoren, mit deren Hilfe sich einzelne Views, Controller, etc. generieren lassen. Letztlich ist der Easy UI5 Generator damit den Fiori-Tools überlegen.
Ein paar sehr nützliche Middlewares sind in dem UI5-Ecosystem-Showcase hinzugekommen:
- ui5-middleware-serveframework - Laden des UI5 Frameworks aus einer lokal gebauten Version (optimiert durch Preload-Dateien)
- ui5-middleware-approuter - erlaubt die lokale Einbindung von Cloud-Destinations
- ui5-middleware-ui5 - ermöglicht die gleichzeitige Entwicklung an Bibliotheken und Applikationen, die diese Bibliotheken integrieren
Insbesondere der Vortrag „Seamless Integration: Crafting the Perfect UI5 Development Environment” ging hier im Speziellen auf die Einbindung und Use Cases der Middlewares ein.
Das OData-V4-Model unterstützt nun hierarchische Komponenten bzw. den Tree Table. Für uns enttäuschend war hier jedoch die Erkenntnis, dass das V4-Model auf Fiori Elements ausgerichtet zu sein scheint. Bspw. schlagen Erstellungsoperationen nicht fehl, sondern werden stillschweigend ignoriert.
SAP UI5 Flexibility bzw. das Adaptation Project funktioniert nun in der Public Cloud, aber aktuell nur über das Business Application Studio. Interessant war insbesondere der Einblick in die Architektur für diese Realisierung. Hervorzuheben ist hier, dass Extensions, die so erstellt wurden, auch bei Updates der Standard-App lauffähig bleiben.
Das MDC-Team stellte in seinem Vortrag heraus, dass sap.ui.mdc (die Grundlage für Fiori Elements) nicht zwangsläufig an OData als Datenquelle gebunden sein muss. Als Beispiel-Szenario wurde eine GraphQL-Implementierung vorgestellt.
Dimitar Fenerski trumpfte mit einem speziellen Use Case in seinem „Extreme Freestyle“-Vortrag auf: Eine extrem große OpenUI5-App mit Node.js-Backend (kein CAP). Seine zentrale Erkenntnis ist, dass sich fast alles als Library auslagern lässt und sich so gesamte App-Landschaften performant und DRY handhaben lassen. Das „Hidden Gem“ war der Hinweis auf die ControllerExtension-Klasse, die Composition-over-Inheritance ermöglicht. Darüber hinaus hat Dimitar zwei Open Source-Projekte veröffentlicht: ein typsicheres JSONModel und ein Dependency Injection-Framework für UI5.
Nicht zuletzt wurden auch die ersten Gehversuche mit Künstlicher Intelligenz vorgestellt. Im Mittelpunkt stand die Code-Generierung mit Hilfe eines textbasierten Interfaces à la ChatGPT. Die Eingabe wirkte noch sehr kleingliedrig und hat uns daher noch nicht überzeugt. Aber, wie erwähnt, es handelt sich hierbei noch um die Anfänge.
Fazit
Insgesamt war die UI5con 2024 eine runde Veranstaltung. Wir haben tiefe Einblicke in die aktuellen UI5-Entwicklungen erhalten und konnten viele Nuggets für uns mitnehmen, die auch in der täglichen Arbeit zum Tragen kommen werden. Am wertvollsten sind die Diskussionen untereinander, mit anderen Teilnehmern und den Vortragenden bzw. Experten gewesen, um das Verständnis in manchen Aspekten zu vertiefen und neue Ansätze und Sichtweisen kennenzulernen. Und hierfür war auch insbesondere das Setting und die hervorragende Organisation der Veranstaltung mitverantwortlich.