Skip to content

Commit 42cf6a6

Browse files
authored
Update concept.md
1 parent c67c93d commit 42cf6a6

File tree

1 file changed

+0
-198
lines changed

1 file changed

+0
-198
lines changed

docs/advanced/technical/concept.md

Lines changed: 0 additions & 198 deletions
Original file line numberDiff line numberDiff line change
@@ -143,201 +143,3 @@ By shifting UI control back to the ABAP backend and leveraging SAP UI5 for rende
143143
- [htmx in a nutshell](https://htmx.org/docs/#introduction)
144144
- [HTML Over the Wire](https://signalvnoise.com/svn3/html-over-the-wire/)
145145
- [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)
146-
147-
148-
149-
150-
151-
152-
153-
154-
155-
156-
157-
158-
159-
160-
161-
162-
163-
164-
165-
But is this maybe just the same like RAP, but in a different format?
166-
167-
168-
169-
170-
171-
172-
173-
174-
175-
176-
177-
This pattern has gained popularity through frameworks like htmx, Hotwire, Phoenix LiveView, and Laravel Livewire. They aim to simplify development, reduce dependencies, and return to server-driven UIs.
178-
179-
180-
This article provides a technical deep dive into **abap2UI5**. It is aimed at developers who want to understand how abap2UI5 works "under the hood" and how it simplifies UI5 development by keeping both logic and UI generation on the backend.
181-
182-
It covers the core ideas behind the framework — including its architecture, codebase, and compatibility — and shows how concepts like **"HTML Over the Wire"** are adapted to the ABAP environment, offering a new approach to building UI5 applications.
183-
184-
##### 1. HTML Over the Wire
185-
186-
One of the core ideas behind abap2UI5 is inspired by the concept of **"HTML Over the Wire"**. This approach suggests rendering HTML directly on the server and sending it to the browser — without relying on JSON, client-side MVC frameworks, bundling, or transpiling pipelines.
187-
188-
189-
190-
191-
192-
The idea was introduced in the SAP community through examples using the JavaScript library **htmx** to build Fiori-like apps. Unlike typical Single Page Applications (SPAs), where state and logic reside on the frontend, the **HTML Over the Wire** principle keeps all application logic and state on the server.
193-
194-
After the initial page load, only small HTML fragments are sent asynchronously via AJAX to update parts of the page — avoiding full reloads.
195-
196-
<img width="400" alt="image" src="https://github.com/user-attachments/assets/a9fde24a-c572-4e5c-b203-59a0667b9931" />
197-
198-
_HTML "Over the Wire" Lifecycle [(Quelle)](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)_
199-
200-
This approach contrasts with the common separation of concerns, where HTML, CSS, and JavaScript are managed independently on the frontend while the backend only delivers data.
201-
202-
##### 2. Hypermedia Driven App
203-
204-
This concept evolves into what is termed a Hypermedia-Driven Application (HDA). In HDAs, the browser focuses solely on rendering HTML, CSS, and JavaScript without knowledge of the application's state. All logic is maintained on the server.
205-
206-
In contrast, SPAs define all routes and actions upfront on the frontend, requiring a full rebuild for any modification. The following illustration compares MPAs, SPAs, and HDAs:
207-
208-
<img width="600" alt="image" src="https://github.com/user-attachments/assets/8117dc10-f0ba-4c52-9d1d-6b9d0986401d" />
209-
210-
MPA vs. SPA vs. HDA [(Quelle)](https://craftcms.com/events/dot-all-2022/sessions/a-practical-guide-to-html-over-the-wire)
211-
212-
213-
##### 3. Rethinking Separation of Concerns
214-
215-
Unlike traditional architectures, HDAs do not prioritize strict separation of CSS, JavaScript, and HTML. The backend generates the UI and handles program flow, much like SAP GUI applications in the past. This centralized approach simplifies customization and maintenance.
216-
217-
##### 4. Dive Deeper
218-
219-
Frameworks like Phoenix LiveView (2018) and Laravel Livewire (2019) were among the first to adopt this principle. Tools like htmx, hotwire, and unpoly followed, aiming to reduce complexity while maintaining high UI fidelity. These frameworks seek a "sweet spot" between SPA and MPA architectures:
220-
221-
<img width="600" alt="image" src="https://github.com/user-attachments/assets/41af4a41-829e-4289-82f5-18ee7408054b" />
222-
"Sweet Spot" between SPA and MPA (Quelle)
223-
224-
A recommended video offers an excellent introduction to these ideas.
225-
226-
##### 5. UI5 Architecture
227-
228-
UI5 applications typically follow an SPA architecture. The backend delivers data via OData, while all logic and UI rendering occur on the frontend. But one specific characteristic we should examine closely is how the UI5 framework creates views. Each HTML output is rendered from an XML-View (let's ignore the former HTML/JS/JSON-Views), with its associated data from the server. The view is stored at the frontend as part of the app:
229-
230-
<img width="600" alt="image" src="https://github.com/user-attachments/assets/3b2a884e-e899-4b60-8a95-79b418f33657" />
231-
232-
UI5 normally - ABAP delivers only Data
233-
234-
235-
236-
237-
238-
239-
240-
241-
242-
243-
244-
245-
246-
247-
248-
249-
250-
251-
252-
253-
#### new
254-
255-
The key concept of **abap2UI5** is to apply the **HTML Over-the-Wire** approach to SAP UI5 application development.
256-
257-
#### Concept
258-
259-
**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.
260-
261-
```plaintext
262-
+-------------------+ +------------------+ +-------------------+
263-
| Server | | Browser | | User |
264-
|-------------------| |------------------| |-------------------|
265-
| HTML Definition | --> | Receives Response| --> | Interacts with UI |
266-
| | | Renders UI | | (clicks, inputs) |
267-
+-------------------+ +------------------+ +-------------------+
268-
```
269-
270-
Flow:
271-
- The server defines HTML
272-
- The browser inserts these definitions
273-
- Users interact with the UI — the backend handles logic and updates
274-
275-
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.
276-
277-
278-
#### Frameworks
279-
280-
Several frameworks successfully implement the HTML Over-the-Wire approach:
281-
282-
| Framework | Focus | Tech Stack |
283-
|-----------------------|--------------------------------------|----------------------|
284-
| [htmx](https://htmx.org) | Progressive enhancement via HTML partials | Any web stack |
285-
| [Hotwire (Turbo)](https://hotwired.dev) | HTML-over-the-wire for Rails apps | Ruby on Rails |
286-
| [Phoenix LiveView](https://hexdocs.pm/phoenix_live_view) | Real-time UI with server rendering | Elixir / Phoenix |
287-
| [Livewire](https://livewire.laravel.com) | Server-driven UI components in PHP | Laravel / PHP |
288-
| [Unpoly](https://unpoly.com) | Simplified partial page updates | Any web stack |
289-
290-
291-
#### UI5 Over-the-Wire
292-
293-
So what does a UI5 Over-the-Wire approach look like?
294-
295-
In this approach, the UI5 View and UI5 View-Model 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.
296-
297-
**abap2UI5** brings the Over-the-Wire idea into the SAP world by combining:
298-
- ABAP-based UI definitions (UI5 views & view-models)
299-
- A static SAP UI5 frontend app for rendering
300-
- Backend-controlled UI and business logic
301-
- Targeted view-model updates, so only specific UI5 controls are re-rendered
302-
303-
```plaintext
304-
+---------------------+ +------------------+ +-------------------+
305-
| ABAP Backend | | Browser | | User |
306-
|---------------------| |------------------| |-------------------|
307-
| UI5 View Definition | --> | Receives Response| --> | Interacts with UI |
308-
| UI5 View-Model | | Renders UI | | (clicks, inputs) |
309-
+---------------------+ +------------------+ +-------------------+
310-
```
311-
312-
Flow:
313-
- The backend defines UI5 XML views and JSON view-models
314-
- The browser renders these definitions using a static UI5 application
315-
- Users interact with the UI — the backend handles logic and updates
316-
317-
Key Benefits:
318-
- **Static UI5 Frontend App:** Delivered with the first HTTP request and remains generic and stable across all applications.
319-
- **Backend-Driven UI Control:** All UI definitions and business logic are implemented in ABAP classes.
320-
- **Pure ABAP Development:** No need for custom JavaScript or separate frontend development.
321-
- **Simplified Architecture:** No frontend builds or complex SPA frameworks — everything is managed through backend artifacts using abapGit and transports.
322-
- **Seamless SAP Integration:** Fully aligned with SAP’s UI5 and ABAP technology stack, compatible with all ERP and S/4HANA releases.
323-
- **Efficient for Business Applications:** Particularly well-suited for CRUD-heavy apps, forms, tables, dashboards, and typical enterprise use cases.
324-
325-
Limitations:
326-
- Not suitable for highly interactive, real-time collaboration apps.
327-
- Offline functionality or complex client-side interactions are not covered.
328-
- Less effective if frontend and backend teams work independently.
329-
330-
331-
332-
#### Summary
333-
334-
The **key concept of abap2UI5** is to bring the simplicity and efficiency of the HTML Over-the-Wire pattern into the SAP ecosystem.
335-
336-
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.
337-
338-
For typical enterprise apps — forms, dashboards, transactions — abap2UI5 offers a clean, backend-driven alternative with faster time-to-market and lower complexity.
339-
340-
**Further Reading:**
341-
- [htmx in a nutshell](https://htmx.org/docs/#introduction)
342-
- [HTML Over the Wire](https://signalvnoise.com/svn3/html-over-the-wire/)
343-
- [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)