Empowering Advanced Users: Extending OutSystems UI Framework with Openness and Extensibility

Bernardo Cardoso
Bernardo CardosoFrontend Engineer um OutSystems
Extending OutSystems UI Framework with
Openness and Extensibility
Bernardo Cardoso
Senior Software Engineer @OutSystems
Empowering Advanced
Users
What you’ll
learn here
1. How we got here
2. Now & Future
• The new vision
• Why
• How
3. Extensibility Vision
4. Demo
5. Public GitHub Repo
6. See you later
How we got here
From Silk to OutSystems UI
2015-2016
Silk UI/ Silk UI Mobile
● Great out-of-the-box defaults.
● Completely closed Patterns.
Extensibility
Developer Experience
2018
OutSystems UI Web
● Increased extensibility & customization with
ExtendedClass and CSS Variables.
● Atomic Design.
● Less emphasis on defaults, as increased
modularity was expected to be used by
developers.
Extensibility
Developer Experience
2015-2016
2019
OutSystems UI
● Continuity of OutSystems UI Web CSS
improvements.
● Loss on the JavasScript extensibility, as
this was a continuation of the old Silk UI
Mobile.
2015-2016
2018
Extensibility
Developer Experience
2019
2022
OutSystems UI (New JS Framework)
● Great increase on extensibility.
● Improvement of the out-of-the-box
defaults and developer experience.
2015-2016
2018
Extensibility
Developer Experience
Now & Future
The new vision
Why
Give more power to customers
Why
Give more power to customers
Improve low-code developer experience
Why
Give more power to customers
Improve low-code developer experience
Why
Improve code quality and security
How
Scalability
How
Scalability
Openness
How
Scalability
Openness
Community driven
How
The tools
A new JavaScript Framework, that holds all Patterns Classes and API’s
used on the low-code side.
Implementation of TypeScript and SCSS.
All done on Visual Studio Code and stored on GitHub.
#scalability
#scalability
Providers
#scalability
Providers
OSFramework
#scalability
OutSystems Low-Code
Providers
OSFramework
OSUI API
#scalability
OutSystems Low-Code
Providers
OSFramework
OSUI API
#scalability
OnInitialize
OnReady
ParametersChange
Destroy
OutSystems.OSUI.<PatternsName>API.Create
OutSystems.OSUI.<PatternsName>API.Initialize
OutSystems.OSUI.<PatternsName>API.ChangeProperty
OutSystems.OSUI.<PatternsName>API.Destroy
OutSystems Low-Code
Providers
OSFramework
OSUI API
#scalability
For more information about the architecture
behind it, check the amazing talk by Ruben
Gonçalves: Building Frameworks: from concept to
completion.
You can also check the public OutSystems UI JS
TypeDocs’s Documentation, with UML Diagrams
with detailed information about properties,
methods, interfaces, inheritance, etc., for each
Pattern’s JS Class.
#openness
Extensibility Vision
Block’s Input Parameters
OutSystems UI Providers Client Actions
OutSystems UI JS API
Custom Code
OutSystems UI Client Actions
Blocks Input Parameters
● Root level
● OptionalConfigs
structures
#openness #scalability
Block’s Input Parameters
OutSystems UI Providers Client Actions
OutSystems UI JS API
Custom Code
OutSystems UI Client Actions
UI Patterns’s Client Actions
● Low-code wrappers for the
API calls on OutSystems UI
JS.
● Covers basic use-cases like
Open/Close/Disabled/etc or
it can be used to offer other
non-essential use-cases,
that wouldn’t fit as Input
Parameters.
#openness #scalability
Block’s Input Parameters
OutSystems UI Providers Client Actions
OutSystems UI JS API
Custom Code
OutSystems UI Client Actions
“The new AdvancedFormat”
● Set[ProviderName]Configs
● Set[ProviderName]Event
● Unset[ProviderName]Event
#openness #scalability
Check a full detailed example on this article:
OutSystems UI Extensibility Part I
https://medium.com/@bernardocardoso/outsystems-ui-extensibility-part-i-f0d5304896ee
Amazing Author
Block’s Input Parameters
OutSystems UI Providers Client Actions
OutSystems UI JS API
Custom Code
OutSystems UI Client Actions
Direct usage of API’s from
OutSystems UI, that are not
covered by Client Actions.
Better to use them on the
Initialized event of each
Pattern.
#openness #scalability
Block’s Input Parameters
OutSystems UI Providers Client Actions
OutSystems UI JS API
Custom Code
OutSystems UI Client Actions
● Extend Pattern’s JS
Classes
● Install OutSystems UI
npm package
● Create new Patterns
using our TypeScript
architecture
● Generate your own scss
theme.
#openness #scalability
Check a full detailed example on this article:
OutSystems UI Extensibility Part II
https://medium.com/@bernardocardoso/outsystems-ui-extensibility-part-ii-dd35da19de4e
Amazing Author
Approachability
C
o
m
p
l
e
x
i
t
y
Block’s Input Parameters
OutSystems UI Providers Client Actions
OutSystems UI JS API
Custom Code
OutSystems UI Client Actions
Configurability
(OutSystems Low-Code)
More extensibility solutions
abstracted to low-code.
#openness #scalability
Approachability
C
o
m
p
l
e
x
i
t
y
Block’s Input Parameters
OutSystems UI Providers Client Actions
OutSystems UI JS API
Custom Code
OutSystems UI Client Actions
High Code
(JavaScript/TypeScript)
More freedom for advanced
developers, that know and
want to have control of the
code behind the UI Patterns.
#openness #scalability
Configurability
(OutSystems Low-Code)
More extensibility solutions
abstracted to low-code.
Extensibility Example
Install npm package & extend UI Pattern’s
JS Class
Github Repo
#openness #community-driven
OutSystems UI npm package
OutSystems UI Git Repository
PR’s are very much
welcomed! 👍
OutSystems UI npm package
OutSystems UI Git Repository
PR’s are very much
welcomed! 👍
#openness #community-driven
https://medium.com/@bernardocardoso
https://www.linkedin.com/in/bernardo-cardoso-0a740b95/
Thank You
Bernardo Cardoso
Senior Software Engineer @OutSystems
40
RATE THE SESSION
Go to the app > agenda > select the session > rate.
Extending OutSystems UI Framework with
Openness and Extensibility
Empowering Advanced
Users
1 von 41

Recomendados

Characteristics of Embedded Systems von
Characteristics of Embedded SystemsCharacteristics of Embedded Systems
Characteristics of Embedded SystemsShreyaBhoje
310 views19 Folien
Microprocessors von
MicroprocessorsMicroprocessors
MicroprocessorsRajat Dhiman
3.4K views19 Folien
Arm cortex R(real time)processor series von
Arm cortex R(real time)processor series Arm cortex R(real time)processor series
Arm cortex R(real time)processor series Ronak047
1.6K views12 Folien
OMAP von
OMAPOMAP
OMAPnmitmtech-2016
13.3K views44 Folien
Vlsi design flow von
Vlsi design flowVlsi design flow
Vlsi design flowRajendra Kumar
4.9K views15 Folien
PPT ON PCB DESIGN INTERNSHIP von
PPT ON PCB DESIGN INTERNSHIPPPT ON PCB DESIGN INTERNSHIP
PPT ON PCB DESIGN INTERNSHIPSujoyHalder4
2.7K views30 Folien

Más contenido relacionado

Was ist angesagt?

DRAM von
DRAMDRAM
DRAMrohitladdu
20.9K views28 Folien
Embedded system in Smart Cards von
Embedded system in Smart CardsEmbedded system in Smart Cards
Embedded system in Smart CardsRebecca D'souza
4.3K views9 Folien
Dynamic logic circuits von
Dynamic logic circuitsDynamic logic circuits
Dynamic logic circuitsKalyan Kumar Kalita
18.4K views24 Folien
VLSI Power Reduction von
VLSI Power ReductionVLSI Power Reduction
VLSI Power ReductionMahesh Dananjaya
6K views33 Folien
Fpga(field programmable gate array) von
Fpga(field programmable gate array) Fpga(field programmable gate array)
Fpga(field programmable gate array) Iffat Anjum
6.7K views41 Folien
Architecture of 16C6X von
Architecture of 16C6XArchitecture of 16C6X
Architecture of 16C6Xv Kalairajan
3.3K views13 Folien

Was ist angesagt?(20)

Fpga(field programmable gate array) von Iffat Anjum
Fpga(field programmable gate array) Fpga(field programmable gate array)
Fpga(field programmable gate array)
Iffat Anjum6.7K views
Architecture of 16C6X von v Kalairajan
Architecture of 16C6XArchitecture of 16C6X
Architecture of 16C6X
v Kalairajan3.3K views
System On Chip von anishgoel
System On ChipSystem On Chip
System On Chip
anishgoel58.5K views
MICROCONTROLLER 8051- Architecture & Pin Configuration von AKHIL MADANKAR
MICROCONTROLLER 8051- Architecture & Pin Configuration MICROCONTROLLER 8051- Architecture & Pin Configuration
MICROCONTROLLER 8051- Architecture & Pin Configuration
AKHIL MADANKAR10.3K views
Fabrication process of Integrated Circuit (IC's) von COMSATS Abbottabad
Fabrication process of Integrated Circuit (IC's)Fabrication process of Integrated Circuit (IC's)
Fabrication process of Integrated Circuit (IC's)
COMSATS Abbottabad26.9K views
Microcontroller 8051 von Sadiq Rahim
Microcontroller 8051Microcontroller 8051
Microcontroller 8051
Sadiq Rahim1.2K views
1. FPGA architectures.pdf von TesfuFiseha1
1. FPGA architectures.pdf1. FPGA architectures.pdf
1. FPGA architectures.pdf
TesfuFiseha1143 views
Language for Embedded System von vkrhanjeeth .
Language for Embedded System Language for Embedded System
Language for Embedded System
vkrhanjeeth .1.5K views
Mos transistor von Murali Rai
Mos transistorMos transistor
Mos transistor
Murali Rai6.5K views
Power dissipation cmos von Rajesh Tiwary
Power dissipation cmosPower dissipation cmos
Power dissipation cmos
Rajesh Tiwary22.8K views
Snapdragon SoC and ARMv7 Architecture von Santosh Verma
Snapdragon SoC and ARMv7 ArchitectureSnapdragon SoC and ARMv7 Architecture
Snapdragon SoC and ARMv7 Architecture
Santosh Verma3.2K views

Similar a Empowering Advanced Users: Extending OutSystems UI Framework with Openness and Extensibility

Introduction to UX for Mesiniaga Academy von
Introduction to UX for Mesiniaga AcademyIntroduction to UX for Mesiniaga Academy
Introduction to UX for Mesiniaga AcademyZainul Zain
387 views67 Folien
Play with azure functions von
Play with azure functionsPlay with azure functions
Play with azure functionsBaskar rao Dsn
105 views28 Folien
Azure Functions in Action #CodePaLOUsa von
Azure Functions in Action #CodePaLOUsaAzure Functions in Action #CodePaLOUsa
Azure Functions in Action #CodePaLOUsaBaskar rao Dsn
93 views26 Folien
Tips for Beginning Cognos Report Studio Authors: Demonstration of Techniques von
Tips for Beginning Cognos Report Studio Authors: Demonstration of TechniquesTips for Beginning Cognos Report Studio Authors: Demonstration of Techniques
Tips for Beginning Cognos Report Studio Authors: Demonstration of TechniquesSenturus
735 views34 Folien
Udvid din test portefølje med coded ui test og cloud load test von
Udvid din test portefølje med coded ui test og cloud load testUdvid din test portefølje med coded ui test og cloud load test
Udvid din test portefølje med coded ui test og cloud load testPeter Lindberg
1.5K views39 Folien
King Tut Architecture von
King Tut ArchitectureKing Tut Architecture
King Tut ArchitectureGary Pedretti
1.2K views46 Folien

Similar a Empowering Advanced Users: Extending OutSystems UI Framework with Openness and Extensibility(20)

Introduction to UX for Mesiniaga Academy von Zainul Zain
Introduction to UX for Mesiniaga AcademyIntroduction to UX for Mesiniaga Academy
Introduction to UX for Mesiniaga Academy
Zainul Zain387 views
Azure Functions in Action #CodePaLOUsa von Baskar rao Dsn
Azure Functions in Action #CodePaLOUsaAzure Functions in Action #CodePaLOUsa
Azure Functions in Action #CodePaLOUsa
Baskar rao Dsn93 views
Tips for Beginning Cognos Report Studio Authors: Demonstration of Techniques von Senturus
Tips for Beginning Cognos Report Studio Authors: Demonstration of TechniquesTips for Beginning Cognos Report Studio Authors: Demonstration of Techniques
Tips for Beginning Cognos Report Studio Authors: Demonstration of Techniques
Senturus735 views
Udvid din test portefølje med coded ui test og cloud load test von Peter Lindberg
Udvid din test portefølje med coded ui test og cloud load testUdvid din test portefølje med coded ui test og cloud load test
Udvid din test portefølje med coded ui test og cloud load test
Peter Lindberg1.5K views
Shield UI JavaScript Chart von JStoikov
Shield UI JavaScript ChartShield UI JavaScript Chart
Shield UI JavaScript Chart
JStoikov3.2K views
Transitioning to Cognos Workspace Advanced: Migrating from Query & Analysis S... von Senturus
Transitioning to Cognos Workspace Advanced: Migrating from Query & Analysis S...Transitioning to Cognos Workspace Advanced: Migrating from Query & Analysis S...
Transitioning to Cognos Workspace Advanced: Migrating from Query & Analysis S...
Senturus1.9K views
Sitecore user group mumbai sitecore commerce extension von Jitendra Soni
Sitecore user group mumbai  sitecore commerce extensionSitecore user group mumbai  sitecore commerce extension
Sitecore user group mumbai sitecore commerce extension
Jitendra Soni50 views
CookpadTechConf2018-(Mobile)TestAutomation von Kazuaki Matsuo
CookpadTechConf2018-(Mobile)TestAutomationCookpadTechConf2018-(Mobile)TestAutomation
CookpadTechConf2018-(Mobile)TestAutomation
Kazuaki Matsuo3.1K views
Getting Started With Coded UI testing: Building Your First Automated Test von Imaginet
Getting Started With Coded UI testing: Building Your First Automated TestGetting Started With Coded UI testing: Building Your First Automated Test
Getting Started With Coded UI testing: Building Your First Automated Test
Imaginet1.5K views
Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from... von Davalen LLC
Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...
Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...
Davalen LLC4.9K views
TomaszPoszytek_ALM-Fundamentals_SS2023.pdf von Tomasz Poszytek
TomaszPoszytek_ALM-Fundamentals_SS2023.pdfTomaszPoszytek_ALM-Fundamentals_SS2023.pdf
TomaszPoszytek_ALM-Fundamentals_SS2023.pdf
Tomasz Poszytek16 views

Último

Top-5-production-devconMunich-2023.pptx von
Top-5-production-devconMunich-2023.pptxTop-5-production-devconMunich-2023.pptx
Top-5-production-devconMunich-2023.pptxTier1 app
10 views40 Folien
Page Object Model von
Page Object ModelPage Object Model
Page Object Modelartembondar5
7 views5 Folien
Transport Management System - Shipment & Container Tracking von
Transport Management System - Shipment & Container TrackingTransport Management System - Shipment & Container Tracking
Transport Management System - Shipment & Container TrackingFreightoscope
6 views3 Folien
Ports-and-Adapters Architecture for Embedded HMI von
Ports-and-Adapters Architecture for Embedded HMIPorts-and-Adapters Architecture for Embedded HMI
Ports-and-Adapters Architecture for Embedded HMIBurkhard Stubert
35 views19 Folien
Advanced API Mocking Techniques Using Wiremock von
Advanced API Mocking Techniques Using WiremockAdvanced API Mocking Techniques Using Wiremock
Advanced API Mocking Techniques Using WiremockDimpy Adhikary
5 views11 Folien
Bootstrapping vs Venture Capital.pptx von
Bootstrapping vs Venture Capital.pptxBootstrapping vs Venture Capital.pptx
Bootstrapping vs Venture Capital.pptxZeljko Svedic
16 views17 Folien

Último(20)

Top-5-production-devconMunich-2023.pptx von Tier1 app
Top-5-production-devconMunich-2023.pptxTop-5-production-devconMunich-2023.pptx
Top-5-production-devconMunich-2023.pptx
Tier1 app10 views
Transport Management System - Shipment & Container Tracking von Freightoscope
Transport Management System - Shipment & Container TrackingTransport Management System - Shipment & Container Tracking
Transport Management System - Shipment & Container Tracking
Freightoscope 6 views
Ports-and-Adapters Architecture for Embedded HMI von Burkhard Stubert
Ports-and-Adapters Architecture for Embedded HMIPorts-and-Adapters Architecture for Embedded HMI
Ports-and-Adapters Architecture for Embedded HMI
Burkhard Stubert35 views
Advanced API Mocking Techniques Using Wiremock von Dimpy Adhikary
Advanced API Mocking Techniques Using WiremockAdvanced API Mocking Techniques Using Wiremock
Advanced API Mocking Techniques Using Wiremock
Dimpy Adhikary5 views
Bootstrapping vs Venture Capital.pptx von Zeljko Svedic
Bootstrapping vs Venture Capital.pptxBootstrapping vs Venture Capital.pptx
Bootstrapping vs Venture Capital.pptx
Zeljko Svedic16 views
aATP - New Correlation Confirmation Feature.pptx von EsatEsenek1
aATP - New Correlation Confirmation Feature.pptxaATP - New Correlation Confirmation Feature.pptx
aATP - New Correlation Confirmation Feature.pptx
EsatEsenek1222 views
Understanding HTML terminology von artembondar5
Understanding HTML terminologyUnderstanding HTML terminology
Understanding HTML terminology
artembondar58 views
How Workforce Management Software Empowers SMEs | TraQSuite von TraQSuite
How Workforce Management Software Empowers SMEs | TraQSuiteHow Workforce Management Software Empowers SMEs | TraQSuite
How Workforce Management Software Empowers SMEs | TraQSuite
TraQSuite7 views
How to build dyanmic dashboards and ensure they always work von Wiiisdom
How to build dyanmic dashboards and ensure they always workHow to build dyanmic dashboards and ensure they always work
How to build dyanmic dashboards and ensure they always work
Wiiisdom16 views
JioEngage_Presentation.pptx von admin125455
JioEngage_Presentation.pptxJioEngage_Presentation.pptx
JioEngage_Presentation.pptx
admin1254559 views
Dapr Unleashed: Accelerating Microservice Development von Miroslav Janeski
Dapr Unleashed: Accelerating Microservice DevelopmentDapr Unleashed: Accelerating Microservice Development
Dapr Unleashed: Accelerating Microservice Development
Miroslav Janeski16 views

Empowering Advanced Users: Extending OutSystems UI Framework with Openness and Extensibility