Suite au webinaire d'introduction à FireDAC avec la VCL il était logique de poursuivre avec Firemonkey.
Concernant les programmes, je vous en propose 5 cette fois-ci illustrant l'utilisation de base de FireDAC sous FireMonkey (sans trop programmer pour cette fois-ci). D'autres exemples sont disponibles avec l'installation de l'EDI et vous pouvez aussi regarder ce que j'avais mis en place sur le projet POC Notes de frais présenté lors du webinaire du 12 juillet 2018.
La rediffusion de cette présentation est disponible avec ses codes sources et des liens complémentaires sur https://serialstreameur.fr/webinaire-20181030.php
1. Découvrez FireDAC pour FMX
Webinaire du 30 octobre 2018
(c) Patrick Prémartin / developpeur-pascal.fr
2. Au menu du jour
• Introduction
• FireDAC en multiplateforme
• Utiliser FireDAC dans un projet Firemonkey sous Windows / macOS
• Utiliser FireDAC dans un projet Firemonkey sous iOS / Android
• Démos
• Questions / réponses
• Conclusion
(c) Patrick Prémartin / developpeur-pascal.fr
4. Introduction
• Présentation de la société Olf Software
https://www.olfsoftware.fr
• Présentation de Patrick Prémartin
https://www.linkedin.com/in/patrickpremartin/
• Les différentes versions de Delphi
https://www.embarcadero.com/fr/products/delphi
• Voir ou revoir les webinaires précédents
https://vasur.fr/webinairesdelphi
(c) Patrick Prémartin / developpeur-pascal.fr
5. A propos de Olf Software
• Depuis octobre 2001 la société de services Olf Software propose des
prestations de conseil, développement et formation sur les
technologies liées au web et au développement logiciel.
• Organisme de formation enregistré en début 2018 et référencé sur
Datadock, Olf Software s’est recentrée sur la formation
professionnelle en lien avec Delphi.
• Des formations inter entreprises sont organisées régulièrement et
annoncées sur https://www.se-former-a-delphi.fr/
• Des formations intra entreprise personnalisées sont organisées sur
demande.
(c) Patrick Prémartin / developpeur-pascal.fr
6. Et votre hôte pour ce webinaire
• Ancien utilisateur de Turbo Pascal, amoureux de Delphi depuis
toujours, développeur web depuis NCSA Mosaic…
• Prestataire et formateur à travers sa société Olf Software ou en sous-
traitance pour d’autres entreprises.
• Editeur du blog https://www.developpeur-pascal.fr dédié au
développement en Pascal (essentiellement) sous Delphi.
• MVP Embarcadero pour les technologies liées à Delphi depuis octobre
2017
• Auteur d’articles, de livres et parfois même conférencier.
(c) Patrick Prémartin / developpeur-pascal.fr
7. Les versions de Delphi
• Plusieurs licences de Delphi existent (vendu seul ou dans RAD Studio):
• Academic : pour les établissements d’enseignement et leurs étudiants
• Community Edition : gratuit pour tous, en licence commerciale limitée
• Professional, Enterprise, Architect : pour les entreprises, selon leurs besoins
• Pour toutes informations sur les licences et les tarifs contactez la
société Barnsten sur https://www.barnsten.com/fr/
(c) Patrick Prémartin / developpeur-pascal.fr
8. Les versions de Delphi
• Firemonkey est disponible avec toutes les versions de Delphi pour
Windows, macOS, iOS et Android.
• Une version Linux de Firemonkey est disponible auprès de KS Dev
sous le nom « FMXLinux » et peut être utilisée dans les versions
Enterprise et Architect qui possèdent un compilateur Linux.
• FireDAC est disponible dans chaque version avec plus ou moins de
fonctionnalités.
(c) Patrick Prémartin / developpeur-pascal.fr
9. Les webinaires précédents
• Je participe régulièrement à des webinaires organisés par la société
Barnsten. Une page leur est consacrée sur le blog à l’adresse
https://vasur.fr/webinairesdelphi
• Vous y trouverez les rediffusions en vidéos lorsqu’elles sont
disponibles, un PDF de ma présentation, le lien vers les sources des
exemples présentés et des informations complémentaires.
(c) Patrick Prémartin / developpeur-pascal.fr
11. FireDAC en multiplateforme
• Pas de grande différence avec l’utilisation en VCL
• Côté code source les unités de FireDAC commencent par « FireDAC. »
• Certaines sont liées à l’environnement d’exécution, par exemple celles
qui gèrent les curseurs dans les ensembles de données :
• FireDAC.FMXUI.Wait pour les projets Firemonkey
• FireDAC.VCLUI.Wait pour les projets VCL
• FireDAC.ConsoleUI.Wait pour les projets sans interface graphique
(c) Patrick Prémartin / developpeur-pascal.fr
12. FireDAC en multiplateforme
• Quand on utilise FireDAC dans une unité sans fiche ou dans un projet en console
il n’est pas aisé de se souvenir de toutes les unités utiles.
• Astuce :
• Créez une fiche (VCL ou FMX) ou un TDataModule.
• Placez les composants qui vous intéressent dessus.
• Faites un simple Ctrl + S (et annulez l’enregistrement si vous n’en avez pas besoin).
• L’EDI aura ajouté les unités nécessaires au USES de l’unité.
• Vous n’avez plus qu’à faire un copier/coller en pensant à adapter les noms d’unités ayant
« VCL » ou « FMX » dedans.
• Bien entendu ça marche pour tout, pas que pour retrouver les (nombreuses)
unités liées à FireDAC.
(c) Patrick Prémartin / developpeur-pascal.fr
13. FireDAC en multiplateforme
• Dans Firemonkey, contrairement à la VCL, nous n’avons pas de composants
verrouillés sur des ensembles de données (les TDBxxx). Nous utilisons donc
LiveBindings pour les alimenter automatiquement ou devons le coder à la
main dans les programmes.
• Petit point négatif : tout ne se fait pas tout seul à partir des propriétés.
Il faut savoir faire un clic droit et des glisser/déplacer à la souris.
• Gros point positif : tous les composants sont utilisables en liaison avec des
ensembles de données.
(c) Patrick Prémartin / developpeur-pascal.fr
15. FireDAC avec FMX: Windows et macOS
• A l’heure actuelle (en version Delphi 10.2.3 Tokyo) Embarcadero
fournit ces compilateurs « desktop » accessibles avec la version
standard de Firemonkey:
• Windows en 32 bits
• Windows en 64 bits
• macOS en 32 bits
La version 64 bits nécessaire pour diffuser des logiciels sur le Mac App Store
d’Apple arrivera prochainement d’après la ROADMAP d’août 2018.
(c) Patrick Prémartin / developpeur-pascal.fr
16. FireDAC avec FMX: Windows et macOS
• Pour un logiciel sous Windows ou macOS toutes les bases de données
sont accessibles (selon la version de Delphi pour la disponibilité des
drivers).
• En local on peut utiliser SQLite, IBLite, IBToGo ou Interbase Desktop.
• En client / serveur on peut utiliser les classiques MySQL, SQL Server,
Oracle et MongoDB comme base NoSQL.
• Bien entendu l’énumération des bases n’est pas restrictive, de
nombreux autres drivers sont fournis ou disponibles sur le marché
(notamment DB2/400 pour les utilisateurs d’AS/400).
(c) Patrick Prémartin / developpeur-pascal.fr
17. FireDAC avec FMX: Windows et macOS
• Pour les logiciels « desktop » j’utilise la plupart du temps SQLite
lorsque je n’ai pas de besoins de stockage de données à distance ni
d’accès concurrents sur les mêmes données.
• Lorsqu’il faut aller au delà d’une base de données par poste de travail,
je m’adapte en fonction de l’environnement informatique du client et
de ses possibilités budgétaires.
(c) Patrick Prémartin / developpeur-pascal.fr
19. FireDAC avec FMX: iOS et Android
• A l’heure actuelle (en version Delphi 10.2.3 Tokyo) Embarcadero
fournit ces compilateurs « mobiles » accessibles avec la version
standard de Firemonkey:
• iOS en 32 bits pour pouvoir compiler sur de vieux appareils
• iOS en 64 bits
• Android pour processeurs ARM 32 bits
Une version 64 bits est sur la ROADMAP.
Une version ANDROID pour processeurs INTEL a aussi été évoquée mais n’est
pas sur la ROADMAP pour le moment.
(c) Patrick Prémartin / developpeur-pascal.fr
20. FireDAC avec FMX: iOS et Android
• En environnement mobile il n’est pas possible de faire des accès
client/serveur en direct car les drivers des bases de données de ce
type ne sont pas disponibles. On doit donc ruser.
• On peut utiliser des bases locales comme SQLite, IBLite et IBToGo.
• On peut utiliser DataSNAP grâce à ses fonctionnalités client/serveur
et ainsi accéder à un serveur distant développé sous Delphi qui aurait
lui-même accès à toutes les bases de données du marché via FireDAC.
(c) Patrick Prémartin / developpeur-pascal.fr
21. FireDAC avec FMX: iOS et Android
• Dans les applications mobiles nécessitant un stockage local de
données je passe systématiquement par SQLite. Il est disponible en
standard sur tous les systèmes d’exploitation et fonctionnement
plutôt bien.
• Les seuls cas où j’ai eu à passer par IBLite ou IBToGo étaient des
environnements où Interbase était déjà utilisé en client/serveur.
Avoir la même base de données partout est plus simple pour la
maintenance, le partage de code et les habitudes de développement.
(c) Patrick Prémartin / developpeur-pascal.fr
22. FireDAC avec FMX: iOS et Android
• Dans les cas d’applications devant être synchronisées avec une base
de données extérieure je fais généralement un cache des données
utiles en SQLite que je synchronise « à la main » ou des accès distants
directs par l’intermédiaire de DataSnap.
• Dans les cas d’accès à des données sur Internet, l’utilisation d’une API
REST en https avec des échanges de données JSON (de préférence
aussi chiffrés) reste le plus simple.
(c) Patrick Prémartin / developpeur-pascal.fr
26. En savoir plus sur FireDAC
• A travers ce webinaire je ne pouvais pas tout dire sur FireDAC. Voici
quelques liens pour en apprendre plus.
• Documentation officielle :
https://vasur.fr/docfiredac
• Le livre « Delphi in Depth: FireDAC » de Cary Jensen :
https://amzn.to/2yFfUqS
• Les articles consacrés aux bases de données sur mon blog :
https://vasur.fr/devpasbdd
(c) Patrick Prémartin / developpeur-pascal.fr
27. Conclusion
• Ce webinaire et les sources des démos seront rapidement mis à disposition sur le
blog https://www.developpeur-pascal.fr
• Les prochains événements en live :
• Conférence sur C++Builder le 14 novembre à Paris.
• Conférence de lancement de RAD Studio 10.3 Rio le 15 novembre à Paris.
• Prochain webinaire le 25 novembre 2018 consacré à l’échange et la
synchronisation de données.
• Inscrivez-vous depuis https://www.barnsten.com/fr/events
(c) Patrick Prémartin / developpeur-pascal.fr