Oracle Application Express (APEX) : Un outil intéressant pour certains types d’applications Web ?

J’ai dernièrement expérimenté avec un outil fourni avec la version gratuite de la base de données Oracle. J’ai même fait une petite application pour le groupe DBA chez mon employeur. APEX est un outil de développement rapide d’application Web basée sur la base de données Oracle, et ce avec un minimum de code. J’étais pourtant extrêmement sceptique par rapport à cet outil de au départ, et ce, pour plusieurs bonnes raisons. Premièrement, il va à mon avis à l’encontre des courants actuels de développement Web, (par exemple dans Rails, Grails et autres MVC) où la base de données est dérivée du modèle d’affaire et non l’inverse. Ce n’est pas non plus le genre d’outil que nous pouvons voir sur le « cloud » non plus. On pourrait même dire que la façon de développer va à l’encontre des courants de développement passés (au moins depuis 2000 / 2001) puisque le tout génère du PL-SQL, le langage de procédures stockés de Oracle. Non, il n’y a pas de middleware. On retourne loin dans le passé avec cela. Je me rappelle bien avoir développé des applications Web directement en PL-SQL au début de ma carrière, et je sais bien que ce n’est pas parce qu’on utilise un langage dans la base de données qu’on ne peut pas utiliser certains des principes du modèle vue contrôleur. Par contre, quand on parle de développement Web en PL-SQL, ça fait rire un peu, parce que ça fait longtemps qu’on ne fait plus cela.

Malgré mon énorme (euphémisme) scepticisme, j’ai regardé une présentation organisée par OraGec (lien) le groupe d’intérêt Oracle à Montréal. J’ai pu y remarqué deux choses : APEX n’est pas vraiment dans le radar des gros sous chez Oracle. Il y a aussi une communauté tissée serrée qui fait des applications à haute disponibilité avec. On pourrait dire qu’APEX est capable de créer des applications internes rapidement, très fonctionnelles, sans avoir dix couches de redirections de middleware. Lorsque l’objectif est de mettre une base de données existante sur l’intranet (ou le Web aussi), seulement quelques requête SQL sont nécessaires pour générer le tout. Cela peut aller assez loin aussi, ça supporte les Web Services, des contrôles peuvent être créés, on peut évidemment faire du transactionnel avec, etc… Ce type d’application prendrait beaucoup plus de temps à créer avec des serveurs d’applications et des framework Java (ou autre), même avec Grails. Dans ma tête, le clique s’est fait et je me suis dit que dans certaines situations (et peut-être dans d’autres) APEX pourrait bien être une recette secrète qui diminue le coup de développement. J’ai posé les questions habituelles du trippeux de standards Web : est-ce que tout cela génère du code conforme et accessible ? Évidemment non, les contrôles ne respectent pas encore la section 508 (loi aux États Unis), en tout cas pas dans la version actuelle (4), mais peut-être dans la prochaine version. APEX est donc DOA pour des sites Web traditionnels (le SEO n’est pas évident à faire non plus). Toutefois, on peut peut-être y faire qqch. Il est possible de modifier les templates HTML que l’outil génère. Ce serait certainement possible d’améliorer les choses de ce côté. Je me suis dit que ce serait intéressant d’organiser une présentation en collaboration avec le W3Québec pour parler du templating de ce type d’application. (ergonomie, etc). J’ai donc proposé la chose au groupe OraGec et au W3Québec et le résultat de cela sera présenté lundi prochain, le 29 mars 2010.

Ceci dit, j’ai développé un petit qqch avec l’outil, et malgré le fait que le SQL n’est pas ma majeure, et que l’outil génère ce que je fais à la main habituellement, le temps de développement fût très court, probablement aussi court que si je l’avais fait avec du Grails. Quand on travaille avec une BD déjà montée, ça va très bien. Si vous travaillez dans une équipe de DBA et de développeurs de base de données, ça utilise très bien leurs connaissances et cela donne qqch de somme toutes très bien.

Je me dis qu’il faut être ouvert dans le type d’applications Web que l’ont construit. Autant que j’aimerais que ce soit le cas, mon expérience me dit qu’il n’y a pas de « one size fits all » dans les frameworks d’application (particulièrement les rapides). Vous avez beaucoup d’investissement dans les BD Oracle, ça vous tente de faire du développement d’applications Web rapides qui n’ont pas nécessairement besoin d’être accessible ? Prenez la peine d’évaluer Oracle Apex, à mon avis, ça vaut le coup ! Qui sait, les contrôles seront peut-être accessible pour la prochaine version. (Anyway, les contrôles ne sont pas nécessairement accessibles avec les frameworks 6 fois plus lourds alors…)

Vous êtes dans le monde des bases de données Oracle et vous aimeriez en savoir plus sur les interfaces Web (accessibles et conformes), venez faire un tour au W3Québec. Vous êtes spécialistes de front end, mais voudriez travailler dans des projets plus près de la BD, faites au tour à la prochaine réunion du W3Québec, (et devenez membres tant qu’à y être) ! Une des choses que je considère importante dans les groupes d’intérêt comme le W3Québec, c’est qu’il ne faut pas rester dans des silos et rester ouvert. Travailler avec des applications du type de APEX nous amène à avoir des points de vues différents et faire des rencontres que nous ne ferions pas nécessairement. Augmentons la discussion et les échanges !

Quelques liens :

Tiens, je viens de découvrir qu’il y avait un groupe d’intérêt spécifique à APEX au Québec : ApexQuébec. Faudrait bien que je les contacte!

1 thought on “Oracle Application Express (APEX) : Un outil intéressant pour certains types d’applications Web ?”

  1. Bonjour Benoît,

    Je dois produire un rapport qui vise à dégager les avantages comparatifs de APEX afin de confirmer son utilisation comme outil de développement rapide au sein de notre organisation. Je suis à la recherche de documentation et d’analyses comparatives entre APEX et d’autres produits (MS-Access, Forms, Grails, etc.). Savez-vous si de tels études existent et si oui où pourrais-je les trouver?

    Me confirmer par courriel s.v.p. Vous remerciant à l’avance.

    Daniel

Leave a Reply

Your email address will not be published. Required fields are marked *