octobre
2008
Pendant mes nombreuses années de développement RAD avec Delphi depuis sa version 1, je me suis toujours promis que le prochain projet appliquerait les normes et les méthodes les plus récentes : il tirerait pleinement parti du paradigme objet, il respecterait strictement le modèle MVC et les autes « patterns du GoF ». Au cours de mes recherches, je me suis rapidement heurté à une lacune des outils de type Delphi, à savoir l’absence d’un mécanisme de persistance des objets digne de ce nom, comme c’est le cas pour Java avec JPA.
Dans l’urgence (tout est toujours urgent dans le monde du développement informatique, je ne vous apprends rien), dans l’urgence donc, j’ai continué à utiliser (avec bonheur) les très efficaces composants d’accès aux données livrés avec Delphi et aussi par quelques fournisseurs tiers. Tout en continuant à chercher le framework de persistance (ou OPF : Object Persistence Framework) idéal, quelque chose comme Hibernate pour Java, mais en moins lourd. Aucun ne m’a vraiment convaincu, sauf peut-être tiOPF de l’australien TechInsite. Mais je voulais aussi et surtout comprendre la mécanique interne. Beaucoup en parlaient sur Internet en termes généraux et théoriques. Personne ne proposait d’exemples concrets. Jusqu’au jour où tiOPF est devenu Open Source et que TechInsite a publié une documentation (tiOPF Concepts Manual) expliquant en long et en large les mécanismes internes de leur produit. Documentation que je me suis empressé d’éplucher.
Ce sont les enseignements que j’en ai tirés que je me propose de partager ici avec les développeurs francophones qui voudraient goûter aux satisfactions et aux frustrations de la mise en oeuvre de la persistance des objets dans Delphi, telle qu’elle a été implémentée dans tiOPF par l’équipe de TechInsite.
Ce n’est pas une traduction exhaustive de « tiOPF Concepts Manual » que je vous propose ici, mais un commentaire des concepts qui y sont développés et surtout leur application dans des exemples de mon cru, sans utiliser le framework de TechInsite proprement dit. Il faut dire qu’au moment où j’écris, il manque un manuel utilisateur complet décrivant la mise en oeuvre du framework dans un projet Delphi.
(la suite dans une huitaine de jours)