UI5con 2017 - UI5 Evolution

Peter Muessig & Andreas Ecker, SAP
June 30, 2017
UI5
Evolution
DISCLAIMER: No guarantees about future features! The whole topic is work in progress and anything might change at any time!
2
What is UI5 Evolution?
3
This is the
innovation project
of UI5 !
4
Why do we do UI5 Evolution?
5
To be the enterprise grade UI
technology of choice for SAP …
… and beyond !
6
Modularization
Performance
Trends
Compatibility
Openness
Qualities
7
UI5 Evolution
Build Tooling
Modular Core
Rendering & Controls
Prog. Models
Focus Areas  Layered Architecture
8
UI5 Evolution
Build Tooling
Modular Core
Rendering & Controls
Prog. Models
Layered Architecture
9
“Establish a future-proof foundation for code organization and dependency
management, enabling applications to run with just the minimum amount of
resources!”
Deprecation of
Sync XHR
Introduce async alternatives
to address risk of Google
Chrome changes. Create
more powerful foundation
with clear dependency
declaration.
Independence of
DOM and jQuery
Lower layers of the Core
become agnostic to typical
browser environments;
monolithic code gets broken
up.
Universal Core
Runs not only in browser-
based environments, but
also in DOM-less ones
(Node.js, Web Workers).
Allows compile-time pre-
processing on Node.js (e.g.
XML Templates).
Modular Architecture
Get rid of Globals, Modules
reorganized. Not just the Core but
the framework and libraries are
modular and apply best practice
patterns.
Embrace emerging
technologies
Benefit from evolving features
such as ES6 modules or ES6
language features. Be open to
support TypeScript for upper
levels or support transpiled code.
Configuration Options
Includes environment information
and runtime feature detection to
further structure the codebase
and make it flexible in a
parameterized way.
Modular Core
10
Demo
11
…
12
Layered Architecture
UI5 Evolution
Modular
Core
“Collection
of bricks”
Feature
Clusters
Dependency
Declaration
Universal
JavaScript
Build Tooling Rendering & Controls
Prog. Models
13
Layered Architecture
UI5 Evolution
Modular
Core
“Collection
of bricks”
Feature
Clusters
Dependency
Declaration
Universal
JavaScript
Build Tooling Rendering & Controls
Prog. Models
14
“Create an open-source Node.js based build & development environment to
support application developers and framework developers!”
Self-contained packages
Generate a self-contained
application ready for deployment.
Leverage dependency management
and sophisticated bundling to only
include required, optimized
resources.
Advanced packaging
Feature-based builds to optimize
beyond module level by code
manipulations. Integration
scenarios (e.g. FLP) to be
addressed by dynamic bundling &
loading mechanisms.
Migration tools
Support existing applications to
migrate to the new asynchronous
alternatives of the Modular Core by
converting classic modules to UI5
AMD modules and to clean-up
Globals.
Command Line Interface
Implement a simplistic CLI which
assists developers during build and
development lifecycle based on a
dedicated set of standard build
modules.
Enhance Toolchain
Complete app lifecycle aspects
such as initial creation of a
individual, pre-configured app
project; improve dev experience
for minimal round-trip (e.g. watch
& reload) and provide additional
compile-time optimizations.
Agnostic build modules
Build modules shall be independent
from a specific task runner to recycle
them for arbitrary JavaScript
environments like Node, Grunt, Gulp,
… and should be even more used to
replace the existing in-house Maven
based toolchain.
Build Tooling
15
Demo
16
https://github.com/SAP/openui5-sample-app
library-preload:
sap-ui-custom:
17
Layered Architecture
UI5 Evolution
Build Tooling
Modular
Core
“Collection
of bricks”
Feature
Clusters
Dependency
Declaration
Universal
JavaScript
Open Source
& Node.js
based
Agnostic
Build Modules
Developer &
Operational
Productivity
Bundling &
Loading
Rendering & Controls
Prog. Models
18
Layered Architecture
UI5 Evolution
Modular
Core
“Collection
of bricks”
Feature
Clusters
Dependency
Declaration
Universal
JavaScript
Rendering & Controls
Prog. Models
Build Tooling
Open Source
& Node.js
based
Agnostic
Build Modules
Developer &
Operational
Productivity
Bundling &
Loading
19
“Decouple the rendering & controls from the programming model and make it
individually and universally usable!”
Static Renderer
Separate the API & behavior from
the renderer; only the renderer
should interact with the DOM;
establish a clear interface between
programming model and control
renderers
New Renderer Syntax
Define a new declarative syntax
for the renderers which improves
their readability and simplifies the
usage of tools on top of them
Rework of B’n’B Controls
The bread & butter controls of
UI5 should be re-implemented
with the new renderer syntax;
showcase that new concepts work
to replace the existing rendering
and protects developers from
common pitfalls of today
Simplified Composition
Reduce the overhead of control
composition by merging the
individual control renderers and
behaviors at build time without
writing manual glue code
Side-by-side Integration
The new rendering should be usable
side-by-side with the old rendering;
direct comparison of rendering
approaches; should support smooth
transition to new rendering framework
without breaking existing applications
Agnostic Proof
Verify the new renderers and behaviors
can be used within other programming
models to proof the agnosticity
Rendering & Controls
20
Demo
21
22
Layered Architecture
UI5 Evolution
Build Tooling
Modular
Core
Rendering
&Controls
Static
Control
Renderers
Static
Control
Behavior
Declarative
Renderer
Syntax
“Collection
of bricks”
Feature
Clusters
Dependency
Declaration
Universal
JavaScript
Open Source
& Node.js
based
Agnostic
Build Modules
Developer &
Operational
Productivity
Bundling &
Loading
Simplified
Composite
Controls
Prog. Models
23
Layered Architecture
UI5 Evolution
Modular
Core
“Collection
of bricks”
Feature
Clusters
Dependency
Declaration
Universal
JavaScript
Prog. Models
Build Tooling
Open Source
& Node.js
based
Agnostic
Build Modules
Developer &
Operational
Productivity
Bundling &
Loading
Rendering
&Controls
Static
Control
Renderers
Static
Control
Behavior
Declarative
Renderer
Syntax
Simplified
Composite
Controls
24
Continue support for existing programming model and support trends to enable
reuse of individual UI5 layers for other programming models…
UI5 classic
Will be fully supported by UI5 evolution
but will only partially benefit from
improvements as e.g. the modules have
not been updated properly.
UI5 reactive
Not yet decided, but during the
Cheetah project we noticed that
reactive paradigms simplify the data
flow inside applications and is a clear
benefit for highly interactive
applications.
Programming Models
Reuse individual layers
Other programming models should be
able to reuse individual pieces (e.g.
the core and the rendering) of UI5
without the need to pull all pieces.
UI5 classic (migrated)
Will benefit as much as possible from
UI5 evolution as the modules have been
migrated and adopted to the UI5 AMD
syntax.
25
Demo
26
27
Layered Architecture
UI5 Evolution
Build Tooling
Modular
Core
Rendering
&Controls
Prog.
Models
UI5
(classic)
UI5
(reactive)
Others
Static
Control
Renderers
Static
Control
Behavior
Declarative
Renderer
Syntax
“Collection
of bricks”
Feature
Clusters
Dependency
Declaration
Universal
JavaScript
Open Source
& Node.js
based
Agnostic
Build Modules
Developer &
Operational
Productivity
Bundling &
Loading
Simplified
Composite
Controls
…
28
Layered Architecture
UI5 Evolution
Modular
Core
“Collection
of bricks”
Feature
Clusters
Dependency
Declaration
Universal
JavaScript
Build Tooling
Open Source
& Node.js
based
Agnostic
Build Modules
Developer &
Operational
Productivity
Bundling &
Loading
Rendering
&Controls
Static
Control
Renderers
Static
Control
Behavior
Declarative
Renderer
Syntax
Simplified
Composite
Controls
Prog.
Models
UI5
(classic)
UI5
(reactive)
Others…
29
Let’s evolve …
Thank you.
Contact information:
Peter Muessig
@pmuessig
Andreas Ecker
You are welcome to give feedback for this session
in the UI5con Event App
DISCLAIMER: No guarantees about future features! The whole topic is work in progress and anything might change at any time!
1 von 30

Recomendados

UI5con 2017 - UI5 Components - More Performance... von
UI5con 2017 - UI5 Components - More Performance...UI5con 2017 - UI5 Components - More Performance...
UI5con 2017 - UI5 Components - More Performance...Peter Muessig
3.7K views32 Folien
Developing Custom Controls with UI5 (OpenUI5 video lecture) von
Developing Custom Controls with UI5 (OpenUI5 video lecture)Developing Custom Controls with UI5 (OpenUI5 video lecture)
Developing Custom Controls with UI5 (OpenUI5 video lecture)Michael Graf
8.1K views16 Folien
SAPUI5/OpenUI5 - Continuous Integration von
SAPUI5/OpenUI5 - Continuous IntegrationSAPUI5/OpenUI5 - Continuous Integration
SAPUI5/OpenUI5 - Continuous IntegrationPeter Muessig
2.8K views18 Folien
Ui5con virtual tour_around_a_company_site_with_ui5 von
Ui5con virtual tour_around_a_company_site_with_ui5Ui5con virtual tour_around_a_company_site_with_ui5
Ui5con virtual tour_around_a_company_site_with_ui5Helmut Tammen
545 views10 Folien
UI5 Apps beyond the office (UI5con) von
UI5 Apps beyond the office (UI5con)UI5 Apps beyond the office (UI5con)
UI5 Apps beyond the office (UI5con)Denny Schreber
469 views20 Folien
UI5 Evolution Overview 2018 von
UI5 Evolution Overview 2018UI5 Evolution Overview 2018
UI5 Evolution Overview 2018Peter Muessig
1.4K views25 Folien

Más contenido relacionado

Was ist angesagt?

Hacking the Explored App by Adding Custom Code (UI5con 2016) von
Hacking the Explored App by Adding Custom Code (UI5con 2016)Hacking the Explored App by Adding Custom Code (UI5con 2016)
Hacking the Explored App by Adding Custom Code (UI5con 2016)Nabi Zamani
2.1K views60 Folien
UI5 Overview for ROOT von
UI5 Overview for ROOTUI5 Overview for ROOT
UI5 Overview for ROOTPeter Muessig
433 views36 Folien
Cd168 (3) von
Cd168 (3)Cd168 (3)
Cd168 (3)Ravi Varma
740 views29 Folien
UI5conBE 2020 - Keynote von
UI5conBE 2020 - KeynoteUI5conBE 2020 - Keynote
UI5conBE 2020 - KeynotePeter Muessig
301 views20 Folien
UI5 Tooling - Open and Extensible von
UI5 Tooling - Open and ExtensibleUI5 Tooling - Open and Extensible
UI5 Tooling - Open and ExtensiblePeter Muessig
484 views15 Folien
SAPUI5 & OpenUI5 for SAP InnoJam von
SAPUI5 & OpenUI5 for SAP InnoJamSAPUI5 & OpenUI5 for SAP InnoJam
SAPUI5 & OpenUI5 for SAP InnoJamDenise Nepraunig
1.5K views21 Folien

Was ist angesagt?(20)

Hacking the Explored App by Adding Custom Code (UI5con 2016) von Nabi Zamani
Hacking the Explored App by Adding Custom Code (UI5con 2016)Hacking the Explored App by Adding Custom Code (UI5con 2016)
Hacking the Explored App by Adding Custom Code (UI5con 2016)
Nabi Zamani2.1K views
UI5 Tooling - Open and Extensible von Peter Muessig
UI5 Tooling - Open and ExtensibleUI5 Tooling - Open and Extensible
UI5 Tooling - Open and Extensible
Peter Muessig484 views
44779e8c 5b7c-0010-82c7-eda71af511fa von Nagendra Babu
44779e8c 5b7c-0010-82c7-eda71af511fa44779e8c 5b7c-0010-82c7-eda71af511fa
44779e8c 5b7c-0010-82c7-eda71af511fa
Nagendra Babu246 views
New Demo Kit - Your Way to UI5 von Petya Begovska
New Demo Kit - Your Way to UI5New Demo Kit - Your Way to UI5
New Demo Kit - Your Way to UI5
Petya Begovska176 views
JavaScript for ABAP Programmers - 1/7 Introduction von Chris Whealy
JavaScript for ABAP Programmers - 1/7 IntroductionJavaScript for ABAP Programmers - 1/7 Introduction
JavaScript for ABAP Programmers - 1/7 Introduction
Chris Whealy6.3K views
Rendra Toro - Model View Presenter von Dicoding
Rendra Toro - Model View PresenterRendra Toro - Model View Presenter
Rendra Toro - Model View Presenter
Dicoding1.3K views
Session on API auto scaling, monitoring and Log management von pqrs1234
Session on API auto scaling, monitoring and Log managementSession on API auto scaling, monitoring and Log management
Session on API auto scaling, monitoring and Log management
pqrs1234687 views
UI5con 2019 - Keynote for Bangalore von Peter Muessig
UI5con 2019 - Keynote for BangaloreUI5con 2019 - Keynote for Bangalore
UI5con 2019 - Keynote for Bangalore
Peter Muessig605 views
Benefits of AngularJS Development for Your Business - APPNWEB Technologies von APPNWEB Technologies
Benefits of AngularJS Development for Your Business - APPNWEB TechnologiesBenefits of AngularJS Development for Your Business - APPNWEB Technologies
Benefits of AngularJS Development for Your Business - APPNWEB Technologies
UI5con 2019 - Keynote for Rot von Peter Muessig
UI5con 2019 - Keynote for RotUI5con 2019 - Keynote for Rot
UI5con 2019 - Keynote for Rot
Peter Muessig890 views
How to increase the ui performance of apps designed using react von MoonTechnolabsPvtLtd
How to increase the ui performance of apps designed using react How to increase the ui performance of apps designed using react
How to increase the ui performance of apps designed using react
Angular 6 Form Validation with Material von Malika Munaweera
Angular 6 Form Validation with MaterialAngular 6 Form Validation with Material
Angular 6 Form Validation with Material
Malika Munaweera174 views

Similar a UI5con 2017 - UI5 Evolution

UI5con 2018: UI5 Evolution - The Core Changes von
UI5con 2018: UI5 Evolution - The Core ChangesUI5con 2018: UI5 Evolution - The Core Changes
UI5con 2018: UI5 Evolution - The Core ChangesAndreas_Ecker
594 views36 Folien
Think evo and use evo von
Think evo and use evoThink evo and use evo
Think evo and use evoRam Prasad G S
167 views50 Folien
UI5con 2018 - Keynote von
UI5con 2018 - KeynoteUI5con 2018 - Keynote
UI5con 2018 - KeynotePeter Muessig
2K views44 Folien
Asp.NETZERO - A Workshop Presentation by Citytech Software von
Asp.NETZERO - A Workshop Presentation by Citytech SoftwareAsp.NETZERO - A Workshop Presentation by Citytech Software
Asp.NETZERO - A Workshop Presentation by Citytech SoftwareRitwik Das
261 views15 Folien
JavaScript - Kristiansand PHP von
JavaScript - Kristiansand PHPJavaScript - Kristiansand PHP
JavaScript - Kristiansand PHPholeedave
325 views18 Folien
Javascript Toolkit von
Javascript ToolkitJavascript Toolkit
Javascript ToolkitTania Gonzales
569 views49 Folien

Similar a UI5con 2017 - UI5 Evolution(20)

UI5con 2018: UI5 Evolution - The Core Changes von Andreas_Ecker
UI5con 2018: UI5 Evolution - The Core ChangesUI5con 2018: UI5 Evolution - The Core Changes
UI5con 2018: UI5 Evolution - The Core Changes
Andreas_Ecker594 views
Asp.NETZERO - A Workshop Presentation by Citytech Software von Ritwik Das
Asp.NETZERO - A Workshop Presentation by Citytech SoftwareAsp.NETZERO - A Workshop Presentation by Citytech Software
Asp.NETZERO - A Workshop Presentation by Citytech Software
Ritwik Das261 views
JavaScript - Kristiansand PHP von holeedave
JavaScript - Kristiansand PHPJavaScript - Kristiansand PHP
JavaScript - Kristiansand PHP
holeedave325 views
Software Factories in the Real World: How an IBM WebSphere Integration Factor... von ghodgkinson
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
ghodgkinson577 views
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015) von Nedelcho Delchev
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Nedelcho Delchev887 views
Red Hat Java Update and Quarkus Introduction von John Archer
Red Hat Java Update and Quarkus IntroductionRed Hat Java Update and Quarkus Introduction
Red Hat Java Update and Quarkus Introduction
John Archer687 views
Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011) von Mickael Istria
Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)
Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)
Mickael Istria1.7K views
AngularJS - A Powerful Framework For Web Applications von Idexcel Technologies
AngularJS - A Powerful Framework For Web ApplicationsAngularJS - A Powerful Framework For Web Applications
AngularJS - A Powerful Framework For Web Applications
Telerik Kendo UI vs. AngularJS von Rainer Stropek
Telerik Kendo UI vs. AngularJSTelerik Kendo UI vs. AngularJS
Telerik Kendo UI vs. AngularJS
Rainer Stropek23K views
Moderniser le legacy JEE avec les containers et les microservices: patterns a... von VMware Tanzu
Moderniser le legacy JEE avec les containers et les microservices: patterns a...Moderniser le legacy JEE avec les containers et les microservices: patterns a...
Moderniser le legacy JEE avec les containers et les microservices: patterns a...
VMware Tanzu187 views
Infrastructure as Software by Paul Stack von NETWAYS
Infrastructure as Software by Paul StackInfrastructure as Software by Paul Stack
Infrastructure as Software by Paul Stack
NETWAYS76 views
Cloud development technology sharing (BlueMix premier) von 湯米吳 Tommy Wu
Cloud development technology sharing (BlueMix premier)Cloud development technology sharing (BlueMix premier)
Cloud development technology sharing (BlueMix premier)
湯米吳 Tommy Wu716 views

Último

ict act 1.pptx von
ict act 1.pptxict act 1.pptx
ict act 1.pptxsanjaniarun08
13 views17 Folien
What Can Employee Monitoring Software Do?​ von
What Can Employee Monitoring Software Do?​What Can Employee Monitoring Software Do?​
What Can Employee Monitoring Software Do?​wAnywhere
21 views11 Folien
Copilot Prompting Toolkit_All Resources.pdf von
Copilot Prompting Toolkit_All Resources.pdfCopilot Prompting Toolkit_All Resources.pdf
Copilot Prompting Toolkit_All Resources.pdfRiccardo Zamana
6 views4 Folien
DSD-INT 2023 Next-Generation Flood Inundation Mapping for Taiwan - Delft3D FM... von
DSD-INT 2023 Next-Generation Flood Inundation Mapping for Taiwan - Delft3D FM...DSD-INT 2023 Next-Generation Flood Inundation Mapping for Taiwan - Delft3D FM...
DSD-INT 2023 Next-Generation Flood Inundation Mapping for Taiwan - Delft3D FM...Deltares
7 views40 Folien
DSD-INT 2023 Simulating a falling apron in Delft3D 4 - Engineering Practice -... von
DSD-INT 2023 Simulating a falling apron in Delft3D 4 - Engineering Practice -...DSD-INT 2023 Simulating a falling apron in Delft3D 4 - Engineering Practice -...
DSD-INT 2023 Simulating a falling apron in Delft3D 4 - Engineering Practice -...Deltares
6 views15 Folien
MariaDB stored procedures and why they should be improved von
MariaDB stored procedures and why they should be improvedMariaDB stored procedures and why they should be improved
MariaDB stored procedures and why they should be improvedFederico Razzoli
8 views32 Folien

Último(20)

What Can Employee Monitoring Software Do?​ von wAnywhere
What Can Employee Monitoring Software Do?​What Can Employee Monitoring Software Do?​
What Can Employee Monitoring Software Do?​
wAnywhere21 views
Copilot Prompting Toolkit_All Resources.pdf von Riccardo Zamana
Copilot Prompting Toolkit_All Resources.pdfCopilot Prompting Toolkit_All Resources.pdf
Copilot Prompting Toolkit_All Resources.pdf
Riccardo Zamana6 views
DSD-INT 2023 Next-Generation Flood Inundation Mapping for Taiwan - Delft3D FM... von Deltares
DSD-INT 2023 Next-Generation Flood Inundation Mapping for Taiwan - Delft3D FM...DSD-INT 2023 Next-Generation Flood Inundation Mapping for Taiwan - Delft3D FM...
DSD-INT 2023 Next-Generation Flood Inundation Mapping for Taiwan - Delft3D FM...
Deltares7 views
DSD-INT 2023 Simulating a falling apron in Delft3D 4 - Engineering Practice -... von Deltares
DSD-INT 2023 Simulating a falling apron in Delft3D 4 - Engineering Practice -...DSD-INT 2023 Simulating a falling apron in Delft3D 4 - Engineering Practice -...
DSD-INT 2023 Simulating a falling apron in Delft3D 4 - Engineering Practice -...
Deltares6 views
MariaDB stored procedures and why they should be improved von Federico Razzoli
MariaDB stored procedures and why they should be improvedMariaDB stored procedures and why they should be improved
MariaDB stored procedures and why they should be improved
Elevate your SAP landscape's efficiency and performance with HCL Workload Aut... von HCLSoftware
Elevate your SAP landscape's efficiency and performance with HCL Workload Aut...Elevate your SAP landscape's efficiency and performance with HCL Workload Aut...
Elevate your SAP landscape's efficiency and performance with HCL Workload Aut...
HCLSoftware6 views
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ... von Donato Onofri
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...
Donato Onofri711 views
Software testing company in India.pptx von SakshiPatel82
Software testing company in India.pptxSoftware testing company in India.pptx
Software testing company in India.pptx
SakshiPatel827 views
DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J... von Deltares
DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J...DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J...
DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J...
Deltares9 views
Navigating container technology for enhanced security by Niklas Saari von Metosin Oy
Navigating container technology for enhanced security by Niklas SaariNavigating container technology for enhanced security by Niklas Saari
Navigating container technology for enhanced security by Niklas Saari
Metosin Oy8 views
Citi TechTalk Session 2: Kafka Deep Dive von confluent
Citi TechTalk Session 2: Kafka Deep DiveCiti TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep Dive
confluent17 views
Headless JS UG Presentation.pptx von Jack Spektor
Headless JS UG Presentation.pptxHeadless JS UG Presentation.pptx
Headless JS UG Presentation.pptx
Jack Spektor7 views
Generic or specific? Making sensible software design decisions von Bert Jan Schrijver
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
DSD-INT 2023 European Digital Twin Ocean and Delft3D FM - Dols von Deltares
DSD-INT 2023 European Digital Twin Ocean and Delft3D FM - DolsDSD-INT 2023 European Digital Twin Ocean and Delft3D FM - Dols
DSD-INT 2023 European Digital Twin Ocean and Delft3D FM - Dols
Deltares7 views
DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko... von Deltares
DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko...DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko...
DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko...
Deltares11 views

UI5con 2017 - UI5 Evolution

  • 1. Peter Muessig & Andreas Ecker, SAP June 30, 2017 UI5 Evolution DISCLAIMER: No guarantees about future features! The whole topic is work in progress and anything might change at any time!
  • 2. 2 What is UI5 Evolution?
  • 3. 3 This is the innovation project of UI5 !
  • 4. 4 Why do we do UI5 Evolution?
  • 5. 5 To be the enterprise grade UI technology of choice for SAP … … and beyond !
  • 7. 7 UI5 Evolution Build Tooling Modular Core Rendering & Controls Prog. Models Focus Areas  Layered Architecture
  • 8. 8 UI5 Evolution Build Tooling Modular Core Rendering & Controls Prog. Models Layered Architecture
  • 9. 9 “Establish a future-proof foundation for code organization and dependency management, enabling applications to run with just the minimum amount of resources!” Deprecation of Sync XHR Introduce async alternatives to address risk of Google Chrome changes. Create more powerful foundation with clear dependency declaration. Independence of DOM and jQuery Lower layers of the Core become agnostic to typical browser environments; monolithic code gets broken up. Universal Core Runs not only in browser- based environments, but also in DOM-less ones (Node.js, Web Workers). Allows compile-time pre- processing on Node.js (e.g. XML Templates). Modular Architecture Get rid of Globals, Modules reorganized. Not just the Core but the framework and libraries are modular and apply best practice patterns. Embrace emerging technologies Benefit from evolving features such as ES6 modules or ES6 language features. Be open to support TypeScript for upper levels or support transpiled code. Configuration Options Includes environment information and runtime feature detection to further structure the codebase and make it flexible in a parameterized way. Modular Core
  • 12. 12 Layered Architecture UI5 Evolution Modular Core “Collection of bricks” Feature Clusters Dependency Declaration Universal JavaScript Build Tooling Rendering & Controls Prog. Models
  • 13. 13 Layered Architecture UI5 Evolution Modular Core “Collection of bricks” Feature Clusters Dependency Declaration Universal JavaScript Build Tooling Rendering & Controls Prog. Models
  • 14. 14 “Create an open-source Node.js based build & development environment to support application developers and framework developers!” Self-contained packages Generate a self-contained application ready for deployment. Leverage dependency management and sophisticated bundling to only include required, optimized resources. Advanced packaging Feature-based builds to optimize beyond module level by code manipulations. Integration scenarios (e.g. FLP) to be addressed by dynamic bundling & loading mechanisms. Migration tools Support existing applications to migrate to the new asynchronous alternatives of the Modular Core by converting classic modules to UI5 AMD modules and to clean-up Globals. Command Line Interface Implement a simplistic CLI which assists developers during build and development lifecycle based on a dedicated set of standard build modules. Enhance Toolchain Complete app lifecycle aspects such as initial creation of a individual, pre-configured app project; improve dev experience for minimal round-trip (e.g. watch & reload) and provide additional compile-time optimizations. Agnostic build modules Build modules shall be independent from a specific task runner to recycle them for arbitrary JavaScript environments like Node, Grunt, Gulp, … and should be even more used to replace the existing in-house Maven based toolchain. Build Tooling
  • 17. 17 Layered Architecture UI5 Evolution Build Tooling Modular Core “Collection of bricks” Feature Clusters Dependency Declaration Universal JavaScript Open Source & Node.js based Agnostic Build Modules Developer & Operational Productivity Bundling & Loading Rendering & Controls Prog. Models
  • 18. 18 Layered Architecture UI5 Evolution Modular Core “Collection of bricks” Feature Clusters Dependency Declaration Universal JavaScript Rendering & Controls Prog. Models Build Tooling Open Source & Node.js based Agnostic Build Modules Developer & Operational Productivity Bundling & Loading
  • 19. 19 “Decouple the rendering & controls from the programming model and make it individually and universally usable!” Static Renderer Separate the API & behavior from the renderer; only the renderer should interact with the DOM; establish a clear interface between programming model and control renderers New Renderer Syntax Define a new declarative syntax for the renderers which improves their readability and simplifies the usage of tools on top of them Rework of B’n’B Controls The bread & butter controls of UI5 should be re-implemented with the new renderer syntax; showcase that new concepts work to replace the existing rendering and protects developers from common pitfalls of today Simplified Composition Reduce the overhead of control composition by merging the individual control renderers and behaviors at build time without writing manual glue code Side-by-side Integration The new rendering should be usable side-by-side with the old rendering; direct comparison of rendering approaches; should support smooth transition to new rendering framework without breaking existing applications Agnostic Proof Verify the new renderers and behaviors can be used within other programming models to proof the agnosticity Rendering & Controls
  • 21. 21
  • 22. 22 Layered Architecture UI5 Evolution Build Tooling Modular Core Rendering &Controls Static Control Renderers Static Control Behavior Declarative Renderer Syntax “Collection of bricks” Feature Clusters Dependency Declaration Universal JavaScript Open Source & Node.js based Agnostic Build Modules Developer & Operational Productivity Bundling & Loading Simplified Composite Controls Prog. Models
  • 23. 23 Layered Architecture UI5 Evolution Modular Core “Collection of bricks” Feature Clusters Dependency Declaration Universal JavaScript Prog. Models Build Tooling Open Source & Node.js based Agnostic Build Modules Developer & Operational Productivity Bundling & Loading Rendering &Controls Static Control Renderers Static Control Behavior Declarative Renderer Syntax Simplified Composite Controls
  • 24. 24 Continue support for existing programming model and support trends to enable reuse of individual UI5 layers for other programming models… UI5 classic Will be fully supported by UI5 evolution but will only partially benefit from improvements as e.g. the modules have not been updated properly. UI5 reactive Not yet decided, but during the Cheetah project we noticed that reactive paradigms simplify the data flow inside applications and is a clear benefit for highly interactive applications. Programming Models Reuse individual layers Other programming models should be able to reuse individual pieces (e.g. the core and the rendering) of UI5 without the need to pull all pieces. UI5 classic (migrated) Will benefit as much as possible from UI5 evolution as the modules have been migrated and adopted to the UI5 AMD syntax.
  • 26. 26
  • 27. 27 Layered Architecture UI5 Evolution Build Tooling Modular Core Rendering &Controls Prog. Models UI5 (classic) UI5 (reactive) Others Static Control Renderers Static Control Behavior Declarative Renderer Syntax “Collection of bricks” Feature Clusters Dependency Declaration Universal JavaScript Open Source & Node.js based Agnostic Build Modules Developer & Operational Productivity Bundling & Loading Simplified Composite Controls …
  • 28. 28 Layered Architecture UI5 Evolution Modular Core “Collection of bricks” Feature Clusters Dependency Declaration Universal JavaScript Build Tooling Open Source & Node.js based Agnostic Build Modules Developer & Operational Productivity Bundling & Loading Rendering &Controls Static Control Renderers Static Control Behavior Declarative Renderer Syntax Simplified Composite Controls Prog. Models UI5 (classic) UI5 (reactive) Others…
  • 30. Thank you. Contact information: Peter Muessig @pmuessig Andreas Ecker You are welcome to give feedback for this session in the UI5con Event App DISCLAIMER: No guarantees about future features! The whole topic is work in progress and anything might change at any time!

Hinweis der Redaktion

  1. UI5 evolution is the successor of project Cheetah and the innovation project of UI5.
  2. Start with the Duplo Block Split into separate pieces => Modularization Build the jet => Performance Add the train => Trends Why do we not do this together with the community? - We need to learn what to do? We need a plan what to do and provide the basement/structures! - We need to see how we can do that?
  3. 15min – 20min
  4. The Whys: “Remove sync XHR, leverage dependency analysis for existing bundling tools, standard module loaders, HTTP/2, etc.!” “Make independent of DOM API and jQuery to structure and maintain code in a clean, layered architecture!” “Universal Core allows for build time optimizations such as XML templating!” “Allows to reduce footprint by picking and combining the individual parts needed, instead of a larger, monolithic code!” “Helps to renovate the libraries concept – remove the runtime overhead!”
  5. Demo: Showcase new module structure / Migration tooling (explain) => compatibility!
  6. jquery.sap.* modules will be split into individual modules and used inside jquery.sap.* modules to ensure compatibility for legacy scenarios
  7. 20min-25min Explain the importance of the build tooling
  8. The Whys: “Plays a central role for performance; a lot of runtime aspects shift to compile-time!” “Supports developers in entire lifecycle, e.g. generating apps from sources, testing or scaffolding projects and assets!” “Establish a familiar environment for developers, which can be easily enhanced with additional tools!” “Is to become open-source and uses open-source to benefit from de facto standard tooling and innovations!” “Bridges the gaps of today‘s Node.js tooling for large software projects and fulfills enterprise scaling requirements!” --- Environment: CLI for simplistic and standard usage / individual build modules for integration aspects and custom usage Continuous Transition Identify features of existing Maven build tools to be converted and complemented by node.js solutions. Reference apps Provide and evolve sample apps that perfectly align with the development activities for a modular core and build tooling. Low complexity while showcasing all practical use cases. Developing apps Generate a running app from sources, across code repos, unmodified and not relocated. For a maximum of debugging capabilities and improved developer efficiency. Deploying apps Generate a self-contained application ready for deployment. Leverage dependency management and sophisticated bundling to only include required, optimized resources. Hybrid mobile apps Demonstrate practical deployment of such a self-contained app package via Apache Cordova framework.
  9. Demo: Comparision of preload and custom build…
  10. Self-contained build => 1/3 size of preload build.
  11. 25min-30min
  12. Composition: aggregates standard controls or other composites -> lower the amount of controls to provide The Whys: “Strict separation between rendering & programming model!” “Rendering layer should be agnostic to support arbitrary programming models – without the overhead of using the UI5 programming model!” “Reduce the amount of controls; establish better composition support without overhead!” “Allow the usage of the rendering during runtime and compile-time!” “Shift rendering to Web Workers!”
  13. Demo: Showcase how the handlebars based rendering
  14. Example of declarative renderer based on Handlebars
  15. 35min
  16. Demo: Showcase a Fiori application with new codebase
  17. Fiori Elements application runs on top of Evolution code base.