Découvrez FireDAC pour FMX
Webinaire du 30 octobre 2018
(c) Patrick Prémartin / developpeur-pascal.fr
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
Introduction
(c) Patrick Prémartin / developpeur-pascal.fr
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
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
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
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
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
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
FireDAC en multiplateforme
(c) Patrick Prémartin / developpeur-pascal.fr
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
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
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
FireDAC avec FMX:
Windows et macOS
(c) Patrick Prémartin / developpeur-pascal.fr
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
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
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
FireDAC avec FMX:
iOS et Android
(c) Patrick Prémartin / developpeur-pascal.fr
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
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
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
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
Démos
(c) Patrick Prémartin / developpeur-pascal.fr
Questions / réponses
(c) Patrick Prémartin / developpeur-pascal.fr
Conclusion
(c) Patrick Prémartin / developpeur-pascal.fr
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
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

Découvrez FireDAC pour FMX

  • 1.
    Découvrez FireDAC pourFMX Webinaire du 30 octobre 2018 (c) Patrick Prémartin / developpeur-pascal.fr
  • 2.
    Au menu dujour • 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
  • 3.
    Introduction (c) Patrick Prémartin/ developpeur-pascal.fr
  • 4.
    Introduction • Présentation dela 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 deOlf 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ôtepour 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 deDelphi • 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 deDelphi • 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
  • 10.
    FireDAC en multiplateforme (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
  • 14.
    FireDAC avec FMX: Windowset macOS (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
  • 18.
    FireDAC avec FMX: iOSet Android (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
  • 23.
    Démos (c) Patrick Prémartin/ developpeur-pascal.fr
  • 24.
    Questions / réponses (c)Patrick Prémartin / developpeur-pascal.fr
  • 25.
    Conclusion (c) Patrick Prémartin/ developpeur-pascal.fr
  • 26.
    En savoir plussur 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 webinaireet 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