De 5 meest interessante ontwikkelingen uit Liferay DEVCON 2022

Afgelopen week was het weer tijd voor DEVCON. De jaarlijkse Liferay developer conferentie, trots gesponsord door Finalist. Ook dit jaar was het weer online, wat altijd een dubbel gevoel geeft. Aan de ene kant is het voor een introverte developer heel fijn alles te volgen is op je eigen bank. Aan de andere kant mis je toch het spektakel van alle ontwikkelaars in een grote conferentiezaal, de connectie met Liferay en de real-life gesprekken.

Waar ik gelukkig wel altijd op kan rekenen, is dat ik tijdens DEVCON veel kennis kan opdoen. Elk jaar zijn er veel sessies waarin Liferay medewerkers vertelen wat de focus en roadmap zal zijn van Liferay. Ook vertelt men wat er de komende tijd voor nieuwe functionaliteit gaat komen. Dit is altijd het beste moment om goed op de hoogte te blijven van de laatste ontwikkelingen van Liferay. Graag deel ik dan ook in dit artikel de meest interessante ontwikkelingen zoals besproken tijdens Liferay DEVCON 2022.

1. Elke week nieuwe functionaliteit

Toen Liferay DXP op basis van het OSGGi framework werd gelanceerd waren de beloftes groot: een snelle lichtgewicht omgeving met veel modulariteit en de mogelijkheid om snelle updates te leveren. Waar een aantal jaren terug nog over werd gedroomd is nu de realiteit. Voor Liferay DXP 7.4 komt elke week een nieuwe update van Liferay. Sterker nog, dit gebeurt al! Sinds eind vorig jaar zijn er al 19 updates geweest voor DXP 7.4. In vorige Liferay-versies zat je elke maand te wachten op fixpacks die zich voornamelijk richten op het oplossen van bugs. Bij DXP 7.4 krijg je daarentegen elke week, naast bugfixes, gave nieuwe functionaliteit. Liferay heeft gelukkig ook nagedacht over achterwaartse compatibiliteit. Nieuwe functionaliteiten staan standaard uit en kunnen naar keuze aangezet worden.

Slide van sessie 'New Liferay DXP Weekly Release Process'

Dit betekent wel een omslag voor developers en het beheer van Liferay omgevingen. Bij een volledige ingerichte ontwikkelstraat zal er meer tijd gestopt moeten worden in het bijhouden van de laatste versie op alle omgevingen. Ook betekent dit dat het toevoegen van veel maatwerkcode in een Liferay omgeving extra risico's met zich meebrengt. Immers, elke update kan een incompatibiliteit veroorzaken bij de maatwerkcode die ontwikkeld is voor een eerdere versie. Dit brengt mij gelijk bij een tweede grote ontwikkeling.

2. Minder code-aanpassingen aan Liferay

In de oudere Liferay versies was het vaak nodig om via maatwerkcode Liferay aan te passen om aan de wensen van de klant te voldoen. Liferay biedt al tijden de mogelijkheid om de Liferay code uit te breiden. Dit kon door gebruik te maken van de "extension points" die liferay zelf aanbiedt. Hoewel deze mogelijkheid nog steeds bestaat (en bij sommige klanten nog steeds nodig is), biedt Liferay steeds meer mogelijkheden om Liferay te kunnen aanpassen vanuit de interface i.p.v. vanuit maatwerkcode.

Liferay DXP biedt vanuit zichzelf al veel functionaliteit, een rijk CMS, uitgebreide zoekfunctionaliteit en veel standaard widgets. Dit is niet alleen functionaliteit om een publieke website te maken, maar bijvoorbeeld ook functionaliteit voor een webshop, een self-service portaal en digitale werkomgevingen. Met de juiste kennis van html, css, javascript en/of Freemarker is het mogelijk om zelf via de interface nog functionaliteit en vormgeving toe te voegen.

Het is duidelijk dat Liferay met deze aanpak op het juiste pad zit. Dit past volledig bij het doel van Liferay om organisaties met één 'Digital Experience platform' in staat te stellen snel en met weinig moeite een volledige digitale ervaring te bieden voor hun klanten. De maatwerkmogelijkheden vanuit de interface worden de komende tijd nog meer uitgebreid. Het zwaartepunt van het 'op maat maken' van een Liferay implementatie ligt dus steeds meer bij het ontwikkelen via de interface dan via 'deployable' maatwerkcode.

Maar wat nou als er iets gemaakt moet worden wat verder gaat dan content? Een applicatie waarin data-invoer van gebruikers en businesslogica in verwerkt moet worden. Hiervoor komen we bij de derde ontwikkeling.

3. Low-code

Als we kijken naar wat een low-code ontwikkelplatform biedt, dan kunnen we eigenlijk concluderen dat Liferay al een tijd voldoet aan de definitie van een low-code platform.

Een low-code ontwikkelplatform biedt een ontwikkelomgeving die wordt gebruikt om applicatiesoftware te maken via een grafische gebruikersinterface

Wikipedia - Low-code development platform

In Liferay DXP 7.4 zijn de low-code mogelijkheden nog veel meer uitgebreid door middel van 'Liferay objects'. Met Liferay objects is het mogelijk om applicaties te bouwen zonder code te schrijven. Men kan een volledige datamodel toevoegen via de interface (met complexe relaties met andere datamodellen). Dit datamodel krijgt dan een eigen plek in de database en wordt volledig geïntegreerd met Liferay-functionaliteit. Liferay objects is namelijk gebouwd op en geïntegreerd met de kernframeworks van Liferay. Het is daardoor mogelijk om workflow-processen te maken, te integreren met de sterke zoekfunctionaliteit en het uitgebreide rollen & rechten-systeem. Alles wat in Liferay mogelijk is met bestaande datamodellen is dus ook mogelijk met je eigen gemaakte 'object'.Ook is het mogelijk om aangepaste lay-outs en weergaven te maken voor invoerschermen als ook voor weergaveschermen. Liferay gaat hierin mee in de verwachting dat steeds meer organisaties applicaties gaan bouwen via low-code functionaliteit.

Slide van sessie 'Building Custom Solutions Using a Low-Code Approach: Deliver Better and Faster!'

Als kers op de taart, wordt het zelfgemaakte datamodel toegevoegd aan de headless api van Liferay. Het is hierdoor goed mogelijk om een eigen applicatie te ontwikkelen in een front-end framework zoals React of Next.js. Daarbij stimuleert Liferay het ontwikkelen van deze apps zonder deployment. Hierbij komen we alweer bij de vierde interessante ontwikkeling.

4. Liferay-agnostisch ontwikkelen voor Liferay

In Liferay DXP was het eindelijk mogelijk om naast de welbekende portlets, ook nieuwe widgets te ontwikkelen door middel van een zelfgekozen front-end framework. Denk hierbij aan populaire frameworks zoals React, Vue.js of Angular. Het nadeel hiervan was dat dit wel nog in een vorm gegoten moest worden zodat het geïntegreerd kon worden in het bestaande OSGi framework en herkend werd als Liferay widget. In Liferay 7.4 is iets nieuws geïntroduceerd: Remote apps. Met remote apps is het mogelijk om los van Liferay een applicatie te kunnen ontwikkelen en hosten. Vervolgens kan deze applicatie via de interface geregistreerd worden in Liferay en kan als een standaard widget worden gebruikt op het platform. Deze widgets kunnen gebruik maken van Liferay 'utilities' om data uit Liferay te halen/ in te voeren, gebruik maken van authenticatie in Liferay en ook communiceren met andere widgets op de pagina.

Remote apps bieden dus de mogelijkheid om los van de liferay-development-cyclus te ontwikkelen. Het is mogelijk om verschillende micro-frontends te ontwikkelen in een zelfgekozen front-end framework, zonder dat een ontwikkelaar kennis hoeft te hebben van Liferay. Hierbij heeft men de keuze een eigen API aan te roepen of toch de API's van Liferay gebruiken. De API's van Liferay zijn gebaseerd op een bekende open standaard (OpenAPI) en zijn aan te roepen via de populaire open-source querytaal graphQL. Doordat deze bekende standaarden gebruikt worden is het verbinden met de API door ontwikkelaars erg makkelijk. Er is hierbij natuurlijk nog wel kennis nodig van Liferay om de juiste API's aan te roepen met de juiste parameters.

5. Hernieuwde focus op marketplace

De laatste interessante ontwikkeling die ik graag wil benoemen is de hernieuwde focus op de Liferay Marketplace. Liferay erkent dat de marketplace niet meer zo actief is en is van plan de marketplace nieuw leven in te blazen. De Liferay community wordt gestimuleerd om via de marketplace weer mooie dingen beschikbaar te maken voor andere gebruikers. Ook is Liferay zelf van plan om zelf extra content en modules beschikbaar te maken via de marketplace. Denk hierbij bijvoorbeeld aan een salesforce connector for Liferay commerce, om je webshop-voorraad automatisch te koppelen met salesforce. Of denk hierbij aan site-initializers, om bijvoorbeeld een self-service portaal snel op te kunnen zetten.

Conclusie

Als we kijken naar de ontwikkelingen van Liferay DXP kunnen we een belangrijke conclusie trekken: Waar je in eerdere versies veel tijd kwijt was om de Liferay code aan te passen, kan je tegenwoordig sneller (en met minder frustratie) Liferay toe spitsen op de wensen van de klant. Ontwikkelen voor Liferay betekent steeds meer een combinatie van het slim gebruik maken van de standaardfunctionaliteiten en liferay agnostisch maatwerk. Het klassieke model van deploybare modules zal steeds minder nodig zijn, maatwerk zal eerder een "headless" variant zijn waarbij de maatwerkapplicaties niet deployed worden op Liferay en dus in een losse development cyclus komen. Liferay wordt elke week flexibeler, krachtiger en rijker aan functionaliteit.

Meer artikelen