@@ -12,41 +12,33 @@ This page provides a structured technical comparison between **UI5 Freestyle** a
12
12
| Aspect | UI5 Freestyle (MVC) | abap2UI5 |
13
13
| -------------------| -------------------------------------------------------------| ------------------------------------------------------------|
14
14
| ** Backend Stack** | ABAP services (OData/REST), loosely coupled | ABAP Classes generating XML Views and JSON ViewModels |
15
- | ** Frontend Stack** | UI5 app (JavaScript, XML, Controller) | Static UI5 Shell |
15
+ | ** Frontend Stack** | UI5 Freestyle app (JavaScript, XML, Controller) | UI5 Freestyle App Static |
16
16
| ** Rendering** | View rendered by frontend controller | UI structure defined by backend, rendered in frontend |
17
17
| ** UI Definition** | XML Views maintained in frontend project | XML Views created directly in ABAP |
18
18
| ** Communication** | OData or custom AJAX calls | Simple HTTP requests (Over-the-Wire) |
19
19
| ** Runtime Control** | Logic split between backend and UI controller | Full control over UI and logic in backend |
20
+ | ** Model** | Defined at designtime via CDS | Designed at Designtime or Runtime via Internal Tables |
20
21
21
- ### 2. State Management
22
-
23
- | Aspect | UI5 Freestyle | abap2UI5 |
24
- | ----------------------------| -----------------------------------------------------| -----------------------------------------------------|
25
- | ** State Definition** | Managed in frontend model (JSON/BindingContexts) | Centralized in ABAP ViewModels |
26
- | ** Frontend Involvement** | Fully responsible for UI state | Frontend has no independent state management |
27
- | ** Persistence** | Via backend APIs or model syncing | Reflected through ViewModel updates |
28
- | ** User Interaction Flow** | Triggers JS controller events and backend calls | Triggers backend events, state is updated in ABAP |
29
-
30
- ### 3. Developer Workflow
22
+ ### 2. Developer Workflow
31
23
32
24
| Aspect | UI5 Freestyle | abap2UI5 |
33
25
| ----------------------------| -----------------------------------------------------| --------------------------------------------------------|
34
- | ** Languages/Artifacts** | JS, XML, HTML, ABAP services | ABAP class for both View and logic |
26
+ | ** Languages/Artifacts** | JS, XML, HTML, OData services | ABAP class for both View and logic |
35
27
| ** Frontend Deployment** | UI5 app built and deployed to BSP/MTA | Shared static UI5 Shell (no app-specific deployment) |
36
28
| ** Tooling Requirements** | SAP Business Application Studio / Web IDE | Any ABAP IDE (including SE80), no additional tools |
37
29
| ** Transport** | Separate transport for frontend and backend | Single backend deployment via transport or abapGit |
38
30
| ** Development Style** | Imperative, frontend-driven | Declarative, ABAP-centric |
39
31
| ** Complexity** | High: frontend/backend split | Low: unified backend logic and layout |
40
32
41
- ### 4 . Client–Server Communication Flow
33
+ ### 3 . Client–Server Communication Flow
42
34
43
35
#### UI5 Freestyle
44
36
45
37
``` plaintext
46
38
Browser (UI5 App)
47
39
├──> Load HTML/CSS/JS resources
48
40
├──> Initialize models and views
49
- ├──> Bind data via OData/custom AJAX
41
+ ├──> Bind data via OData
50
42
├──> Handle logic in JS controller
51
43
Backend (OData/REST)
52
44
└──> Responds to requests, no control over UI
@@ -62,7 +54,7 @@ Backend (ABAP Class)
62
54
└──> Processes event, updates ViewModel, returns changes
63
55
```
64
56
65
- ### 5 . Flexibility & Runtime Capabilities
57
+ ### 4 . Flexibility & Runtime Capabilities
66
58
67
59
| Aspect | UI5 Freestyle | abap2UI5 |
68
60
| ---------------------------| ---------------------------------------------| ------------------------------------------|
@@ -71,7 +63,7 @@ Backend (ABAP Class)
71
63
| ** Use Case Fit** | Highly interactive or frontend-heavy apps | Backend-driven UIs with clean backend control |
72
64
| ** Learning Curve** | Steep (JS, XML, binding, tooling) | Flat (ABAP-only, no JS or metadata) |
73
65
74
- ### 6 . Cloud Readiness & Compliance
66
+ ### 5 . Cloud Readiness & Compliance
75
67
76
68
| Feature | UI5 Freestyle | abap2UI5 |
77
69
| ----------------------------| -------------------------------| -------------------------------|
@@ -80,7 +72,7 @@ Backend (ABAP Class)
80
72
| ** Clean Core Compliance** | ✅ Possible | ✅ Yes |
81
73
| ** Runtime Flexibility** | ✅ via JS logic | ✅ Fully runtime-capable |
82
74
83
- > 🚀 ** Both frameworks offer full UI flexibility.** abap2UI5 allows this using only ABAP, while UI5 Freestyle shifts control to the JavaScript layer.
75
+ > 🚀 ** Both approaches offer full UI flexibility.** abap2UI5 allows this using only ABAP, while UI5 Freestyle shifts control to the JavaScript layer.
84
76
85
77
### Conclusion
86
78
@@ -93,11 +85,10 @@ Backend (ABAP Class)
93
85
| --------------------------| -------------------------------| -----------------------------------|
94
86
| UI Architecture | JavaScript MVC | Backend-driven Over-the-Wire |
95
87
| Data & Actions | OData / custom AJAX | Simple HTTP |
96
- | State Handling | JSON Models in frontend | Central ABAP ViewModel |
97
88
| UI Customization | Fully flexible via JS | Fully dynamic via ABAP |
98
89
| Tooling | BAS / Web IDE | Any ABAP IDE |
99
90
| Cloud Readiness | ✅ Yes | ✅ Yes |
100
- | Clean Core | ✅ Possible | ✅ Yes |
91
+ | Clean Core | ✅ Yes | ✅ Yes |
101
92
| Use Case Fit | Interactive web apps | Backend-driven UIs |
102
93
| Learning Curve | High | Low |
103
- | Deployment | Split frontend/backend | Unified backend class |
94
+ | Deployment | Split frontend/backend | Pure ABAP backend class |
0 commit comments