You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|**Server-rendered UI**| HTML is generated on the server and sent to the client | XML-Views (UI5) are created in ABAP and rendered as HTML in the browser |
16
-
|**"Dumb" frontend**| Browser only displays HTML, no application logic | UI5 frontend does not know about views or application logic — everything stays in ABAP |
17
-
|**Interactions trigger server calls**| Events send AJAX/WebSocket requests to the server | UI5 events are sent back to ABAP via AJAX (Over the Wire concept) |
18
-
|**State remains in the backend**| Application state is managed on the server (LiveView uses WebSocket stateful sessions, Livewire does stateless diffs) | Complete application state is kept in ABAP — frontend holds no state |
19
-
|**Delta Rendering**| Only HTML diffs are sent to update parts of the page | abap2UI5 sends View + Data together as JSON, frontend updates only changed UI5 controls |
20
-
|**No dedicated APIs required**| No OData/REST APIs needed — server returns ready-to-render UI | No OData, CDS, or SEGW — View & Model are sent together in a JSON package |
21
-
|**Minimal frontend code**| Little to no custom JavaScript needed | Generic UI5 frontend app — all app logic is implemented in ABAP |
22
-
|**Backend-driven flexibility**| UI & logic changes are done in backend, no frontend builds | Views, models, and logic are fully controlled by ABAP, no redeployment of frontend apps |
|**Server-rendered UI**| HTML is generated on the server and sent to the client | XML-Views (UI5) are generated in ABAP, rendered in the browser | Frontend (XML Views, JS/Controller) renders data from backend | UI defined via annotations & templates, rendered in frontend |
16
+
|**Frontend is "dumb"**| Browser displays HTML, no application state | UI5 app only renders server-provided view & data | Full application logic in frontend controller | Minimal frontend logic, driven by backend annotations |
17
+
|**Interactivity triggers server calls**| AJAX/WebSocket calls on user events | Events sent via AJAX to ABAP backend | Event handling in frontend, OData used for data exchange | OData requests on UI interactions |
18
+
|**State remains in the backend**| State managed server-side | State & flow fully in ABAP, drafts simulate persistence | State often kept in frontend models | State persistence managed via RAP framework (drafts etc.) |
19
+
|**Delta Rendering**| HTML diffs sent to update UI | View & Data sent as JSON diff, partial UI5 control updates | Full re-rendering managed in frontend controllers | Smart controls manage partial updates based on metadata |
20
+
|**APIs required?**| No explicit API needed, returns UI | No OData/CDS necessary, simple HTTP handler used | Requires OData Service (SEGW or CAP) | Requires typed OData services & CDS artifacts |
21
+
|**Frontend development effort**| Minimal JS, mostly markup-driven | No custom JS needed, pure ABAP | Separate frontend app (BAS/WebIDE), heavy JS development | Generated UI, low-code approach, limited flexibility |
22
+
|**Backend-driven flexibility**| Full flexibility, logic stays on server | Complete control in ABAP classes (Views, Models, Logic) | Backend delivers data only, UI logic in JS | Backend defines UI behavior via annotations, limited runtime flexibility |
23
+
|**Custom UI controls**| Can be added via normal HTML/JS | Possible via Over-the-Wire delivery of JS/HTML | Developed separately, integrated in frontend | Limited to RAP-defined extensibility options |
23
24
24
25
---
25
26
26
-
## How abap2UI5 differs
27
+
## What makes abap2UI5 different?
27
28
28
-
While abap2UI5 shares the same architectural ideas, it adapts them to the specifics of SAP environments:
29
+
While abap2UI5 follows the "Over the Wire" principle like LiveView, Livewire, and htmx, it is adapted to the SAP ecosystem:
29
30
30
-
-**View + Data combined as UI5 XML Views & JSON**, not plain HTML fragments like htmx.
31
-
-**Stateless communication via AJAX**, similar to Livewire, while offering a stateful-like experience using drafts.
32
-
-**UI5 Controls are ABAP objects**, providing code completion & consistency within ADT.
33
-
-Designed for SAP systems — leveraging **RTTI**, internal tables, and classic ABAP patterns (e.g., ALV-like apps).
34
-
-Avoids OData, RAP & CDS for faster development cycles and reduced complexity.
31
+
-Instead of sending raw HTML, abap2UI5 transmits **UI5 XML Views and Data models** to the frontend.
32
+
-Uses **stateless AJAX requests**, simulating stateful behavior via ABAP drafts.
33
+
-Avoids OData, CDS & RAP layers — reduces backend artifacts to a minimum.
34
+
-Leverages **ABAP Classes** as UI components, offering code completion and consistency.
35
+
-Brings back an ALV-like development flow for modern UI5 apps.
35
36
36
-
In short, abap2UI5 brings the simplicity of "HTML Over the Wire" to ABAP developers by enabling full-stack UI5 development with pure ABAP — no JavaScript skills required, no extra frontend layers needed.
37
+
Compared to UI5 Freestyle and RAP:
38
+
- abap2UI5 offers more flexibility than RAP but avoids the complexity of Freestyle frontend stacks.
39
+
- UI logic and state remain entirely in ABAP, without maintaining separate frontend projects.
40
+
41
+
---
42
+
43
+
## Conclusion
44
+
45
+
abap2UI5 combines the simplicity of "HTML Over the Wire" with SAP UI5's capabilities — fully backend-driven, minimalistic, and flexible. It offers ABAP developers a way to build UI5 applications without the overhead of OData, CAP, or JavaScript-heavy frontend apps.
46
+
47
+
For developers used to SAP GUI or ALV-based programming, abap2UI5 feels familiar while embracing modern web technologies under the hood.
37
48
38
49
---
39
50
@@ -42,4 +53,6 @@ In short, abap2UI5 brings the simplicity of "HTML Over the Wire" to ABAP develop
0 commit comments