Discussion entre partenaires au sujet de la modernisation des applications Forms

Regardez Joel Kallman, vice-président du développement de logiciel, discuter de la modernisation des applications Oracle Forms avec de nombreux experts de la communauté APEX internationale. Découvrez les avantages et les défis de l'utilisation d'Oracle APEX pour moderniser vos applications Oracle Forms. Ils y partageront leurs témoignages, les défis rencontrés et leurs conseils.

Participants

Joel Kallman (hôte)
Vice-directeur du développement de logiciel chez Oracle, à Columbus (Ohio), Etats-Unis

Dario Bilić
Manager et membre du conseil d'administration, BiLog à Zagreb, Croatie

Simon Greenwood
Directeur des services de développement, Explorer UK Ltd. à Leeds, Royaume-Uni

Sergei Martens
Partenaire de gestion, Smart4APEX à Tilburg, Pays-Bas

Francis Mignault
Directeur de la technologie et co-fondateur, Insum Solutions à Montréal, Canada

Cet enregistrement a été réalisé dans le cadre de la session APEX Office Hours : https://apex.oracle.com/officehours

Principaux sujets de discussion

Question 1

Pouvez-vous nous parler rapidement de l'un des projets que vous avez achevés (ou qui est en cours) ? (11:55)

Dario :

  • Une grande banque régionale en Europe
  • 500 Oracle Forms, 600 Oracle Reports
  • Pilote utilisant APEX, Java avec Angular, .NET, mise à niveau vers Forms 12c
  • Choix d'Oracle APEX pour le pilote

Simon :

  • Fournisseur de logiciel indépendant du secteur de l'énergie qui gère des compteurs intelligents pour l'électricité et le gaz
  • Utilisé par 4 des 6 principaux fournisseurs d'énergie du Royaume-Uni
  • Des centaines d'applications Forms transformées
  • Motifs de la modernisation :
    • Besoin d'une offre SaaS pour la livraison de logiciels (navigateur uniquement)
    • Conception réactive et moderne pour les tablettes, pas seulement pour les ordinateurs de bureau
    • Coût de point d'entrée réduit
    • Besoin d'une option cloud évolutive, ce qu'Oracle Forms ne propose pas
    • Développement en Europe : besoin de fonctionnalités multilingues
    • Compétences prérequises pour prendre en main APEX déjà acquises par les développeurs Forms

Sergei :

  • Entreprise de terminaux de stockage pour le secteur du pétrole et du gaz
  • Modernisation des applications Oracle Forms pour préparer la croissance attendue et pour mieux prendre en compte les besoins métier
  • Difficultés rencontrées avec ADF initialement, APEX a été vu comme un moyen plus rapide
  • Applications critiques développées par deux équipes de 10 personnes

Francis :

  • Importante ligne de croisière américaine, système de gestion des propriétés à bord (embarquement, excursions à terre, services aux invités, back-office et états)
  • Plusieurs projets sur plusieurs années
  • 300 applications Forms modernisées et de nombreux états
  • Motifs de la modernisation :
    • Problèmes de performances
    • Interface utilisateur améliorée
    • Possibilité d'exploiter tous les investissements en PL/SQL

Question 2

Comment définiriez-vous votre approche de la modernisation vers APEX ? S'agit-il d'une réécriture, d'une migration partielle, ou créez-vous de nouvelles applications en parallèle des applications Oracle Forms existantes ? (20:50)

Simon :

  • Chaque option doit être envisagée en fonction des circonstances
  • En règle générale, réécriture complète afin de bénéficier d'un coût de licence réduit, etc.
  • Peut ressembler trait pour trait, mais c'est déconseillé. Forms est fait pour l'approche client/serveur
  • Création d'applications "Web" modernes avec APEX
  • Pas de formule magique pour migrer les applications Forms, besoin de repasser par une phase de développement
  • Réutilisation d'autant de code que possible

Sergei :

  • Des migrations 1-1 (ou plus) au début pour que les développeurs apprennent à utiliser APEX
  • Transfert de la logique de déclencheur dans la logique de base de données
  • Etablissement d'objectifs atteignables pour les nouvelles fonctionnalités afin de faciliter les activités
  • Migration des "groupes d'utilisateurs" pour qu'ils n'aient pas à travailler à la fois dans Forms et dans APEX

Francis :

  • Il est difficile de justifier de tout faire en un seul projet
  • Utilisation de la réécriture partielle pour étendre les applications existantes, par module
  • Comprendre d'abord APEX, puis commencer à l'utiliser sur les tables existantes

Question 3

Quels sont les plus grands défis que vous avez dû relever face à ce type de projet ? (29:40)

Sergei :

  • Changement de la mentalité des développeurs Forms pour qu'ils arrêtent de mettre le plus d'éléments possible sur une page et se concentrent sur une conception adaptée au Web
  • Mise en place de normes d'interface utilisateur et cohérence sur les projets conséquents
  • Evolution des objectifs : demande continue de nouvelles fonctionnalités

Simon :

  • Développeurs Forms habitués aux connexions de base de données persistantes et aux tables temporaires. Dans APEX, les collections APEX doivent être utilisées
  • Modification de pages à plusieurs lignes
  • Validations à l'aide de déclencheurs de bloc et d'élément au lieu d'une validation lors de la soumission de page dans APEX
  • Problème lors des tentatives de reproduction de l'intégralité du traitement Forms (par exemple, sur plusieurs pages)

Question 4

Quel a été le principal avantage pour le client ? A-t-il été satisfait du résultat ?

Dario :

  • Le client payait déjà pour APEX (via des licences de base de données), il a donc pu économiser de l'argent en abandonnant Forms
  • Il a pu reformer ses développeurs Forms pour qu'ils utilisent APEX et a réalisé d'importantes économies
  • Transition instantanée vers la technologie Web et déploiement par le Web (centralisé) plutôt que de repousser des milliers d'utilisateurs finals
  • APEX a offert des fonctions de services REST et mobiles
  • Applications modernisées plus attrayantes pour les professionnels

Francis :

  • Mise à profit des investissements faits dans Oracle : acquisition de licences, modèle de données, même pile technologique
  • Plus facile de former des développeurs Forms dans APEX qu'à d'autres technologies Web
  • Bond dans le 21e siècle avec des applications modernes, réactives et compatibles avec les appareils mobiles

Question 5

Nous évoquons en permanence la nécessité de focaliser vos investissements dans la logique applicative back-end, dans les codes SQL et PL/SQL. Est-ce une erreur ? Quelle part du code back-end avez-vous dû modifier pour vous adapter au nouveau monde avec APEX ? (41:50)

Francis :

  • Si la logique est contenue dans la base de données (et non dans Forms), presque tout le code peut être réutilisé
  • Si la logique applicative est construite dans Forms (ou générée par un concepteur), il est plus difficile de la retrouver et de l'extraire
  • Possibilité d'utiliser la fonctionnalité de migration de Forms vers APEX intégrées à APEX pour annoter la logique
  • Approche de développement Forms aussi proche que possible de celle d'APEX, la réutilisation est plus facile

Dario :

  • Majorité du code situé dans Forms : il faut essayer de le transférer dans la base de données
  • Si le code est déjà dans la base de données, il est très facile de le réutiliser

Question 6

Pouvez-vous décrire le processus que vous avez suivi pour déterminer s'il est pertinent de moderniser un élément avec APEX ? Pouvez-vous donner un exemple de cas pour lequel vous n'utiliseriez pas APEX pour moderniser une application Forms ? (46:30)

Simon :

  • Tout n'est pas adapté à une structure Web, par exemple web_util (qui réalise des opérations de bureau)
  • Il faut déterminer la quantité de code contenu dans les déclencheurs Forms pour estimer l'effort à fournir
  • Il faut repérer les sections qui sont encore utilisées (si une section n'est plus utilisée, inutile de la moderniser)

Dario :

  • APEX est basé sur le Web et non sur l'approche client/serveur qui a des limites
  • Forms offre davantage de contrôle côté client, ce qui n'est pas vraiment compatible avec le Web
  • Possibilité d'utiliser des modules d'extension et d'autres techniques pour satisfaire les exigences côté client

Question 7

Comment faites-vous pour former à APEX une personne qui a des compétences en Forms ? C'est un outil basé sur le Web, et le Web est différent. (50:55)

Sergei :

  • Il existe trois niveaux pour distinguer les développeurs Forms formés à APEX dans l'entreprise :
    • Débutant : bases d'APEX, puis incitation à explorer et à en apprendre davantage
    • Intermédiaire : phase de rendu, phase client, phase de traitement
    • Avancé : normes et meilleures pratiques, cohérence
  • Il faut aborder les langages JavaScript et CSS une fois qu'ils commencent à développer
  • Il est conseillé de recruter un expert en développement Web pour les langages JavaScript, CSS et HTML

Dario :

  • Il est conseillé d'avoir un expert en technologies Web dans l'équipe pour prendre en main les nouveautés
  • Ateliers ciblés pour l'utilisation de Forms devant être modernisés
  • Présentation de la forte communauté APEX aux développeurs (Twitter, apex.world)
  • Incitation à poser des questions (même à faire des recherches sur Google)
  • Construction de modules d'extension pour les fonctionnalités communes nécessaires sur plusieurs pages ou applications
  • Prise en compte de structures tierces comme FOEX

Francis :

  • Formation des développeurs Forms au fonctionnement du Web. Changement de mentalité
  • Les laisser explorer l'outil et construire des applications simples
  • Travailler ensemble et leur enseigner les bonnes et les mauvaises pratiques
  • Leur apprendre comment déboguer et tracer des applications
  • Former également les utilisateurs finals : les écrans et les processus seront différents

Question 8

Comment de temps faut-il aux développeurs Forms pour être compétents sur APEX et en matière de développement Web ? Ont-ils réussi à développer sans aide après leur formation ? (1:01:45)

Dario :

  • 42 minutes
  • Une fois la formation terminée, ils peuvent être productifs en quelques semaines avec de l'aide
  • Après un mois ou deux, ils doivent être productifs sans aide

Simon :

  • Opérationnels au bout de quelques jours, compétents au bout de quelques semaines
  • Pour d'autres technologies Web comme JavaScript ou jQuery, cela est plus long, jusqu'à plusieurs mois
  • Les développeurs doivent adopter pleinement APEX, ce qui prend du temps et demande de la pratique

Question 9

Les clients peuvent-ils réaliser cette migration par eux-mêmes ? De nombreux partenaires participent à ce forum Office Hours, et si j'étais à leur place, je pourrais me dire que je risque d'avoir besoin d'une aide extérieure pour mettre cela en place. Que me répondriez-vous ?

Francis :

  • S'ils connaissent déjà APEX, ils peuvent se lancer seuls
  • L'aide d'un formateur ou d'un partenaire expérimenté est très précieuse
  • Les partenaires possèdent des outils et d'autres connaissances à partager
  • Les partenaires bénéficient d'une longue expérience relatives aux défis à relever, aux questions de sécurité et aux approches à adopter, entre autres
  • Les clients doivent commencer avec un petit prototype

Sergei :

  • Les petites applications ne posent aucun problème
  • Pour les applications plus grandes, il est important de suivre les meilleures pratiques (contrôle de version, environnements, modules d'extension, etc.) que les partenaires peuvent fournir
  • Il est tout particulièrement important de se faire aider les premiers mois

Question 10

Auriez-vous un conseil spécifique à donner à tous ceux qui regardent cette vidéo et qui envisagent de moderniser certaines de leurs applications Forms à l'aide d'APEX ? (1:08:40)

Dario :

  • Les professionnels, les responsables et les développeurs aiment tous APEX, vous pouvez foncer sans hésiter
  • Rendez-vous à une conférence Oracle ou APEX, et constatez l'enthousiasme et les contenus formidables produits

Simon :

  • Téléchargez la dernière version d'APEX.
  • Inscrivez-vous sur apex.oracle.com
  • Les développeurs Forms prendront APEX en main en un rien de temps
  • Consultez les applications existantes afin de s'assurer que les pages sont toujours utilisées
  • Aucune formule magique pour la migration : il faut revoir la conception
  • Lisez le livre blanc "Feuille de route de client Java" pour préparer l'avenir
    (https://www.oracle.com/technetwork/java/javase/javaclientroadmapupdate2018mar-4414431.pdf)

Sergei :

  • Commencez par un petit projet pour donner des résultats rapidement
  • Etudiez les fonctions de génération d'états, comme les états interactifs, les grilles interactives, etc.

Francis :

  • Commencez immédiatement à utiliser APEX et à explorer ses fonctionnalités
  • Planifiez l'interface utilisateur, la sécurité (authentification et autorisation) et la navigation
  • Développez pas à pas, ne faites pas tout d'un coup
  • Faites au plus simple et évitez le superflu
  • N'essayez pas de reproduire les applications Forms
  • Gérez la transition : les utilisateurs, les développeurs, les analystes et les administrateurs de base de données doivent être formés
  • Impliquez-vous dans la communauté APEX