Skip to content

Commit 395c1b1

Browse files
authored
Update comparison.md
1 parent 086d130 commit 395c1b1

File tree

1 file changed

+33
-20
lines changed

1 file changed

+33
-20
lines changed

docs/advanced/technical/comparison.md

Lines changed: 33 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,32 +8,43 @@ abap2UI5 adapts this idea to the SAP world, allowing developers to build UI5 app
88

99
---
1010

11-
## Common Principles
12-
13-
| Concept | LiveView / Livewire / htmx | abap2UI5 |
14-
|---------------------------|------------------------------------------------------|----------------------------------------------------------------|
15-
| **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 |
11+
## Comparison at a Glance
12+
13+
| Concept | LiveView / Livewire / htmx | abap2UI5 | UI5 Freestyle | RAP (Fiori Elements) |
14+
|---------------------------|------------------------------------------------------|----------------------------------------------------------------|-----------------------------------------------------------|------------------------------------------------------------|
15+
| **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 |
2324

2425
---
2526

26-
## How abap2UI5 differs
27+
## What makes abap2UI5 different?
2728

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:
2930

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.
3536

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.
3748

3849
---
3950

@@ -42,4 +53,6 @@ In short, abap2UI5 brings the simplicity of "HTML Over the Wire" to ABAP develop
4253
- [Phoenix LiveView](https://hexdocs.pm/phoenix_live_view/Phoenix.LiveView.html)
4354
- [Laravel Livewire](https://laravel-livewire.com/)
4455
- [htmx](https://htmx.org/)
56+
- [SAPUI5 Freestyle Documentation](https://sapui5.hana.ondemand.com/)
57+
- [RAP Guide (Fiori Elements)](https://help.sap.com/viewer/product/ABAP_RESTFUL_APPLICATION_PROGRAMMING_MODEL/latest/en-US)
4558
- [abap2UI5 on GitHub](https://github.com/abap2UI5/abap2UI5)

0 commit comments

Comments
 (0)