SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Extensibility for ADF Applications
Denys Vuika
@DenysVuika
Learn. Connect. Collaborate.
About me
• Applications Platform Developer @ Alfresco
• Alfresco Content Application tech lead
• Open Source contributor
• Blogger and writer
Leanpub:
https://leanpub.com/developing-with-angular
Amazon Kindle:
https://www.amazon.com/dp/B07KD9KHQW
Amazon Paperback:
https://www.amazon.com/dp/1731123426
1618 readers, 476 pages
@ DenysVuika
Learn. Connect. Collaborate.
Alfresco Content Application
Extensibility for ADF Applications
Learn. Connect. Collaborate.
Learn. Connect. Collaborate.
Extensibility
Features
• Custom pages and routes
• Document List layouts
• Navigation sidebar
• Context menu
• Sidebar (aka Info Drawer)
• Toolbars
• Viewer content and toolbars
• Content metadata
+ new endpoints with every release
+ your own content and extensions
Format
Learn. Connect. Collaborate.
Format
• JSON files
• Files are merged at runtime
• Custom order of loading
• Extensions can
– Rewrite properties
– Extend objects and collections
– Disable existing features
Learn. Connect. Collaborate.
Format:
metadata
Learn. Connect. Collaborate.
Format:
app header
Learn. Connect. Collaborate.
Format:
actions
Actions to redirect to routes
Learn. Connect. Collaborate.
Format:
demo
app.extensions.json / $references
• The order of the declaration matters
• Last loaded extension can customize previously loaded
Learn. Connect. Collaborate.
Format:
demo
Before
After
Components
Learn. Connect. Collaborate.
Components
• Standard Angular components
• 3rd party dependencies
• Simple to distribute (NPM, Nexus, etc.)
• Easy to register
• Extensions can override existing entries
Learn. Connect. Collaborate.
Components:
viewer
Register custom viewer by extension
Learn. Connect. Collaborate.
Components:
viewer
Render custom content for PDF files
Learn. Connect. Collaborate.
Components:
menu
Inject custom component into the context menu
Learn. Connect. Collaborate.
Components:
menu
Your custom component in the context menu
• Looks and behaves like menu item
• Integrates with Rules
• Executes your code on click
Learn. Connect. Collaborate.
Demo:
create menu
• Adding extra menus to “New” button
• Multiple levels of nesting
• “Enabled” state is based on Rules
Learn. Connect. Collaborate.
Demo:
create menu
New entries at runtime
Routes
Learn. Connect. Collaborate.
Routes
• Expand the app by adding new routes
• New pages
• Custom content to show
• Application layout and styles
• Authentication guards
• Register actions to redirect to your content
• Register buttons to invoke your actions
• Redefine and customize other routes
Learn. Connect. Collaborate.
Routes:
demo
Custom route registration example
/my-route-one/*
Learn. Connect. Collaborate.
Routes:
demo
• Renders separate groups
• Auto-highlights links
• Registers extra URL parts
• Renders your pages
Actions
Learn. Connect. Collaborate.
Actions
• Trigger application features
• App is split into reusable actions, i.e.:
– Remove node
– Invoke “Create Folder” dialog
– Preview node
– ... and many more
• Extensions can invoke or customize every
application action exposed
• Based on NgRx (inspired by Redux)
• You can provide custom handlers
• You can replace Action Engine
Learn. Connect. Collaborate.
Actions:
example
Declare a new toolbar entries in your extension
Learn. Connect. Collaborate.
Actions:
example
Get custom toolbar entries rendered at runtime
• Supports rules
• Menus and sub-menus
• Separators
• Custom ordering
• Replace existing buttons
• Invoke app actions
Learn. Connect. Collaborate.
Actions:
effects
Listening and reacting on the action event
Rules
Learn. Connect. Collaborate.
Rules
• Rules are plain JavaScript functions
• Can access runtime context
• Can be composed from other rules
– NOT, OR, AND
– Rule negation via “!” (not) operator
• Unlimited level of chaining
• You can replace any rule with your own
• Extensions can register extra rules
Learn. Connect. Collaborate.
Rules:
code
Learn. Connect. Collaborate.
Rules:
context
• Resolves rules
• Provides access to application state
• You can replace with own implementation
Learn. Connect. Collaborate.
Rules:
registration
Learn. Connect. Collaborate.
Rules:
markup
Declaring a composite rule…
and referencing:
Distribution
Learn. Connect. Collaborate.
Distribution
• Standard Angular Libraries
• Published to NPM or custom sources
• Single metadata file as part of the library
• Single command to install into the app
• Installing from local tarball packages
See more details on NGI tool: https://bit.ly/2RcKtvw
@alfresco/adf-extensions
Learn. Connect. Collaborate.
Core features
• Extension loader
• Application services to back extensibility
• Core evaluators (”every”, “not”, “all”, etc.)
• Dynamic components
Learn. Connect. Collaborate.
What’s next
• More extension points for ADF and ACA
• More developer tooling for extensions
– Validation and linting
– Upgrades and versioning
– Distribution
• Automatic installation and deployment
• Web Components support
• Improvements based on community feedback
Learn. Connect. Collaborate.
More
information
Extensibility documentation
https://alfresco-content-app.netlify.com/#/extending/
Thank you
Q and A

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Alfresco Process Services extension project - Alfresco DevCon 2018
Alfresco Process Services extension project - Alfresco DevCon 2018Alfresco Process Services extension project - Alfresco DevCon 2018
Alfresco Process Services extension project - Alfresco DevCon 2018
 
AngularJS Anatomy & Directives
AngularJS Anatomy & DirectivesAngularJS Anatomy & Directives
AngularJS Anatomy & Directives
 
Alfresco DevCon 2019 - Do you know what the Alfresco heartbeat is?
Alfresco DevCon 2019 - Do you know what the Alfresco heartbeat is?Alfresco DevCon 2019 - Do you know what the Alfresco heartbeat is?
Alfresco DevCon 2019 - Do you know what the Alfresco heartbeat is?
 
Using and extending Alfresco Content Application
Using and extending Alfresco Content ApplicationUsing and extending Alfresco Content Application
Using and extending Alfresco Content Application
 
Front-End Tools and Workflows
Front-End Tools and WorkflowsFront-End Tools and Workflows
Front-End Tools and Workflows
 
Alfresco/Activiti Modeler Application - Andras Popovics - 2019
Alfresco/Activiti Modeler Application - Andras Popovics - 2019Alfresco/Activiti Modeler Application - Andras Popovics - 2019
Alfresco/Activiti Modeler Application - Andras Popovics - 2019
 
Alfresco Digital Business Platform - Why, How, What
Alfresco Digital Business Platform - Why, How, WhatAlfresco Digital Business Platform - Why, How, What
Alfresco Digital Business Platform - Why, How, What
 
Decoupled Architecture and WordPress
Decoupled Architecture and WordPressDecoupled Architecture and WordPress
Decoupled Architecture and WordPress
 
How to avoid microservice pitfalls
How to avoid microservice pitfallsHow to avoid microservice pitfalls
How to avoid microservice pitfalls
 
ASP.NET 5
ASP.NET 5ASP.NET 5
ASP.NET 5
 
Intro to React
Intro to ReactIntro to React
Intro to React
 
Azure functions
Azure functionsAzure functions
Azure functions
 
Engage 2019: Modernising Your Domino and XPages Applications
Engage 2019: Modernising Your Domino and XPages Applications Engage 2019: Modernising Your Domino and XPages Applications
Engage 2019: Modernising Your Domino and XPages Applications
 
How to Write Alfresco Addons that Last Forever
How to Write Alfresco Addons that Last ForeverHow to Write Alfresco Addons that Last Forever
How to Write Alfresco Addons that Last Forever
 
O365Con18 - Working with PowerShell, VS Code and GitHub - Thomas Vochten
O365Con18 - Working with PowerShell, VS Code and GitHub - Thomas VochtenO365Con18 - Working with PowerShell, VS Code and GitHub - Thomas Vochten
O365Con18 - Working with PowerShell, VS Code and GitHub - Thomas Vochten
 
Alex Pshul: What We Learned by Testing Execution of 300K Messages/Min in a Se...
Alex Pshul: What We Learned by Testing Execution of 300K Messages/Min in a Se...Alex Pshul: What We Learned by Testing Execution of 300K Messages/Min in a Se...
Alex Pshul: What We Learned by Testing Execution of 300K Messages/Min in a Se...
 
Going Serverless with Azure Functions
Going Serverless with Azure FunctionsGoing Serverless with Azure Functions
Going Serverless with Azure Functions
 
Building solutions with the SharePoint Framework - introduction
Building solutions with the SharePoint Framework - introductionBuilding solutions with the SharePoint Framework - introduction
Building solutions with the SharePoint Framework - introduction
 
Les nouveautés ASP.NET 5 avec Visual Studio 2015
Les nouveautés ASP.NET 5 avec Visual Studio 2015Les nouveautés ASP.NET 5 avec Visual Studio 2015
Les nouveautés ASP.NET 5 avec Visual Studio 2015
 
ECS19 Elio Struyf - Setting Up Your SPFx CI/CD pipelines on Azure DevOps
ECS19 Elio Struyf - Setting Up Your SPFx CI/CD pipelines on Azure DevOpsECS19 Elio Struyf - Setting Up Your SPFx CI/CD pipelines on Azure DevOps
ECS19 Elio Struyf - Setting Up Your SPFx CI/CD pipelines on Azure DevOps
 

Ähnlich wie Extensibility for ADF applications

Getting started with Alfresco in the cloud
Getting started with Alfresco in the cloudGetting started with Alfresco in the cloud
Getting started with Alfresco in the cloud
Paul Hampton
 

Ähnlich wie Extensibility for ADF applications (20)

Docs as Part of the Product - Open Source Summit North America 2018
Docs as Part of the Product - Open Source Summit North America 2018Docs as Part of the Product - Open Source Summit North America 2018
Docs as Part of the Product - Open Source Summit North America 2018
 
Alfresco Day Stockholm 2015 - Rapid UI Development
Alfresco Day Stockholm 2015 - Rapid UI DevelopmentAlfresco Day Stockholm 2015 - Rapid UI Development
Alfresco Day Stockholm 2015 - Rapid UI Development
 
IBM Social Business Toolkit
IBM Social Business ToolkitIBM Social Business Toolkit
IBM Social Business Toolkit
 
Cross Site Collection Navigation
Cross Site Collection NavigationCross Site Collection Navigation
Cross Site Collection Navigation
 
Atlassian User Group NYC 20170830 PreSummit Event Slides
Atlassian User Group NYC 20170830 PreSummit Event SlidesAtlassian User Group NYC 20170830 PreSummit Event Slides
Atlassian User Group NYC 20170830 PreSummit Event Slides
 
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JSCross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
 
B01 markus gylling-epub
B01 markus gylling-epubB01 markus gylling-epub
B01 markus gylling-epub
 
B01 markus gylling-epub
B01 markus gylling-epubB01 markus gylling-epub
B01 markus gylling-epub
 
Code the docs-yu liu
Code the docs-yu liuCode the docs-yu liu
Code the docs-yu liu
 
CUST-2 New Client Configuration & Extension Points in Share
CUST-2 New Client Configuration & Extension Points in ShareCUST-2 New Client Configuration & Extension Points in Share
CUST-2 New Client Configuration & Extension Points in Share
 
Django Documentation
Django DocumentationDjango Documentation
Django Documentation
 
Getting started with Alfresco in the cloud
Getting started with Alfresco in the cloudGetting started with Alfresco in the cloud
Getting started with Alfresco in the cloud
 
AD1545 - Extending the XPages Extension Library
AD1545 - Extending the XPages Extension LibraryAD1545 - Extending the XPages Extension Library
AD1545 - Extending the XPages Extension Library
 
Software design with Domain-driven design
Software design with Domain-driven design Software design with Domain-driven design
Software design with Domain-driven design
 
Javascript mynotes
Javascript mynotesJavascript mynotes
Javascript mynotes
 
Microservices and the Art of Taming the Dependency Hell Monster
Microservices and the Art of Taming the Dependency Hell MonsterMicroservices and the Art of Taming the Dependency Hell Monster
Microservices and the Art of Taming the Dependency Hell Monster
 
Docs Like Code: Strategies and Stories
Docs Like Code: Strategies and StoriesDocs Like Code: Strategies and Stories
Docs Like Code: Strategies and Stories
 
Learn from my Mistakes - Building Better Solutions in SPFx
Learn from my  Mistakes - Building Better Solutions in SPFxLearn from my  Mistakes - Building Better Solutions in SPFx
Learn from my Mistakes - Building Better Solutions in SPFx
 
Alfresco overview EDM
Alfresco overview EDMAlfresco overview EDM
Alfresco overview EDM
 
Tech Talk Live on Share Extensibility
Tech Talk Live on Share ExtensibilityTech Talk Live on Share Extensibility
Tech Talk Live on Share Extensibility
 

Kürzlich hochgeladen

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Kürzlich hochgeladen (20)

FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 

Extensibility for ADF applications