SlideShare uma empresa Scribd logo
1 de 30
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!

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

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)
 
UI5 Overview for ROOT
UI5 Overview for ROOTUI5 Overview for ROOT
UI5 Overview for ROOT
 
Cd168 (3)
Cd168 (3)Cd168 (3)
Cd168 (3)
 
UI5conBE 2020 - Keynote
UI5conBE 2020 - KeynoteUI5conBE 2020 - Keynote
UI5conBE 2020 - Keynote
 
UI5 Tooling - Open and Extensible
UI5 Tooling - Open and ExtensibleUI5 Tooling - Open and Extensible
UI5 Tooling - Open and Extensible
 
SAPUI5 & OpenUI5 for SAP InnoJam
SAPUI5 & OpenUI5 for SAP InnoJamSAPUI5 & OpenUI5 for SAP InnoJam
SAPUI5 & OpenUI5 for SAP InnoJam
 
SAP Web IDE
SAP Web IDESAP Web IDE
SAP Web IDE
 
Sapui5 & Fiori
Sapui5 & FioriSapui5 & Fiori
Sapui5 & Fiori
 
44779e8c 5b7c-0010-82c7-eda71af511fa
44779e8c 5b7c-0010-82c7-eda71af511fa44779e8c 5b7c-0010-82c7-eda71af511fa
44779e8c 5b7c-0010-82c7-eda71af511fa
 
New Demo Kit - Your Way to UI5
New Demo Kit - Your Way to UI5New Demo Kit - Your Way to UI5
New Demo Kit - Your Way to UI5
 
JavaScript for ABAP Programmers - 1/7 Introduction
JavaScript for ABAP Programmers - 1/7 IntroductionJavaScript for ABAP Programmers - 1/7 Introduction
JavaScript for ABAP Programmers - 1/7 Introduction
 
Rendra Toro - Model View Presenter
Rendra Toro - Model View PresenterRendra Toro - Model View Presenter
Rendra Toro - Model View Presenter
 
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
 
UI5con 2019 - Keynote for Bangalore
UI5con 2019 - Keynote for BangaloreUI5con 2019 - Keynote for Bangalore
UI5con 2019 - Keynote for Bangalore
 
Benefits of AngularJS Development for Your Business - 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
 
Sdlc with mule esb
Sdlc with mule esbSdlc with mule esb
Sdlc with mule esb
 
UI5con 2019 - Keynote for Rot
UI5con 2019 - Keynote for RotUI5con 2019 - Keynote for Rot
UI5con 2019 - Keynote for Rot
 
Angular js training in noida
Angular js training in noidaAngular js training in noida
Angular js training in noida
 
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
How to increase the ui performance of apps designed using react
 
Angular 6 Form Validation with Material
Angular 6 Form Validation with MaterialAngular 6 Form Validation with Material
Angular 6 Form Validation with Material
 

Semelhante a UI5con 2017 - UI5 Evolution

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...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
ghodgkinson
 

Semelhante a UI5con 2017 - UI5 Evolution (20)

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
 
UI5con 2018 - Keynote
UI5con 2018 - KeynoteUI5con 2018 - Keynote
UI5con 2018 - Keynote
 
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
 
JavaScript - Kristiansand PHP
JavaScript - Kristiansand PHPJavaScript - Kristiansand PHP
JavaScript - Kristiansand PHP
 
Javascript Toolkit
Javascript ToolkitJavascript Toolkit
Javascript Toolkit
 
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...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
 
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)
 
Red Hat Java Update and Quarkus Introduction
Red Hat Java Update and Quarkus IntroductionRed Hat Java Update and Quarkus Introduction
Red Hat Java Update and Quarkus Introduction
 
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)
 
AngularJS - A Powerful Framework For Web Applications
AngularJS - A Powerful Framework For Web ApplicationsAngularJS - A Powerful Framework For Web Applications
AngularJS - A Powerful Framework For Web Applications
 
8 Node.js Frameworks Every Developer Should Know [UPDATED].pptx
8 Node.js Frameworks Every Developer Should Know [UPDATED].pptx8 Node.js Frameworks Every Developer Should Know [UPDATED].pptx
8 Node.js Frameworks Every Developer Should Know [UPDATED].pptx
 
Trending Popular JavaScript Frameworks.pptx
Trending Popular JavaScript Frameworks.pptxTrending Popular JavaScript Frameworks.pptx
Trending Popular JavaScript Frameworks.pptx
 
JavaScript Frameworks Popularity
JavaScript Frameworks PopularityJavaScript Frameworks Popularity
JavaScript Frameworks Popularity
 
Telerik Kendo UI vs. AngularJS
Telerik Kendo UI vs. AngularJSTelerik Kendo UI vs. AngularJS
Telerik Kendo UI vs. AngularJS
 
9 Best JavaScript Frameworks To Choose
9 Best JavaScript Frameworks To Choose9 Best JavaScript Frameworks To Choose
9 Best JavaScript Frameworks To Choose
 
Comparing AngularJS and ReactJS_ Finding the Best Framework for your Next Pro...
Comparing AngularJS and ReactJS_ Finding the Best Framework for your Next Pro...Comparing AngularJS and ReactJS_ Finding the Best Framework for your Next Pro...
Comparing AngularJS and ReactJS_ Finding the Best Framework for your Next Pro...
 
Javascript frameworks
Javascript frameworksJavascript frameworks
Javascript frameworks
 
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...
Moderniser le legacy JEE avec les containers et les microservices: patterns a...
 
JavaFX in Action Part I
JavaFX in Action Part IJavaFX in Action Part I
JavaFX in Action Part I
 

Último

%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 

Último (20)

Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 

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!

Notas do Editor

  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.