Skip to content

Commit a7b0c29

Browse files
authored
update
1 parent 004f693 commit a7b0c29

File tree

1 file changed

+39
-43
lines changed

1 file changed

+39
-43
lines changed

docs/advanced/technical/concept.md

Lines changed: 39 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
1-
# Key Concept: UI5 Over-the-Wire?
1+
# Key Concept: UI5 Over-the-Wire
22

33
The key concept of **abap2UI5** is to apply the **HTML Over-the-Wire** approach to SAP UI5 application development.
44

5-
### HTML over-the-wire
6-
75
#### Concept
86

9-
**HTML Over-the-Wire** refers to a web architecture where the server renders user interfaces and sends ready-to-use HTML fragments to the browser. This avoids complex client-side frameworks and keeps the frontend lightweight and maintainable. The UI and Business Logic stays on the server.
7+
**HTML Over-the-Wire** refers to a web architecture where the server renders user interfaces and sends ready-to-use HTML fragments to the browser. This avoids complex client-side frameworks and keeps the frontend lightweight and maintainable. Both the UI and business logic remain on the server.
108

119
```plaintext
1210
+-------------------+ +------------------+ +-------------------+
@@ -18,7 +16,7 @@ The key concept of **abap2UI5** is to apply the **HTML Over-the-Wire** approach
1816
```
1917
Flow:
2018
- The server defines HTML
21-
- The browser inserts these Definitions
19+
- The browser inserts these definitions
2220
- Users interact with the UI — the backend handles logic and updates
2321

2422
While popular frameworks like Hotwire, Livewire, and Phoenix LiveView follow this approach, **abap2UI5 adapts it to SAP’s technological environment**, using SAP UI5 for frontend rendering and ABAP for backend-driven UI definitions.
@@ -27,42 +25,42 @@ While popular frameworks like Hotwire, Livewire, and Phoenix LiveView follow thi
2725

2826
In early web development, **Server-Side Rendering (SSR)** was the default. Every user action triggered a full-page reload with a complete HTML response.
2927

30-
The rise of **Single Page Applications (SPAs)** shifted rendering to the browser. SPAs fetch raw data (often via OData in SAP) and dynamically build UIs with JavaScript frameworks like React, Angular, Vue or in the SAP world UI5.
28+
The rise of **Single Page Applications (SPAs)** shifted rendering to the browser. SPAs fetch raw data (often via OData in SAP) and dynamically build UIs with JavaScript frameworks like React, Angular, Vue, or, in the SAP world, UI5.
3129

32-
However, SPAs brought new challenges:
30+
However, SPAs introduced new challenges:
3331
- API layers and data contracts
3432
- Separate frontend-backend development workflows
35-
- Complex build & deployment pipelines
33+
- Complex build and deployment pipelines
3634

3735
As a reaction, the **Over-the-Wire** paradigm re-emerged:
3836
- Servers send UI fragments, not full pages
3937
- Browsers update only specific parts of the page
4038
- Frontends stay simple and declarative
4139

42-
###### Architectural Comparison
40+
Architectural Comparison:
4341

44-
| Approach | Data Flow | Rendering Location | Period |
45-
|----------|-----------|-------------------|--------|
46-
| **SSR** | Full-page HTML responses | Entirely on the server | 1990s – 2010s |
47-
| **SPA** | Raw data (JSON), client builds UI | Client-side (JavaScript) | 2010s – today |
42+
| Approach | Data Flow | Rendering Location | Period |
43+
|---------------|----------------------------------|---------------------------|------------------|
44+
| **SSR** | Full-page HTML responses | Entirely on the server | 1990s – 2010s |
45+
| **SPA** | Raw data (JSON), client builds UI| Client-side (JavaScript) | 2010s – today |
4846
| **Over-the-Wire** | HTML fragments for partial updates | Server renders, browser inserts | 2020s (re-emerging) |
4947

50-
###### Related Frameworks
48+
#### Frameworks
5149

52-
Several frameworks successfully implement the HTML over-the-wire approach:
50+
Several frameworks successfully implement the HTML Over-the-Wire approach:
5351

5452
| Framework | Focus | Tech Stack |
55-
|-----------------------|--------------------------------------------------|----------------------|
53+
|-----------------------|--------------------------------------|----------------------|
5654
| [htmx](https://htmx.org) | Progressive enhancement via HTML partials | Any web stack |
5755
| [Hotwire (Turbo)](https://hotwired.dev) | HTML-over-the-wire for Rails apps | Ruby on Rails |
58-
| [Phoenix LiveView](https://hexdocs.pm/phoenix_live_view) | Real-time UI with server-rendering | Elixir / Phoenix |
56+
| [Phoenix LiveView](https://hexdocs.pm/phoenix_live_view) | Real-time UI with server rendering | Elixir / Phoenix |
5957
| [Livewire](https://livewire.laravel.com) | Server-driven UI components in PHP | Laravel / PHP |
6058
| [Unpoly](https://unpoly.com) | Simplified partial page updates | Any web stack |
6159

6260

63-
### UI5 Over-the-Wire
61+
#### UI5 Over-the-Wire
6462

65-
So how can a UI5 over-the-wire approach look like? In this architecture, the UI is defined on the ABAP server and transmitted to the browser. The browser renders the interface using a static UI5 application — without requiring additional JavaScript logic, OData services, or frontend frameworks.
63+
So what does a UI5 Over-the-Wire approach look like? In this architecture, the UI is defined on the ABAP server and transmitted to the browser. The browser renders the interface using a static UI5 application — without requiring additional JavaScript logic, OData services, or frontend frameworks.
6664

6765
```plaintext
6866
+---------------------+ +------------------+ +-------------------+
@@ -73,34 +71,32 @@ So how can a UI5 over-the-wire approach look like? In this architecture, the UI
7371
+---------------------+ +------------------+ +-------------------+
7472
```
7573
Flow:
76-
- The backend defines UI5 XML Views and JSON View-Models
74+
- The backend defines UI5 XML views and JSON view-models
7775
- The browser renders these definitions using a static UI5 application
7876
- Users interact with the UI — the backend handles logic and updates
7977

80-
81-
**abap2UI5** transfers the Over-the-Wire idea into SAP’s world by combining:
82-
- ABAP-based UI definitions (UI5 Views & UI5 View-Models)
78+
**abap2UI5** brings the Over-the-Wire idea into the SAP world by combining:
79+
- ABAP-based UI definitions (UI5 views & view-models)
8380
- A static SAP UI5 frontend app for rendering
84-
- Backend-controlled UI & Business logic
85-
- Targeted ViewModel updates ensure that only specific UI5 controls are re-rendered
86-
87-
###### Key Benefits
88-
89-
- Static UI5 Frontend App: Delivered with the first HTTP request and remains generic and stable across all applications.
90-
- Backend-Driven UI Control: All UI definitions and business logic are implemented in ABAP classes.
91-
- Pure ABAP Development: No need for custom JavaScript or separate frontend development.
92-
- Simplified Architecture: No frontend builds or complex SPA frameworks — everything is managed through backend artifacts using abapGit and transports.
93-
- Seamless SAP Integration: Fully aligned with SAP’s UI5 and ABAP technology stack, compatible with all ERP and S/4HANA releases.
94-
- Efficient for Business Applications: Particularly well-suited for CRUD-heavy apps, forms, tables, dashboards, and typical enterprise use cases.
95-
96-
###### Limitations
97-
81+
- Backend-controlled UI and business logic
82+
- Targeted view-model updates, so only specific UI5 controls are re-rendered
83+
84+
Key Benefits:
85+
- **Static UI5 Frontend App:** Delivered with the first HTTP request and remains generic and stable across all applications.
86+
- **Backend-Driven UI Control:** All UI definitions and business logic are implemented in ABAP classes.
87+
- **Pure ABAP Development:** No need for custom JavaScript or separate frontend development.
88+
- **Simplified Architecture:** No frontend builds or complex SPA frameworks — everything is managed through backend artifacts using abapGit and transports.
89+
- **Seamless SAP Integration:** Fully aligned with SAP’s UI5 and ABAP technology stack, compatible with all ERP and S/4HANA releases.
90+
- **Efficient for Business Applications:** Particularly well-suited for CRUD-heavy apps, forms, tables, dashboards, and typical enterprise use cases.
91+
92+
Limitations:
9893
- Not suitable for highly interactive, real-time collaboration apps.
9994
- Offline functionality or complex client-side interactions are not covered.
10095
- Less effective if frontend and backend teams work independently.
10196

102-
###### Partly HTML Updates
103-
One key feature is that the browser does not re-render the entire HTML page, but only specific parts. Can we achieve this with UI5?
97+
#### Partial HTML Updates
98+
99+
A key feature is that the browser does not re-render the entire HTML page, but only specific parts. Can we achieve this with UI5?
104100
While modifying the XML view would typically trigger a complete re-render, focusing solely on updating the view model and binding UI attributes to it allows the UI5 framework to automatically update only the affected parts. Try out this snippet:
105101

106102
```abap
@@ -132,17 +128,17 @@ CLASS z2ui5_cl_app_partly_rerender IMPLEMENTATION.
132128
133129
ENDCLASS.
134130
```
135-
Isn't that beatuiful?
131+
Isn't that beautiful?
136132

137-
### Summary
133+
#### Summary
138134

139135
The **key concept of abap2UI5** is to bring the simplicity and efficiency of the HTML Over-the-Wire pattern into the SAP ecosystem.
140136

141137
By shifting UI control back to the ABAP backend and leveraging SAP UI5 for rendering, abap2UI5 enables maintainable, pragmatic business applications — without the overhead of SPA architectures.
142138

143139
For typical enterprise apps — forms, dashboards, transactions — abap2UI5 offers a clean, backend-driven alternative with faster time-to-market and lower complexity.
144140

145-
Further Reading:
141+
**Further Reading:**
146142
- [htmx in a nutshell](https://htmx.org/docs/#introduction)
147143
- [HTML Over the Wire](https://signalvnoise.com/svn3/html-over-the-wire/)
148-
- [Fiori-like web app development in pure ABAP with htmx and Fundamental](https://community.sap.com/t5/technology-blog-posts-by-members/fiori-like-web-app-development-in-pure-abap-with-htmx-and-fundamental/ba-p/13500763)
144+
- [Fiori-like web app development in pure ABAP with htmx and Fundamental](https://community.sap.com/t5/technology-blog-posts-by-members/fiori-like-web-app-development-in-pure-abap-with-htmx-and-fundamental/ba-p/13500763)

0 commit comments

Comments
 (0)