Positionering van Application Express door Oracle

Sinds een jaar of 5 voert Oracle het product Application Express (Apex). Oracle positioneert het product vooral als een low end ontwikkeltool waarmee web applicaties gemaakt kunnen worden die spreadsheets toepassingen zouden moeten vervangen. Apex is inderdaad heel geschikt om spreadsheets te vervangen: er zit bijvoorbeeld een wizard in waarmee een spreadsheet geconverteerd kan worden naar een tabel en waarmee ook meteen een query en update scherm gegenereerd kan worden. Dit alles in een paar minuten. Erg handig en ik heb deze wizard zelf gebruikt om een spreadsheet met bevindingen te converteren naar een echte bevindingen applicatie. Veel beter inderdaad dan het heen en weer ge-email van spreadsheets met bevindingenlijsten, maar Apex kan veel meer; je kunt met Apex ook echt complexe webapplicaties bouwen. Ik ga kort in op een aantal fundamentele problemen (plus de Apex oplossingen) die altijd spelen bij webapplicaties

Validatie en foutafhandeling

Essentieel aan een database applicatie is dat je de gebruiker feedback wilt geven over de gegevens die hij invoert. Een startdatum moet bijvoorbeeld voor een einddatum liggen. Apex heeft de mogelijkheid op dergelijke validaties en de bijbehorende foutmeldingen geheel in plsql te programmeren. Erg handig. De manier waarop de fouten verschijnen is ook elegant. Iedere Apex pagina beschikt over een foutmeldings zone, maar een ontwikkelaar kan er ook voor kiezen een fouttekst te koppelen aan een bepaald veld. Hierdoor ziet een gebruiker onmiddellijk met wel veld een bepaalde fout geassocieerd moet worden.

Session state management

Het lastige van dynamische gegegenereerde html is dat de server nooit weet wat er op de client gebeurt. Dit is inherent aan het stateless http protocol. Met Ajax technologie kan hier wel een mouw aan gepast worden, maar het blijft toch een fundamenteel probleem bij webapplicaties dat de server de connectie verliest zodra een webpagina eenmaal is gegenereerd. Apex lost dit probleem op door per gebruikerssessie bij te houden welke waarde een item heeft. In de code van pagina’s kun je verwijzen naar item waarden in andere pagina’s. Het bouwen van bijvoorbeeld een wizard waarmee gebruikers stapsgewijs een bepaald proces doorlopen is hierdoor erg gemakkelijk geworden omdat je zonder extra programmeerwerk voortdurend kunt opvragen wat een gebruiker bij eerdere stappen heeft ingevuld. Dit kan niet alleen op item niveau, maar Apex kan ook per sessie complete tijdelijke tabellen opslaan. Bij een webwinkel kan dit handig zijn om zo een shopping cart te programmeren. In de tijdelijke, sessiegebonden tabel houdt Apex bij welke artikelen een gebruiker heeft aangeklikt uit de productcatalogus.

Navigatie

Een Apex applicatie is een verzameling van pagina’s. Om de gebruiker niet te laten verdwalen in de pagina’s heeft Apex een aantal standaard navigatie mechanismen: tabbladen, menus, en broodkruimels. Vooral de conditionele weergave maakt deze technieken krachtig. Conditionele weergave betekent dat steeds als een pagina wordt opgebouwd, bepaald kan worden of een navigatie onderdeel getoond moet worden of niet. Hierdoor kan je als ontwikkelaar voortdurend bepalen of de context voor een bepaald navigatie mechanisme relevant is.

De positionering van Apex als low end programmeertool is volgens mij vooral ingegeven om de andere ontwikkeltools van Oracle (met name JDeveloper) niet te veel in de wielen te rijden. Architecten zullen door de meerlaagse structuur misschien iets meer gecharmeerd zijn van JDeveloper, maar de relatieve eenvoud van Apex heeft toch ook zijn charmes. Apex kan spreadsheets uitstekend vervangen, maar je kunt er ook echt professionele, gebruiksvriendelijke sites mee bouwen.

Tags:

Reageren

U moet inloggen om te reageren.