|
1 | | -# Technology Comparison: abap2UI5, RAP, UI5 Freestyle, Web Dynpro, ITS Mobile |
| 1 | +# Technology Evolution: From ITS to abap2UI5 |
2 | 2 |
|
3 | | -This page compares **abap2UI5** with other common SAP UI technologies to help understand its architectural position and when to use it. |
| 3 | +This page explains how SAP UI technologies have evolved over the years — from classic Server-Side Rendering approaches like **ITS** and **Web Dynpro**, to client-side SPAs with **UI5 Freestyle** and **RAP**, and finally to the **Over-the-Wire** paradigm of **abap2UI5**. |
4 | 4 |
|
5 | | -While many SAP applications rely on client-side Single Page Applications (SPAs) or traditional Server-Side Rendering (SSR), abap2UI5 follows a pragmatic **Over-the-Wire** approach. It bridges the gap between simplicity and flexibility by shifting UI control back to the ABAP backend — without sacrificing the power of UI5 on the frontend. |
| 5 | +## 1. ITS Mobile: Bringing SAP GUI to the Web (2000+) |
| 6 | +The **Internet Transaction Server (ITS)** was SAP’s first step to bring SAP GUI screens (Dynpro) to the web. ITS Mobile converts classical Dynpro screens into basic HTML pages. |
6 | 7 |
|
7 | | -### abap2UI5: Over-the-Wire Approach for ABAP/UI5 (2023+) |
8 | | -abap2UI5 applies the Over-the-Wire principle to SAP UI5 apps. The backend (ABAP) defines UI5 XML Views and ViewModels, which are sent to the browser. A generic, static UI5 app dynamically renders this content. |
| 8 | +- Pure **Server-Side Rendering (SSR)**: HTML is generated on the server for every interaction. |
| 9 | +- Optimized for simple mobile devices (e.g., warehouse scanners). |
| 10 | +- Focus on reusing existing Dynpro logic for web & mobile use cases. |
| 11 | +- Still used today for specific legacy scenarios. |
9 | 12 |
|
10 | | -- Frontend stays generic & static |
11 | | -- No custom JavaScript development needed |
12 | | -- Perfect for CRUD-heavy business applications |
13 | | -- Inspired by modern Over-the-Wire frameworks like Hotwire, Livewire |
14 | | -- Addresses SAP's "Clean Core" approach by keeping custom code backend-driven |
| 13 | +## 2. Web Dynpro ABAP: Structured Web Applications (2003+) |
| 14 | +**Web Dynpro ABAP** introduced a component-based UI framework for web applications. |
15 | 15 |
|
16 | | -### RAP / Fiori Elements: Backend-driven SPA (2019+) |
17 | | -The **RESTful Application Programming Model (RAP)** standardizes how SAP applications expose data and services via OData V4. **Fiori Elements** apps use these services to render UIs client-side in the browser. |
| 16 | +- UI definitions are created in ABAP (Views, Context, Controllers). |
| 17 | +- Still **Server-Side Rendering**: UI is built on the server, rendered as HTML in the browser. |
| 18 | +- Suitable for transactional business applications. |
| 19 | +- More structured and modular than ITS, but limited for modern UX expectations. |
18 | 20 |
|
19 | | -- Developers define CDS Annotations in ABAP |
20 | | -- UI is built dynamically by the UI5 Fiori Elements runtime (SPA) |
21 | | -- Suitable for standard apps with CRUD patterns |
22 | | -- Reduces custom UI development, but still SPA complexity (OData Metadata handling, UI5 runtime) |
| 21 | +## 3. UI5 Freestyle: Full Client-Side SPAs (2010+) |
| 22 | +With the advent of smartphones and richer web experiences, **UI5 Freestyle** was introduced. |
23 | 23 |
|
24 | | -### UI5 Freestyle: Custom SPA (2010+) |
25 | | -UI5 Freestyle apps offer full control over the frontend. Developers build custom UI5 applications using JavaScript, XML Views, and UI5 Controls. |
| 24 | +- Based on **JavaScript, XML Views, and UI5 Controls**. |
| 25 | +- Follows a **Single Page Application (SPA)** architecture. |
| 26 | +- Full control over frontend behavior and look & feel. |
| 27 | +- Enables highly customized, interactive applications. |
| 28 | +- Requires dedicated frontend development expertise. |
26 | 29 |
|
27 | | -- Allows highly customized, interactive UIs |
28 | | -- Full SPA architecture in the browser |
29 | | -- Requires frontend expertise (JavaScript, UI5 skills) |
30 | | -- More flexible, but also more complex in development & maintenance |
| 30 | +## 4. RAP / Fiori Elements: Standardized Backend-Driven SPA (2019+) |
| 31 | +The **RESTful Application Programming Model (RAP)** and **Fiori Elements** aim to standardize application development. |
31 | 32 |
|
32 | | -### Web Dynpro ABAP: Server-Side Rendering (2003+) |
33 | | -Web Dynpro ABAP is SAP's traditional web UI framework. It renders HTML on the server and sends complete pages to the browser for each interaction. |
| 33 | +- Developers define **CDS Annotations** in ABAP to describe UI behavior. |
| 34 | +- The UI5 Fiori Elements runtime in the browser renders the app as a **SPA**. |
| 35 | +- Simplifies UI development by using predefined floorplans and templates. |
| 36 | +- Still SPA complexity (OData Metadata handling, UI5 runtime in browser). |
34 | 37 |
|
35 | | -- Component-based UI framework fully implemented in ABAP |
36 | | -- Classic Server-Side Rendering paradigm (SSR) |
37 | | -- Suitable for transactional SAP applications |
38 | | -- Limited flexibility for modern UI patterns, but robust |
| 38 | +## 5. abap2UI5: Over-the-Wire for SAP (2023+) |
| 39 | +**abap2UI5** brings the simplicity of the **Over-the-Wire** concept to SAP UI5 development. |
39 | 40 |
|
40 | | -### ITS Mobile: Legacy SSR for Mobile Devices (2000+) |
41 | | -**Internet Transaction Server (ITS) Mobile** converts classical SAP Dynpro (SAP GUI) screens into HTML pages for mobile browsers. |
| 41 | +- The ABAP backend defines **UI5 XML Views** and **JSON ViewModels**. |
| 42 | +- A static UI5 frontend dynamically renders these definitions. |
| 43 | +- No custom JavaScript development required. |
| 44 | +- Combines backend-driven development with UI5 flexibility. |
| 45 | +- Aligns with SAP's "Keep the Core Clean" strategy. |
42 | 46 |
|
43 | | -- Simplifies legacy app mobilization (e.g., warehouse scanners) |
44 | | -- Pure server-side HTML rendering (SSR) |
45 | | -- Very basic UI, optimized for keyboard-based navigation |
46 | | -- Still relevant for niche use cases with rugged devices |
| 47 | +## Comparison Table |
47 | 48 |
|
| 49 | +| Feature | ITS Mobile | Web Dynpro (ABAP) | UI5 Freestyle | RAP (Fiori Elements) | abap2UI5 | |
| 50 | +|----------|------------|------------------|---------------|---------------------|----------| |
| 51 | +| **Era** | 2000+ | 2003+ | 2010+ | 2019+ | 2023+ | |
| 52 | +| **UI Definition** | Dynpro Screens | ABAP Component Views | JavaScript + XML Views | CDS Annotations | ABAP Class (XML View & JSON ViewModel) | |
| 53 | +| **Data Flow** | Dynpro → HTML | Context Nodes | OData / Custom APIs | OData V4: Metadata & Data | View + ViewModel via JSON | |
| 54 | +| **UI Rendering** | Server-Side Rendering (SSR) | Server-Side Rendering (SSR) | Client-side SPA | Client-side SPA | Over-the-Wire | |
| 55 | +| **Frontend Code** | HTML generated by ITS | HTML/JS generated by ABAP runtime | Custom UI5 App (SPA) | UI5 Fiori Elements SPA Runtime | Static generic UI5 Shell | |
| 56 | +| **Developer Focus** | ABAP Dynpro | ABAP | ABAP + JavaScript | ABAP | ABAP only | |
| 57 | +| **Complexity (Frontend)** | Very Low | Low | High | Medium | Very Low | |
| 58 | +| **Typical Use Cases** | Mobile terminals, legacy apps | Transactional SAP apps | Custom, interactive dashboards | Standard CRUD apps with templates | CRUD-heavy apps, forms, dashboards | |
48 | 59 |
|
49 | | -### Comparison Table |
| 60 | +## Summary: Why abap2UI5? |
50 | 61 |
|
51 | | -| Feature | abap2UI5 | RAP (Fiori Elements) | UI5 Freestyle | Web Dynpro (ABAP) | ITS Mobile | |
52 | | -|----------|----------|---------------------|---------------|------------------|------------| |
53 | | -| **UI Definition** | ABAP Class (XML View & JSON ViewModel) | CDS Annotations | JavaScript + XML Views | Dynpro / Floorplan Components | Dynpro (SAP GUI Screens) | |
54 | | -| **Data Flow** | View + ViewModel via JSON (Over-the-Wire) | OData V4: Metadata & Data | OData / Custom APIs | Server-side (Context Nodes) | Server-side (Dynpro → HTML) | |
55 | | -| **UI Rendering** | UI5 Shell renders dynamic View from backend definitions | UI5 Fiori Elements renders UI in Browser (SPA) | UI5 Framework renders UI in Browser (SPA) | Server-side Rendering (SSR) | Server-side Rendering (SSR) | |
56 | | -| **Frontend Code** | Static generic UI5 Shell | UI5 Fiori Elements SPA Runtime | Custom UI5 App (SPA) | Generated HTML/JS from ABAP runtime | Generated HTML from ITS Service | |
57 | | -| **Developer Focus** | 100% ABAP (no JS needed) | 100% ABAP (no JS needed) | ABAP + JavaScript development | ABAP development | ABAP Dynpro development | |
58 | | -| **Architecture** | Over-the-Wire | Backend-driven SPA | Custom SPA | Server-Side Rendering (SSR) | Server-Side Rendering (SSR) | |
59 | | -| **Complexity (Frontend)** | Very Low | Medium (predefined SPA runtime) | High (full frontend stack) | Low (no client-side rendering logic) | Very Low (HTML rendering of GUI screens) | |
60 | | -| **Typical Use Cases** | CRUD-heavy apps, forms, dashboards | Standard apps with CDS-based annotations | Custom UIs, interactive dashboards | Classic SAP transactional apps | Legacy mobile apps (scanner, warehouse) | |
| 62 | +- **ITS & Web Dynpro**: Full SSR, but limited UX flexibility. |
| 63 | +- **UI5 Freestyle**: Richer UIs, but introduce SPA complexity |
| 64 | +- **RAP**: Limited Felxibility, CDS and UI Annotations |
| 65 | +- **abap2UI5**: Bridges the gap — backend-driven like ITS/Web Dynpro, but with modern UI5 rendering & Over-the-Wire efficiency. |
| 66 | + |
| 67 | +For typical business applications (forms, tables, dashboards), abap2UI5 offers a pragmatic and maintainable alternative to SPA-heavy approaches — fully in line with SAP UI5 and clean core principles. |
0 commit comments