SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Evolution
What is “UI5 Evolution”?
It is “UI5’s innovation project” to solve today’s problems and to advance the
framework, tooling and controls! It is the successor of project “Cheetah” defining
the innovation key pillars.
Brief History of Time
2009
Project Phoenix was
started with the goal to
provide an open, flexible
and platform agnostic UI
layer.
2011
Strong momentum at
SAP, renamed to SAPUI5,
new Multi-Channel
Delivery to ABAP, Java,
Cloud.
2016
Fiori 2.0, Blackbird,
Project Cheetah initiated
to define the innovation
key pillars and roadmap.
2014
OpenUI5, Web IDE, Fiori,
SFIN support for SAPHIRE
(entry to S/4H), strong
growth (Sofia) …
Innovation Key Pillars
Perfor-mance
Modular-
ization
Standards &
Trends
Openness
Compa-tibility
The Problem
“UI5 today is monolithic! Although it has been designed for modularization,
there is a tight coupling between and within Core, Rendering & Controls and
Programming Model!”
The Solution
“Split the different parts of UI5 into distinct yet modular layers: the Core, the
Rendering & Controls and the Programming Model and allow for an individual
and fine-modular consumption!”
Modular
Core
Build and Development
Tools
Rendering&
Controls
Programming
Models
Modular Core
“Establish a future-proof foundation for code organization and dependency
management, enabling applications to run with just the minimum amount of
resources!”
Universal JavaScript
Independence of DOM
and jQuery. Lower layers
of the Core are usable in
DOM-less environments
like Node.js or Workers to
enable e.g. compile-time
pre-processing of
XMLViews. Higher layers
incl. controls could get rid
of jQuery.
Modular Core
“Collection of Bricks”
Restructure the Core
modules by splitting them
into a more fine granular
module set for individual
use. Introduce AMD-like
module syntax to enforce
dependency declaration
and to get rid of Globals.
Applies also to controls
and libraries.
Emerging technologies
Benefit from evolving
features such as ES6
modules or ES6 language
features. Be open to
supportTypeScript in
upper layers or support
transpiled code. For the
framework we are mainly
locked to ES5 due to
browser shipment matrix.
Asynchronous
Loader & APIs
Deprecate sync XHR!
Enable module loader to
be basically AMD
compatible. Establish
asynchronous APIs for
loading Libraries,
Components, Views &
Controllers, i18n files.
Enable asynchronous
XMLView processing.
Become ready for latest
web features.
Modular
Core
Build and Development
Tools
Rendering&
Controls
Programming
Models
“Collection of Bricks”
Asynchronous Loader
& APIs
Universal JavaScript
Emerging
Technologies
Build & Development Tooling
“Create an open-source Node.js based build & development environment to
support both application developers and framework developers!”
Build & Development Tooling
Agnostic Build
Modules
Build modules shall be
independent from a
specific task runner to
recycle them for arbitrary
JavaScript environments
like Node, Grunt, Gulp,
etc. and to replace the
existing in-house,
Maven-based tool chain.
Command Line
Interface
Implement a simplistic
CLI which assists
developers during build
and development
lifecycle based on a
dedicated set of standard
build modules.The CLI
will also include a set of
migration tools to assist
apps to migrate to the
new feature set.
Self-contained
packages
Generate a self-
contained package for
the application ready for
deployment. Leverage
dependency
management and
sophisticated bundling to
only include required and
optimized resources.
Option to generate dep-
cache info for http/2
environments.
Open, extensible tool
chain
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.
Available as Open Source!!
Modular
Core
Build and Development
Tools
Rendering&
Controls
Programming
Models
“Collection of Bricks”
Asynchronous Loader
& APIs
Universal JavaScript
Emerging
Technologies
Agnostic Build
Modules
Command Line
Interface
Self-contained
packages
Open and extensible
tool chain
Rendering & Controls
“Define a modern control framework which simplifies the creation of agnostic,
declarative, universal and themable controls which can be used with a
minimalistic footprint!”
Rendering & Controls
Lightweight Controls
Implement new Control
foundation, which is
individually usable and
requires just a
minimalistic Core. Rework
the “bread and butter”
controls. Lightweight
Controls should replace
the similar old Control.
Allow a side-by-side usage
with the old Controls.
Declarative Renderers
Introduce a template-like
declaration of Control
renderers, which
improve the agnostic
usage of a renderer for
different technologies.
Add dependencies from
a renderer to the CSS of
the Control to allow for a
determination of
necessary CSS.
Rendering Technology
Introduce a modern
rendering technology,
which allows for an
optimal re-rendering of
Controls without the
need to implement
custom setters manually
(minimize Control
footprint by reduction of
code). Integrate async
rendering.
Simplified Composition
Reduce the overhead of
Control composition by
merging the indivi-dual
Control renderers and
behaviors at build time
without writing manual
glue code. Should ensure
to get rid of variations of
Controls, as of today
having 500+ Controls just
for slight diffs.
Rendering Core (minimalistic subset of UI5 Core)
Lightweight Control
Renderer
Rendering Technology
String streaming lit-html
Behavior
Declarative Renderer
Render Context
CSS
Rendering & Controls
UI5 classic
Modular
Core
Build and Development
Tools
Rendering&
Controls
Programming
Models
“Collection of Bricks”
Asynchronous Loader
& APIs
Universal JavaScript
Emerging
Technologies
Agnostic Build
Modules
Command Line
Interface
Self-contained
packages
Open and extensible
tool chain
Lightweight Controls Declarative Renderers Rendering Technology
Control Set &
Composition
Programming Models
“Continue support for existing UI5 programming model, but move closer to de-
facto standards and support trends to enable reuse of individual UI5 layers for
other programming models!”
Programming Models
UI5 classic
Continuous support, but
will also be affected by
new APIs. A compatibility
layer will ensure that
legacy applications
(being timeless) continue
to work with UI5
Evolution and can
partially benefit from
improvements made in
the Core and the
Rendering layer.
Web Components
New default API for the
UI5 Controls: easy to
integrate, requiring a
minimal footprint. Share
fundamental UI5 qualities
with others (Fiori UX,
enterprise grade, …)
Usage of latest browser
standards like ES6
classes, Custom
Elements, Shadow DOM
and other features.
Others
Support for other
frameworks like Angular,
React andVue by
providing the UI5
Controls as Web
Components or
Lightweight Controls. For
such frameworks, there is
no need for the features
of the programming
model of UI5 and thus
usage of the UI5 Controls
is sufficient.
…
Rendering Core (minimalistic subset of UI5 Core)
Lightweight Control
Renderer
Rendering Technology
String streaming lit-html
Behavior
Declarative Renderer
Render Context
CSS
Programming Models
UI5 classic UI5 Web Components
Modular
Core
Build and Development
Tools
Rendering&
Controls
Programming
Models
“Collection of Bricks”
Asynchronous Loader
& APIs
Universal JavaScript
Emerging
Technologies
Agnostic Build
Modules
Command Line
Interface
Self-contained
packages
Open and extensible
tool chain
Lightweight Controls Declarative Renderers Rendering Technology
Control Set &
Composition
UI5 classic Web Components … Others
But – there is one more thing!
“Humans are learning from Nature and implementing it’s solutions. The evolution is a
great concept of Nature and comes with an essential feature we yet miss! Curious??”
Declare your
dependencies!Master async and be
progressive!
Orchestrate your code
execution!Stop using deprecated
APIs!
We need you!
Thank You!
Contact Information:
Peter Muessig
Lead Architect UI5
peter.muessig@sap.com
@pmuessig
Andreas Ecker
Product Owner UI5 Core and Runtime
andreas.ecker@sap.com

Weitere ähnliche Inhalte

Was ist angesagt?

Ui5con virtual tour_around_a_company_site_with_ui5
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
 
UI5con 2019 - Keynote for Bangalore
UI5con 2019 - Keynote for BangaloreUI5con 2019 - Keynote for Bangalore
UI5con 2019 - Keynote for BangalorePeter Muessig
 
44779e8c 5b7c-0010-82c7-eda71af511fa
44779e8c 5b7c-0010-82c7-eda71af511fa44779e8c 5b7c-0010-82c7-eda71af511fa
44779e8c 5b7c-0010-82c7-eda71af511faNagendra Babu
 
UI5con 2019 - Keynote for Rot
UI5con 2019 - Keynote for RotUI5con 2019 - Keynote for Rot
UI5con 2019 - Keynote for RotPeter Muessig
 
Developing Custom Controls with UI5 (OpenUI5 video lecture)
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
 
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)
Hacking the Explored App by Adding Custom Code (UI5con 2016)Nabi Zamani
 
How to Create "Hello, World!" in Fiori
How to Create "Hello, World!" in FioriHow to Create "Hello, World!" in Fiori
How to Create "Hello, World!" in FioriBlackvard
 
Session on API auto scaling, monitoring and Log management
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 managementpqrs1234
 
Mule version-crowd highlights
Mule version-crowd highlightsMule version-crowd highlights
Mule version-crowd highlightsD.Rajesh Kumar
 
Make Your Contribution Count. Adding Value to the API as a Technical Communic...
Make Your Contribution Count. Adding Value to the API as a Technical Communic...Make Your Contribution Count. Adding Value to the API as a Technical Communic...
Make Your Contribution Count. Adding Value to the API as a Technical Communic...Petko Mikhailov
 
Open API Initiative: Six months and counting
Open API Initiative: Six months and countingOpen API Initiative: Six months and counting
Open API Initiative: Six months and countingOpen API Initiative (OAI)
 
Building Your API for Longevity
Building Your API for LongevityBuilding Your API for Longevity
Building Your API for LongevityMuleSoft
 
SAPUI5 & OpenUI5 for SAP InnoJam
SAPUI5 & OpenUI5 for SAP InnoJamSAPUI5 & OpenUI5 for SAP InnoJam
SAPUI5 & OpenUI5 for SAP InnoJamDenise Nepraunig
 
Presentation at the 2016 Linux Foundation Collab Summit
Presentation at the 2016 Linux Foundation Collab SummitPresentation at the 2016 Linux Foundation Collab Summit
Presentation at the 2016 Linux Foundation Collab SummitOpen API Initiative (OAI)
 
Microservices
MicroservicesMicroservices
MicroservicesPT.JUG
 
Microsoft silverlight : top 10 features
Microsoft silverlight : top 10 features Microsoft silverlight : top 10 features
Microsoft silverlight : top 10 features Diya Singh
 

Was ist angesagt? (19)

Ui5con virtual tour_around_a_company_site_with_ui5
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_ui5
 
UI5con 2019 - Keynote for Bangalore
UI5con 2019 - Keynote for BangaloreUI5con 2019 - Keynote for Bangalore
UI5con 2019 - Keynote for Bangalore
 
44779e8c 5b7c-0010-82c7-eda71af511fa
44779e8c 5b7c-0010-82c7-eda71af511fa44779e8c 5b7c-0010-82c7-eda71af511fa
44779e8c 5b7c-0010-82c7-eda71af511fa
 
UI5con 2019 - Keynote for Rot
UI5con 2019 - Keynote for RotUI5con 2019 - Keynote for Rot
UI5con 2019 - Keynote for Rot
 
Developing Custom Controls with UI5 (OpenUI5 video lecture)
Developing Custom Controls with UI5 (OpenUI5 video lecture)Developing Custom Controls with UI5 (OpenUI5 video lecture)
Developing Custom Controls with UI5 (OpenUI5 video lecture)
 
Sapui5 & Fiori
Sapui5 & FioriSapui5 & Fiori
Sapui5 & Fiori
 
Sdlc with mule esb
Sdlc with mule esbSdlc with mule esb
Sdlc with mule esb
 
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)
Hacking the Explored App by Adding Custom Code (UI5con 2016)
 
How to Create "Hello, World!" in Fiori
How to Create "Hello, World!" in FioriHow to Create "Hello, World!" in Fiori
How to Create "Hello, World!" in Fiori
 
Session on API auto scaling, monitoring and Log management
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
 
Mule version-crowd highlights
Mule version-crowd highlightsMule version-crowd highlights
Mule version-crowd highlights
 
Make Your Contribution Count. Adding Value to the API as a Technical Communic...
Make Your Contribution Count. Adding Value to the API as a Technical Communic...Make Your Contribution Count. Adding Value to the API as a Technical Communic...
Make Your Contribution Count. Adding Value to the API as a Technical Communic...
 
MuleSoft São Paulo Meetup #3 - 18 Jun
MuleSoft São Paulo Meetup #3 - 18 JunMuleSoft São Paulo Meetup #3 - 18 Jun
MuleSoft São Paulo Meetup #3 - 18 Jun
 
Open API Initiative: Six months and counting
Open API Initiative: Six months and countingOpen API Initiative: Six months and counting
Open API Initiative: Six months and counting
 
Building Your API for Longevity
Building Your API for LongevityBuilding Your API for Longevity
Building Your API for Longevity
 
SAPUI5 & OpenUI5 for SAP InnoJam
SAPUI5 & OpenUI5 for SAP InnoJamSAPUI5 & OpenUI5 for SAP InnoJam
SAPUI5 & OpenUI5 for SAP InnoJam
 
Presentation at the 2016 Linux Foundation Collab Summit
Presentation at the 2016 Linux Foundation Collab SummitPresentation at the 2016 Linux Foundation Collab Summit
Presentation at the 2016 Linux Foundation Collab Summit
 
Microservices
MicroservicesMicroservices
Microservices
 
Microsoft silverlight : top 10 features
Microsoft silverlight : top 10 features Microsoft silverlight : top 10 features
Microsoft silverlight : top 10 features
 

Ähnlich wie Evolution of UI5 into a modular, future-proof framework

UI5con 2018 - Keynote
UI5con 2018 - KeynoteUI5con 2018 - Keynote
UI5con 2018 - KeynotePeter Muessig
 
UI5con 2018: UI5 Evolution - The Core Changes
UI5con 2018: UI5 Evolution - The Core ChangesUI5con 2018: UI5 Evolution - The Core Changes
UI5con 2018: UI5 Evolution - The Core ChangesAndreas_Ecker
 
Asp.NETZERO - A Workshop Presentation by Citytech Software
Asp.NETZERO - A Workshop Presentation by Citytech SoftwareAsp.NETZERO - A Workshop Presentation by Citytech Software
Asp.NETZERO - A Workshop Presentation by Citytech SoftwareRitwik Das
 
Cloud development technology sharing (BlueMix premier)
Cloud development technology sharing (BlueMix premier)Cloud development technology sharing (BlueMix premier)
Cloud development technology sharing (BlueMix premier)湯米吳 Tommy Wu
 
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)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)Nedelcho Delchev
 
Ora_Case_Study_Oracle Application Development Framework
Ora_Case_Study_Oracle Application Development FrameworkOra_Case_Study_Oracle Application Development Framework
Ora_Case_Study_Oracle Application Development FrameworkNeha Singh
 
Best software development tools in 2021
Best software development tools in 2021Best software development tools in 2021
Best software development tools in 2021Samaritan InfoTech
 
Top 10 Best DevOps tools in 2020
Top 10 Best DevOps tools in 2020Top 10 Best DevOps tools in 2020
Top 10 Best DevOps tools in 2020prafulIQBusiness
 
O futuro do .NET : O que eu preciso saber
O futuro do .NET : O que eu preciso saberO futuro do .NET : O que eu preciso saber
O futuro do .NET : O que eu preciso saberDanilo Bordini
 
Exploring Common Software Development Frameworks_ Key Features and Applicatio...
Exploring Common Software Development Frameworks_ Key Features and Applicatio...Exploring Common Software Development Frameworks_ Key Features and Applicatio...
Exploring Common Software Development Frameworks_ Key Features and Applicatio...BrillMindzTechnology3
 
Oracle Developer Cloud - 소개 (신기능 포함)
Oracle Developer Cloud - 소개 (신기능 포함)Oracle Developer Cloud - 소개 (신기능 포함)
Oracle Developer Cloud - 소개 (신기능 포함)Mee Nam Lee
 
manu_resume
manu_resumemanu_resume
manu_resumeManu VS
 
Eclipse Developement @ Progress Software
Eclipse Developement @ Progress SoftwareEclipse Developement @ Progress Software
Eclipse Developement @ Progress Softwaresriikanthp
 
sailfish OS ppt
sailfish OS pptsailfish OS ppt
sailfish OS pptmirgee
 
Eclipse vs Netbean vs Railo
Eclipse vs Netbean vs RailoEclipse vs Netbean vs Railo
Eclipse vs Netbean vs RailoMohd Safian
 
Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)
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 Istria
 
JavaFX: A Rich Internet Application (RIA) Development Platform
JavaFX: A Rich Internet Application (RIA) Development PlatformJavaFX: A Rich Internet Application (RIA) Development Platform
JavaFX: A Rich Internet Application (RIA) Development PlatformPraveen Srivastava
 

Ähnlich wie Evolution of UI5 into a modular, future-proof framework (20)

UI5con 2018 - Keynote
UI5con 2018 - KeynoteUI5con 2018 - Keynote
UI5con 2018 - Keynote
 
UI5con 2018: UI5 Evolution - The Core Changes
UI5con 2018: UI5 Evolution - The Core ChangesUI5con 2018: UI5 Evolution - The Core Changes
UI5con 2018: UI5 Evolution - The Core Changes
 
Think evo and use evo
Think evo and use evoThink evo and use evo
Think evo and use evo
 
Asp.NETZERO - A Workshop Presentation by Citytech Software
Asp.NETZERO - A Workshop Presentation by Citytech SoftwareAsp.NETZERO - A Workshop Presentation by Citytech Software
Asp.NETZERO - A Workshop Presentation by Citytech Software
 
Cloud development technology sharing (BlueMix premier)
Cloud development technology sharing (BlueMix premier)Cloud development technology sharing (BlueMix premier)
Cloud development technology sharing (BlueMix premier)
 
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)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
 
ASP.NET 5
ASP.NET 5ASP.NET 5
ASP.NET 5
 
What is java fx?
What is java fx?What is java fx?
What is java fx?
 
Ora_Case_Study_Oracle Application Development Framework
Ora_Case_Study_Oracle Application Development FrameworkOra_Case_Study_Oracle Application Development Framework
Ora_Case_Study_Oracle Application Development Framework
 
Best software development tools in 2021
Best software development tools in 2021Best software development tools in 2021
Best software development tools in 2021
 
Top 10 Best DevOps tools in 2020
Top 10 Best DevOps tools in 2020Top 10 Best DevOps tools in 2020
Top 10 Best DevOps tools in 2020
 
O futuro do .NET : O que eu preciso saber
O futuro do .NET : O que eu preciso saberO futuro do .NET : O que eu preciso saber
O futuro do .NET : O que eu preciso saber
 
Exploring Common Software Development Frameworks_ Key Features and Applicatio...
Exploring Common Software Development Frameworks_ Key Features and Applicatio...Exploring Common Software Development Frameworks_ Key Features and Applicatio...
Exploring Common Software Development Frameworks_ Key Features and Applicatio...
 
Oracle Developer Cloud - 소개 (신기능 포함)
Oracle Developer Cloud - 소개 (신기능 포함)Oracle Developer Cloud - 소개 (신기능 포함)
Oracle Developer Cloud - 소개 (신기능 포함)
 
manu_resume
manu_resumemanu_resume
manu_resume
 
Eclipse Developement @ Progress Software
Eclipse Developement @ Progress SoftwareEclipse Developement @ Progress Software
Eclipse Developement @ Progress Software
 
sailfish OS ppt
sailfish OS pptsailfish OS ppt
sailfish OS ppt
 
Eclipse vs Netbean vs Railo
Eclipse vs Netbean vs RailoEclipse vs Netbean vs Railo
Eclipse vs Netbean vs Railo
 
Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)
Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)
Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)
 
JavaFX: A Rich Internet Application (RIA) Development Platform
JavaFX: A Rich Internet Application (RIA) Development PlatformJavaFX: A Rich Internet Application (RIA) Development Platform
JavaFX: A Rich Internet Application (RIA) Development Platform
 

Kürzlich hochgeladen

eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolsosttopstonverter
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxRTS corp
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slidesvaideheekore1
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptxVinzoCenzo
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonApplitools
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...Bert Jan Schrijver
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jNeo4j
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?Alexandre Beguel
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shardsChristopher Curtin
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldRoberto Pérez Alcolea
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITmanoharjgpsolutions
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfRTS corp
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorTier1 app
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxRTS corp
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencessuser9e7c64
 

Kürzlich hochgeladen (20)

eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration tools
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slides
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptx
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh IT
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryError
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conference
 

Evolution of UI5 into a modular, future-proof framework

  • 2. What is “UI5 Evolution”? It is “UI5’s innovation project” to solve today’s problems and to advance the framework, tooling and controls! It is the successor of project “Cheetah” defining the innovation key pillars.
  • 3. Brief History of Time 2009 Project Phoenix was started with the goal to provide an open, flexible and platform agnostic UI layer. 2011 Strong momentum at SAP, renamed to SAPUI5, new Multi-Channel Delivery to ABAP, Java, Cloud. 2016 Fiori 2.0, Blackbird, Project Cheetah initiated to define the innovation key pillars and roadmap. 2014 OpenUI5, Web IDE, Fiori, SFIN support for SAPHIRE (entry to S/4H), strong growth (Sofia) …
  • 5. The Problem “UI5 today is monolithic! Although it has been designed for modularization, there is a tight coupling between and within Core, Rendering & Controls and Programming Model!”
  • 6. The Solution “Split the different parts of UI5 into distinct yet modular layers: the Core, the Rendering & Controls and the Programming Model and allow for an individual and fine-modular consumption!”
  • 8. Modular Core “Establish a future-proof foundation for code organization and dependency management, enabling applications to run with just the minimum amount of resources!”
  • 9. Universal JavaScript Independence of DOM and jQuery. Lower layers of the Core are usable in DOM-less environments like Node.js or Workers to enable e.g. compile-time pre-processing of XMLViews. Higher layers incl. controls could get rid of jQuery. Modular Core “Collection of Bricks” Restructure the Core modules by splitting them into a more fine granular module set for individual use. Introduce AMD-like module syntax to enforce dependency declaration and to get rid of Globals. Applies also to controls and libraries. Emerging technologies Benefit from evolving features such as ES6 modules or ES6 language features. Be open to supportTypeScript in upper layers or support transpiled code. For the framework we are mainly locked to ES5 due to browser shipment matrix. Asynchronous Loader & APIs Deprecate sync XHR! Enable module loader to be basically AMD compatible. Establish asynchronous APIs for loading Libraries, Components, Views & Controllers, i18n files. Enable asynchronous XMLView processing. Become ready for latest web features.
  • 10. Modular Core Build and Development Tools Rendering& Controls Programming Models “Collection of Bricks” Asynchronous Loader & APIs Universal JavaScript Emerging Technologies
  • 11. Build & Development Tooling “Create an open-source Node.js based build & development environment to support both application developers and framework developers!”
  • 12. Build & Development Tooling Agnostic Build Modules Build modules shall be independent from a specific task runner to recycle them for arbitrary JavaScript environments like Node, Grunt, Gulp, etc. and to replace the existing in-house, Maven-based tool chain. Command Line Interface Implement a simplistic CLI which assists developers during build and development lifecycle based on a dedicated set of standard build modules.The CLI will also include a set of migration tools to assist apps to migrate to the new feature set. Self-contained packages Generate a self- contained package for the application ready for deployment. Leverage dependency management and sophisticated bundling to only include required and optimized resources. Option to generate dep- cache info for http/2 environments. Open, extensible tool chain 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.
  • 13. Available as Open Source!!
  • 14. Modular Core Build and Development Tools Rendering& Controls Programming Models “Collection of Bricks” Asynchronous Loader & APIs Universal JavaScript Emerging Technologies Agnostic Build Modules Command Line Interface Self-contained packages Open and extensible tool chain
  • 15. Rendering & Controls “Define a modern control framework which simplifies the creation of agnostic, declarative, universal and themable controls which can be used with a minimalistic footprint!”
  • 16. Rendering & Controls Lightweight Controls Implement new Control foundation, which is individually usable and requires just a minimalistic Core. Rework the “bread and butter” controls. Lightweight Controls should replace the similar old Control. Allow a side-by-side usage with the old Controls. Declarative Renderers Introduce a template-like declaration of Control renderers, which improve the agnostic usage of a renderer for different technologies. Add dependencies from a renderer to the CSS of the Control to allow for a determination of necessary CSS. Rendering Technology Introduce a modern rendering technology, which allows for an optimal re-rendering of Controls without the need to implement custom setters manually (minimize Control footprint by reduction of code). Integrate async rendering. Simplified Composition Reduce the overhead of Control composition by merging the indivi-dual Control renderers and behaviors at build time without writing manual glue code. Should ensure to get rid of variations of Controls, as of today having 500+ Controls just for slight diffs.
  • 17. Rendering Core (minimalistic subset of UI5 Core) Lightweight Control Renderer Rendering Technology String streaming lit-html Behavior Declarative Renderer Render Context CSS Rendering & Controls UI5 classic
  • 18. Modular Core Build and Development Tools Rendering& Controls Programming Models “Collection of Bricks” Asynchronous Loader & APIs Universal JavaScript Emerging Technologies Agnostic Build Modules Command Line Interface Self-contained packages Open and extensible tool chain Lightweight Controls Declarative Renderers Rendering Technology Control Set & Composition
  • 19. Programming Models “Continue support for existing UI5 programming model, but move closer to de- facto standards and support trends to enable reuse of individual UI5 layers for other programming models!”
  • 20. Programming Models UI5 classic Continuous support, but will also be affected by new APIs. A compatibility layer will ensure that legacy applications (being timeless) continue to work with UI5 Evolution and can partially benefit from improvements made in the Core and the Rendering layer. Web Components New default API for the UI5 Controls: easy to integrate, requiring a minimal footprint. Share fundamental UI5 qualities with others (Fiori UX, enterprise grade, …) Usage of latest browser standards like ES6 classes, Custom Elements, Shadow DOM and other features. Others Support for other frameworks like Angular, React andVue by providing the UI5 Controls as Web Components or Lightweight Controls. For such frameworks, there is no need for the features of the programming model of UI5 and thus usage of the UI5 Controls is sufficient. …
  • 21. Rendering Core (minimalistic subset of UI5 Core) Lightweight Control Renderer Rendering Technology String streaming lit-html Behavior Declarative Renderer Render Context CSS Programming Models UI5 classic UI5 Web Components
  • 22. Modular Core Build and Development Tools Rendering& Controls Programming Models “Collection of Bricks” Asynchronous Loader & APIs Universal JavaScript Emerging Technologies Agnostic Build Modules Command Line Interface Self-contained packages Open and extensible tool chain Lightweight Controls Declarative Renderers Rendering Technology Control Set & Composition UI5 classic Web Components … Others
  • 23. But – there is one more thing! “Humans are learning from Nature and implementing it’s solutions. The evolution is a great concept of Nature and comes with an essential feature we yet miss! Curious??”
  • 24. Declare your dependencies!Master async and be progressive! Orchestrate your code execution!Stop using deprecated APIs! We need you!
  • 25. Thank You! Contact Information: Peter Muessig Lead Architect UI5 peter.muessig@sap.com @pmuessig Andreas Ecker Product Owner UI5 Core and Runtime andreas.ecker@sap.com