SlideShare una empresa de Scribd logo
1 de 66
Descargar para leer sin conexión
Faire des applications
web avec Delphi
Webinaire du 24 juin 2021
PRÉSENTATEUR
MVP Embarcadero
Prestataire informatique freelance et formateur Delphi
CV et contacts :
https://www.linkedin.com/in/patrickpremartin/
Sites sur Delphi:
https://developpeur-pascal.fr (actualité et codage)
https://apprendre-delphi.fr (autoformation en ligne)
https://serialstreameur.fr (replay de directs et inédits)
Outils Embarcadero
Les meilleurs outils de développement multi-
plateformes. Créez une fois et déployez des
applications modernes sur chaque plateforme.
Support Technique
Nos techniciens sont à votre service à tout
moment pour répondre à vos questions et
vous fournir des informations sûres.
Distributeur Officiel
Partenaire exclusif de Embarcadero
Technologies, largement reconnu pour
ses produits de programmation primés.
B A R N S T E N
QUI
Site : https://www.barnsten.com – Contacts FR : equipe@barnsten.com
NOTRE
Société de prestations informatiques.
Edition de sites Internet, logiciels, vidéos et livres.
Soutien technique ponctuel et aide à la conception de
logiciels de tous types.
Infos et contact :
https://olfsoftware.fr
O L F S O F T W A R E
NOTRE
Centre de formation référencé sur Datadock.
Des formations personnalisées ou « clé en main » à
Delphi ou d’autres technologies sont dispensées à
distance (sur Zoom) ou sur place en entreprise.
Infos et contact :
https://se-former-a-delphi.fr
O L F S O F T W A R E
NOTRE
Initiation à FireMonkey pour développeurs VCL
3h en direct le matin, des vidéos et des exercices.
- 5 au 9 juillet 2021
- 26 au 30 juillet 2021
- 16 au 20 août 2021
- 6 au 10 septembre 2021
- 27 septembre au 1 octobre 2021
O L F S O F T W A R E
AU
• Introduction
• « Application web », c’est quoi ?
• Delphi, C++Builder et le web
• Solutions côté serveur
• Solutions mixtes
• Solutions côté navigateur
• Alternatives côté navigateur
• Migrer un projet VCL
• Conclusion
© Patrick Prémartin / developpeur-pascal.fr
INTROD
On retrouve des logiciels Delphi dans tous les
domaines avec des impacts surprenants comme
l’atterrissage en parachute de Perseverance sur
Mars cette année.
Les sujets « Internet » et « web » reviennent très
régulièrement.
© Patrick Prémartin / developpeur-pascal.fr
INTROD
« Comment faire pour mettre mon programme
Windows sur Internet pour mes clients ? »
C’est LA question de l’année 2021. Il ne se passe
pas une quinzaine sans qu’on me la pose ou que
je la vois passer dans une discussion.
Pour répondre n’y a pas de solution universelle
mais des pistes possibles que nous allons voir.
© Patrick Prémartin / developpeur-pascal.fr
INTROD
On peut développer en Delphi pour le côté
serveur, le côté navigateur et pour les deux à la
fois sans se préoccuper de comment sera exécuté
notre programme.
© Patrick Prémartin / developpeur-pascal.fr
INTROD
Pour chaque catégorie il existe des produits
fournis par Embarcadero, disponibles chez des
éditeurs tiers et en open source.
© Patrick Prémartin / developpeur-pascal.fr
INTROD
Dans le monde du web, les librairies et
frameworks sont souvent considérés comme
particulièrement mal codés.
Partout dans le monde, des développeurs Delphi
codent des solutions solides, fiables et stables
pour le web.
Voici leurs réalisations...
© Patrick Prémartin / developpeur-pascal.fr
« APPLICATION WEB »
Commençons par des rappels sur le
fonctionnement d’Internet et quelques
définitions.
© Patrick Prémartin / developpeur-pascal.fr
« APPLICATION WEB »
Pour afficher des pages web nous utilisons des
butineurs.
Ces butineurs parcourent des sites et demandent
des ressources (HTML, CSS, images, vidéos,
audios, scripts, …) à des serveurs selon leurs
besoins.
© Patrick Prémartin / developpeur-pascal.fr
« APPLICATION WEB »
Les serveurs « web » transmettent les fichiers
qu’ils ont à disposition ou les créent sur demande
selon le cas.
Le butineur (et autres logiciels) les traitent en
fonction du type MIME du fichier.
Le tout dialogue en TCP/IP sur de l’IPv4 ou IPv6.
© Patrick Prémartin / developpeur-pascal.fr
« APPLICATION WEB »
On a des sites/pages web statiques ou
dynamiques.
On a des serveurs web comme des serveurs d’API.
On a des logiciels embarquant des sites web et
des sites web utilisés comme des logiciels.
© Patrick Prémartin / developpeur-pascal.fr
« APPLICATION WEB »
Les applications web sont d’une façon générale
des sites Internet interactifs avec de l’affichage et
de la saisie d’informations, généralement
protégés par mot de passe, qui peuvent
éventuellement être lancés directement depuis le
bureau ou l’écran d’accueil de l’ordinateur,
smartphone ou tablette sans montrer qu’il tourne
dans un butineur.
© Patrick Prémartin / developpeur-pascal.fr
« APPLICATION WEB »
Ils peuvent gérer des données persistantes du
côté ordinateur, accéder aux fichiers locaux ou à
des périphériques locaux, tout en accédant à des
données en ligne.
© Patrick Prémartin / developpeur-pascal.fr
DELPHI, C++BUILDER
Embarcadero propose en standard tous les outils
permettant d’accéder à des ressources en ligne
dans la RTL, accessibles à tous types de projets :
- Sockets
- Librairie http/s
- Librairie REST
- Librairie JSON, XML, …
© Patrick Prémartin / developpeur-pascal.fr
DELPHI, C++BUILDER
Il existe aussi de nombreuses ressources externes
pour travailler sur réseaux TCP/IP.
© Patrick Prémartin / developpeur-pascal.fr
DELPHI, C++BUILDER
La librairie Indy propose des composants clients
et serveurs sur les principaux protocoles utilisés
en ligne.
https://www.indyproject.org
© Patrick Prémartin / developpeur-pascal.fr
DELPHI, C++BUILDER
Les suites de composants IPWorks de nSoftware
proposent des composants et librairies plutôt
orienté sécurité mais également des services
réseau de base.
https://www.nsoftware.com
© Patrick Prémartin / developpeur-pascal.fr
DELPHI, C++BUILDER
OverByte propose la suite de composants ICS
dans laquelle on retrouve des composants clients
ou serveur sur les protocoles les plus utilisés en
ligne.
http://www.overbyte.eu/
© Patrick Prémartin / developpeur-pascal.fr
DELPHI, C++BUILDER
Devart propose la librairie de composants
SecureBridge qui implémente un certains nombre
de protocoles dont les WebSockets.
https://www.devart.com/sbridge/
© Patrick Prémartin / developpeur-pascal.fr
DELPHI, C++BUILDER
Esegece a une librairie fournie autour de
WebSocket pour de nombreux protocoles qui s’en
servent.
https://www.esegece.com/
© Patrick Prémartin / developpeur-pascal.fr
SOLUTIONS
Des logiciels serveur développés en Delphi et des
frameworks pour en faire, il y en a littéralement
des tonnes !
Embarcadero propose 3 solutions serveur
utilisables pour le web selon le niveau de licence
de Delphi, C++Builder ou RAD Studio utilisée.
© Patrick Prémartin / developpeur-pascal.fr
SOLUTIONS
WebBroker : la base des serveurs gérant les
entrées / sorties en http et https.
On y déclare les URI auxquelles il répond et on
met le code dans un événement. On peut aussi
utiliser des composants générant des pages selon
des templates.
http://docwiki.embarcadero.com/RADStudio/en/
Using_Web_Broker_Index
© Patrick Prémartin / developpeur-pascal.fr
SOLUTIONS
DataSnap : pour faire du client/serveur sur de
l’accès à tous types de bases de données et de
l’exécution de code à distance.
Au fil des années le module serveur a évolué et
peut maintenant répondre à des requêtes http/s
ou directement en REST.
http://docwiki.embarcadero.com/RADStudio/en/
Developing_DataSnap_Applications
© Patrick Prémartin / developpeur-pascal.fr
SOLUTIONS
RAD Server : l’évolution ultime de ces frameworks
pour gérer des API mais aussi se substituer aux
serveurs de fichiers habituels en traitant aussi les
éléments statiques.
https://www.embarcadero.com/products/rad-
server
http://docwiki.embarcadero.com/RADStudio/en/
RAD_Server_Overview
© Patrick Prémartin / developpeur-pascal.fr
SOLUTIONS
En plus de la documentation proposée par
Embarcadero, RAD Server bénéficie d’un livre que
lui a consacré David Intersimone en 2019 : The
Complete Guide to RAD Server.
https://delphi-books.com/en/The-Complete-
Guide-to-RAD-Server.html
De nombreux articles et vidéos sont disponibles
sur YouTube et les blogs d’Embarcadero.
© Patrick Prémartin / developpeur-pascal.fr
SOLUTIONS
Des outils ont été développés pour étendre ses
fonctionnalités ou en simplifier la configuration.
« Auto Tables for RAD Server » crée une API REST
pour faire du CRUD sur une base de données et
génère à la fois les infos pour RAD Server mais
aussi l’application cliente pour consommer l’API.
https://github.com/FMXExpress/AutoTablesForR
ADServer
© Patrick Prémartin / developpeur-pascal.fr
SOLUTIONS
A titre d’exemple, un projet de mise à jour de
tables d’une base de données WordPress a été
généré. Il se trouve sur
https://github.com/FMXExpress/WordPressDBCR
UDRESTClientServer
© Patrick Prémartin / developpeur-pascal.fr
SOLUTIONS
Pour une alternative à DataSnap il faut se tourner
vers Aurelius et Xdata de TMS Software ou
mORMot (1 ou 2) de Synopse.
John Kouraklis a publié un livre sur Aurelius et son
fonctionnement pour faire de l’ORM :
https://delphi-books.com/en/Introducing-Delphi-
ORM.html
© Patrick Prémartin / developpeur-pascal.fr
SOLUTIONS
Les alternatives open source à WebBroker ou RAD
Server ne manquent pas. Beaucoup de projets
sont basés sur le composant TIdHTTPServer du
projet Indy.
La différence entre eux est de savoir s’ils sont
maintenus et dans quelle mesure ils sont simples
ou complexes à utiliser et déployer.
© Patrick Prémartin / developpeur-pascal.fr
SOLUTIONS
Les deux plus visibles sont :
- Delphi MVC Framework de Daniele Teti
https://github.com/danieleteti/delphimvcfram
ework
- MARS de Andrea Magni.
https://github.com/andrea-magni/MARS
© Patrick Prémartin / developpeur-pascal.fr
SOLUTIONS
Une dizaine d’autres sont trouvables sur GitHub,
souvent non maintenus donc à utiliser avec
prudence et il y a aussi :
- Brook Framework
https://github.com/risoflora/brookframework
- Horse
https://github.com/HashLoad/horse
- Kitto
https://github.com/EtheaDev/kitto
© Patrick Prémartin / developpeur-pascal.fr
SOLUTIONS
Delphi MVC Framework est à ma connaissance le
plus utilisé.
C’est un serveur RESTFul qui permet également
de gérer des notifications PUSH et du JSON-RPC.
De nombreux exemples l’accompagnent et un
livre est dispo : https://delphi-
books.com/en/DelphiMVCFramework.html
© Patrick Prémartin / developpeur-pascal.fr
SOLUTIONS
Etrangement il n’y a pas beaucoup de solutions
pour faire des sites web et des serveurs intégrés
dans le même projet.
A ma connaissance il n’y en a que 2 :
- IntraWeb
https://www.atozed.com/intraweb/
- UniGUI
http://unigui.com
© Patrick Prémartin / developpeur-pascal.fr
SOLUTIONS
Ces 2 produits fonctionnent sur le même
principe: proposer un concepteur de fiches dans
Delphi et générer le HTML correspondant à
chaque fiche au moment où l’internaute accède à
la page.
On obtient un serveur qui gère un site avec des
pages dynamiques.
© Patrick Prémartin / developpeur-pascal.fr
SOLUTIONS
Les projets sont peuvent se compiler sur
différentes plateformes et dans différents modes
selon l’outils.
Pour le développeur tout se fait comme si on
était en local dans un programme classique, y
compris sur l’accès aux données et au contenu du
disque dur du serveur.
© Patrick Prémartin / developpeur-pascal.fr
SOLUTIONS
Pour l’utilisateur le résultat est très différent.
UniGUI génère des applications basées sur la
librairie ExtJS de Sencha.
IntraWeb génère des pages web, éventuellement
mixées avec des templates préexistants afin
d’être totalement libre du design du site.
© Patrick Prémartin / developpeur-pascal.fr
SOLUTIONS
De base UniGUI est plus destiné à reproduire en
web des logiciels de gestion classiques.
IntraWeb est nettement plus souple. On peut y
ajouter nos composants ou en prendre ailleurs,
utiliser les frameworks CSS ou Javascript dont on
a besoin, se mélanger à un site Bootstrap ou un
CMS.
© Patrick Prémartin / developpeur-pascal.fr
SOLUTIONS
Côté navigateur, c’est du HTML, du CSS et du
Javascript qui s’exécutent, du coup, il y avait peu
de chances de retrouver Delphi sur ce marché
jusqu’à la sortie de TMS Web Core par TMS
Software.
https://tmssoftware.com/site/tmswebcore.asp
© Patrick Prémartin / developpeur-pascal.fr
SOLUTIONS
L’approche de TMS Software est assez simple.
On code nos écrans avec des composants visuels
fournis avec TMS Web Core ou leur librairies FNC
de composants aussi compatibles avec les projets
VCL, FMX et Lazarus.
Lorsqu’on compile le projet, Pas2JS convertit le
code source Pascal en Javascript.
© Patrick Prémartin / developpeur-pascal.fr
SOLUTIONS
L’inconvénient, c’est qu’il faut séparer le code
d’interface utilisateur du code serveur.
En soi, l’approche MVC n’est pas forcément
mauvaise, mais c’est un changement d’habitude
pour les développeurs VCL/FMX qui codent dans
les événements sans séparer les couches
interface et applicatives.
© Patrick Prémartin / developpeur-pascal.fr
SOLUTIONS
Autre changement d’habitude : le code serveur
est forcément dans un autre projet
(éventuellement dans un autre langage).
On est sur un navigateur, on n’a pas de driver
pour accéder à des bases de données distantes
(mais on peut stocker des choses en local).
Tout se fait par API.
© Patrick Prémartin / developpeur-pascal.fr
SOLUTIONS
REST et Xdata (techno TMS Software) sont gérés
pour l’accès aux données.
On peut ajouter notre code Javascript ou créer
des composants (visuels ou pas) si besoin. Le
framework est totalement ouvert.
L’utilisation de templates est aussi possible.
© Patrick Prémartin / developpeur-pascal.fr
SOLUTIONS
TMS Web Core fournit ce qu’il faut pour le
débogage, en Pascal, directement depuis la
console développeur des navigateurs.
L’outil permet de générer des pages web, des
applications web, des programmes Electron et
d’autres types de déploiements.
© Patrick Prémartin / developpeur-pascal.fr
SOLUTIONS
De nombreux exemples et démos sont proposés.
Un livre du Dr Holger Flick est paru en 2020 pour
détailler le fonctionnement de TMS Web Core et
l’utilisation de ses nombreux composants.
https://delphi-books.com/en/TMS-WEB-Core-
Web-Application-Development-with-Delphi.html
© Patrick Prémartin / developpeur-pascal.fr
ALTERNATIVES
Il existe d’autres outils utilisant le Pascal pour
créer des pages ou applications web.
L’implémentation du Pascal et les librairies
fournies ne sont généralement pas aussi étoffées
que celles de Delphi mais c’est suffisant pour du
web.
© Patrick Prémartin / developpeur-pascal.fr
ALTERNATIVES
Quartex Pascal est en phase de test et semble
très prometteur.
https://quartexpascal.wordpress.com
© Patrick Prémartin / developpeur-pascal.fr
ALTERNATIVES
Smart Mobile Studio est un environnement de
développement en Pascal. Lors de la compilation
les projets sont exportés en HTML5, CSS et
Javascript.
https://smartmobilestudio.com
© Patrick Prémartin / developpeur-pascal.fr
ALTERNATIVES
Oxygene permet de développer en Pascal pour
plusieurs plateformes cibles dont WebAssembly.
Par conséquent on peut développer des
applications web et les exécuter dans un
navigateur.
https://www.elementscompiler.com/elements/ox
ygene/
© Patrick Prémartin / developpeur-pascal.fr
MIGRER UN
© Patrick Prémartin / developpeur-pascal.fr
Comme pour les mises à niveau depuis
d’anciennes version il existe des outils d’aide à la
migration vers des solutions web depuis un projet
VCL.
Ces outils font du remplacement de composants,
propriétés et blocs de codes par leurs équivalents
dans le framework cible choisi.
MIGRER UN
© Patrick Prémartin / developpeur-pascal.fr
Un gros travail reste nécessaire si vous utilisez des
composants « non standards » ou peu répandus
et d’une façon générale pour s’assurer que tout
fonctionne pendant et après migration.
Le 100% automatique n’existe pas.
MIGRER UN
© Patrick Prémartin / developpeur-pascal.fr
Migration d’un projet VCL vers UniGUI
https://delphiparser.com/product-category/vcl-
to-unigui-migration-wizard/
Migration d’un projet VCL vers TMS Web Core
http://midaconverter.com/?page_id=3244
Migration d’un projet VCL vers IntraWeb
http://midaconverter.com/?page_id=2839
CONCL
© Patrick Prémartin / developpeur-pascal.fr
Nous l’avons vu, pour faire des serveurs d’API,
servir des pages web comme les générer à la
volée ou sous forme de purs fichiers
HTML/CSS/Javascript, Delphi est une fois de plus
une option à envisager.
CONCL
© Patrick Prémartin / developpeur-pascal.fr
Le principe « 1 équipe, 1 langage, 1 base de code,
toutes les plateformes » se vérifie (hors écrans).
C’est le gros avantage du langage Pascal et de sa
multitude d’implémentations disponibles.
CONCL
© Patrick Prémartin / developpeur-pascal.fr
La mise en ligne en format web de projets VCL ou
FireMonkey nécessitera quand même des
adaptations importantes car les fiches ne sont
pas directement exploitables (pour le moment).
Des outils vous aideront dans cette tâche mais
une réflexion sur le fonctionnement de vos
logiciels en web sera toujours à faire.
PLUS SUR
© Patrick Prémartin / developpeur-pascal.fr
Pour des ressources complémentaires,
télécharger cette présentation et accéder aux
exemples, rendez-vous sur :
https://developpeur-pascal.fr/p/_a000-
webinaire-du-24-juin-2021-faire-des-applications-
web-avec-delphi.html
Et la rubrique « web » de
https://developpeur-pascal.fr
(RE)VOIR
© Patrick Prémartin / developpeur-pascal.fr
La rediffusion de ce webinaire sera disponible sur
la chaîne YouTube de Barnsten :
https://www.youtube.com/c/BarnstenFrance/vid
eos
Elle le sera également dans la rubrique
« webinaires Delphi » de Serial Streameur sur
https://serialstreameur.fr/webinaire-
20210624.php
PROCHAINS
© Patrick Prémartin / developpeur-pascal.fr
Sur https://www.twitch.tv/patrickpremartin
Dimanche 27 juin à 14h30 pour travailler sur le
jeu vidéo Colblor, son viewer de tournois et les
parties en réseau.
Le week-end du 10 et 11 juillet dans le cadre de
l’opération « Wave in Paris ».
Lors d’une game jam d’août ou à partir de
septembre pour du codage en direct.
PROCHAINS
© Patrick Prémartin / developpeur-pascal.fr
Sur Zoom si vous participez à l’une des semaines
d’initiation à FMX pour développeurs VCL
planifiées jusqu’en septembre ou à l’occasion
d’une formation personnalisée.
En live lors de la prochaine conférence
Embarcadero / Barnsten ou de rencontres entre
développeurs lorsque que ce sera possible.
LIVRES
© Patrick Prémartin / developpeur-pascal.fr
Des livres sur le développement avec Delphi
sortent régulièrement. Voici les 3 derniers :
• Delphi Event-based and Asynchronous
Programming
• Object Pascal Handbook (Delphi 10.4 Sydney
Edition)
• Delphi 10.3 POO en environnement Windows
Liste complète sur https://delphi-books.com/
LIVRES
© Patrick Prémartin / developpeur-pascal.fr
Plusieurs livres ont été annoncés et paraîtront
prochainement :
- Hand on with Delphi (volume 3) (chez TMS
Software)
- Fearless Cross-Platform Development with
Delphi (chez Packt)
A parution sur https://delphi-books.com/
LIVRES
© Patrick Prémartin / developpeur-pascal.fr
Chez votre marchand de journaux retrouvez
début juillet le numéro 247 de Programmez! avec
un article de Grégory Bersegeay qui propose un
pas à pas pour créer un jeu vidéo de plateforme
suite à sa diffusion de FMX Platformer en février.
https://github.com/gbegreg
https://www.youtube.com/watch?v=VnjAxhIl-1k

Más contenido relacionado

La actualidad más candente

Metasploit et Metasploitable2 : exploiter VSFTPD v2.3.4
Metasploit et Metasploitable2 : exploiter VSFTPD v2.3.4 Metasploit et Metasploitable2 : exploiter VSFTPD v2.3.4
Metasploit et Metasploitable2 : exploiter VSFTPD v2.3.4 Khalid EDAIG
 
Présentation de OpenERP/Odoo: Progiciel de Gestion Intégré Open Source
Présentation de OpenERP/Odoo: Progiciel de Gestion Intégré Open SourcePrésentation de OpenERP/Odoo: Progiciel de Gestion Intégré Open Source
Présentation de OpenERP/Odoo: Progiciel de Gestion Intégré Open SourceAfrica Performances
 
Session découverte de la Data Virtualization
Session découverte de la Data VirtualizationSession découverte de la Data Virtualization
Session découverte de la Data VirtualizationDenodo
 
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning 클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning Ji-Woong Choi
 
containerd the universal container runtime
containerd the universal container runtimecontainerd the universal container runtime
containerd the universal container runtimeDocker, Inc.
 
Intégration des données avec Talend ETL
Intégration des données avec Talend ETLIntégration des données avec Talend ETL
Intégration des données avec Talend ETLLilia Sfaxi
 
Guide pfsense
Guide pfsenseGuide pfsense
Guide pfsenser_sadoun
 
Introduction à l’intégration continue avec Jenkins
Introduction à l’intégration continue avec JenkinsIntroduction à l’intégration continue avec Jenkins
Introduction à l’intégration continue avec JenkinsEric Hogue
 
cours algorithme et structure de données 1er année
cours algorithme et structure de données 1er annéecours algorithme et structure de données 1er année
cours algorithme et structure de données 1er annéeMissaoui Abdelbaki
 
configuration vpn-ipsec-routeur
 configuration vpn-ipsec-routeur configuration vpn-ipsec-routeur
configuration vpn-ipsec-routeurJULIOR MIKALA
 
Rapport sfe hamza_ghaissi_storactive
Rapport sfe hamza_ghaissi_storactiveRapport sfe hamza_ghaissi_storactive
Rapport sfe hamza_ghaissi_storactiveHamzaGhaissi1
 
Rapport pfe Conceptionet Developpement d'une Application web et Mobile
Rapport pfe Conceptionet Developpement d'une Application web et  Mobile Rapport pfe Conceptionet Developpement d'une Application web et  Mobile
Rapport pfe Conceptionet Developpement d'une Application web et Mobile Raoua Bennasr
 
Présentation DEVOPS.pptx
Présentation DEVOPS.pptxPrésentation DEVOPS.pptx
Présentation DEVOPS.pptxboulonvert
 
Rapport de projet_de_fin_d__tudes__pfe__safwen (8)
Rapport de projet_de_fin_d__tudes__pfe__safwen (8)Rapport de projet_de_fin_d__tudes__pfe__safwen (8)
Rapport de projet_de_fin_d__tudes__pfe__safwen (8)safwenbenfredj
 

La actualidad más candente (20)

Metasploit et Metasploitable2 : exploiter VSFTPD v2.3.4
Metasploit et Metasploitable2 : exploiter VSFTPD v2.3.4 Metasploit et Metasploitable2 : exploiter VSFTPD v2.3.4
Metasploit et Metasploitable2 : exploiter VSFTPD v2.3.4
 
Présentation de OpenERP/Odoo: Progiciel de Gestion Intégré Open Source
Présentation de OpenERP/Odoo: Progiciel de Gestion Intégré Open SourcePrésentation de OpenERP/Odoo: Progiciel de Gestion Intégré Open Source
Présentation de OpenERP/Odoo: Progiciel de Gestion Intégré Open Source
 
Session découverte de la Data Virtualization
Session découverte de la Data VirtualizationSession découverte de la Data Virtualization
Session découverte de la Data Virtualization
 
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning 클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning
 
containerd the universal container runtime
containerd the universal container runtimecontainerd the universal container runtime
containerd the universal container runtime
 
Intégration des données avec Talend ETL
Intégration des données avec Talend ETLIntégration des données avec Talend ETL
Intégration des données avec Talend ETL
 
Guide pfsense
Guide pfsenseGuide pfsense
Guide pfsense
 
Le processus ETL (Extraction, Transformation, Chargement)
Le processus ETL (Extraction, Transformation, Chargement)Le processus ETL (Extraction, Transformation, Chargement)
Le processus ETL (Extraction, Transformation, Chargement)
 
UML+Python
UML+PythonUML+Python
UML+Python
 
Introduction à l’intégration continue avec Jenkins
Introduction à l’intégration continue avec JenkinsIntroduction à l’intégration continue avec Jenkins
Introduction à l’intégration continue avec Jenkins
 
cours algorithme et structure de données 1er année
cours algorithme et structure de données 1er annéecours algorithme et structure de données 1er année
cours algorithme et structure de données 1er année
 
configuration vpn-ipsec-routeur
 configuration vpn-ipsec-routeur configuration vpn-ipsec-routeur
configuration vpn-ipsec-routeur
 
Python
PythonPython
Python
 
Programmation Java
Programmation JavaProgrammation Java
Programmation Java
 
Rapport sfe hamza_ghaissi_storactive
Rapport sfe hamza_ghaissi_storactiveRapport sfe hamza_ghaissi_storactive
Rapport sfe hamza_ghaissi_storactive
 
Rapport pfe Conceptionet Developpement d'une Application web et Mobile
Rapport pfe Conceptionet Developpement d'une Application web et  Mobile Rapport pfe Conceptionet Developpement d'une Application web et  Mobile
Rapport pfe Conceptionet Developpement d'une Application web et Mobile
 
Pfe
PfePfe
Pfe
 
Présentation DEVOPS.pptx
Présentation DEVOPS.pptxPrésentation DEVOPS.pptx
Présentation DEVOPS.pptx
 
Rapport de projet_de_fin_d__tudes__pfe__safwen (8)
Rapport de projet_de_fin_d__tudes__pfe__safwen (8)Rapport de projet_de_fin_d__tudes__pfe__safwen (8)
Rapport de projet_de_fin_d__tudes__pfe__safwen (8)
 
Cours java
Cours javaCours java
Cours java
 

Similar a Faire des applications web avec Delphi

Coder sans coder : Delphi en mode no code !
Coder sans coder : Delphi en mode no code !Coder sans coder : Delphi en mode no code !
Coder sans coder : Delphi en mode no code !pprem
 
Comment développer pour Linux avec Delphi
Comment développer pour Linux avec DelphiComment développer pour Linux avec Delphi
Comment développer pour Linux avec Delphipprem
 
Déploiement et débogage à distance
Déploiement et débogage à distanceDéploiement et débogage à distance
Déploiement et débogage à distancepprem
 
Diffuser nos logiciels et leurs mises à jour
Diffuser nos logiciels et leurs mises à jourDiffuser nos logiciels et leurs mises à jour
Diffuser nos logiciels et leurs mises à jourpprem
 
Découvrez FireDAC pour la VCL
Découvrez FireDAC pour la VCLDécouvrez FireDAC pour la VCL
Découvrez FireDAC pour la VCLpprem
 
Utiliser l'EDI pour développer en multiplateforme
Utiliser l'EDI pour développer en multiplateformeUtiliser l'EDI pour développer en multiplateforme
Utiliser l'EDI pour développer en multiplateformepprem
 
Internationaliser les projets VCL / FMX
Internationaliser les projets VCL / FMXInternationaliser les projets VCL / FMX
Internationaliser les projets VCL / FMXpprem
 
Développer une application pour Android TV avec Delphi
Développer une application pour Android TV avec DelphiDévelopper une application pour Android TV avec Delphi
Développer une application pour Android TV avec Delphipprem
 
Embarquer une base de données locale dans vos logiciels et applications mobiles
Embarquer une base de données locale dans vos logiciels et applications mobilesEmbarquer une base de données locale dans vos logiciels et applications mobiles
Embarquer une base de données locale dans vos logiciels et applications mobilespprem
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !VISEO
 
Microsoft Afterworks Noumea 09/08/2017 - Délivrer des applications dans le C...
Microsoft Afterworks Noumea  09/08/2017 - Délivrer des applications dans le C...Microsoft Afterworks Noumea  09/08/2017 - Délivrer des applications dans le C...
Microsoft Afterworks Noumea 09/08/2017 - Délivrer des applications dans le C...Julien Chable
 
Afterworks MS Noumea - Développer des applications pour le Cloud avec le Clou...
Afterworks MS Noumea - Développer des applications pour le Cloud avec le Clou...Afterworks MS Noumea - Développer des applications pour le Cloud avec le Clou...
Afterworks MS Noumea - Développer des applications pour le Cloud avec le Clou...Julien Chable
 
Découvrez FireDAC pour FMX
Découvrez FireDAC pour FMXDécouvrez FireDAC pour FMX
Découvrez FireDAC pour FMXpprem
 
Introduction à web assembly
Introduction à web assemblyIntroduction à web assembly
Introduction à web assemblyJérémy Buget
 
Nouveautés de App-V 5.0 et intégration avec System Center 2012
Nouveautés de App-V 5.0 et intégration avec System Center 2012Nouveautés de App-V 5.0 et intégration avec System Center 2012
Nouveautés de App-V 5.0 et intégration avec System Center 2012Microsoft Technet France
 
Delphi et les tests unitaires
Delphi et les tests unitairesDelphi et les tests unitaires
Delphi et les tests unitairespprem
 
Investir sur son API web (in French)
Investir sur son API web (in French)Investir sur son API web (in French)
Investir sur son API web (in French)Restlet
 

Similar a Faire des applications web avec Delphi (20)

Coder sans coder : Delphi en mode no code !
Coder sans coder : Delphi en mode no code !Coder sans coder : Delphi en mode no code !
Coder sans coder : Delphi en mode no code !
 
Comment développer pour Linux avec Delphi
Comment développer pour Linux avec DelphiComment développer pour Linux avec Delphi
Comment développer pour Linux avec Delphi
 
Déploiement et débogage à distance
Déploiement et débogage à distanceDéploiement et débogage à distance
Déploiement et débogage à distance
 
Diffuser nos logiciels et leurs mises à jour
Diffuser nos logiciels et leurs mises à jourDiffuser nos logiciels et leurs mises à jour
Diffuser nos logiciels et leurs mises à jour
 
Découvrez FireDAC pour la VCL
Découvrez FireDAC pour la VCLDécouvrez FireDAC pour la VCL
Découvrez FireDAC pour la VCL
 
Utiliser l'EDI pour développer en multiplateforme
Utiliser l'EDI pour développer en multiplateformeUtiliser l'EDI pour développer en multiplateforme
Utiliser l'EDI pour développer en multiplateforme
 
Internationaliser les projets VCL / FMX
Internationaliser les projets VCL / FMXInternationaliser les projets VCL / FMX
Internationaliser les projets VCL / FMX
 
Développer une application pour Android TV avec Delphi
Développer une application pour Android TV avec DelphiDévelopper une application pour Android TV avec Delphi
Développer une application pour Android TV avec Delphi
 
Embarquer une base de données locale dans vos logiciels et applications mobiles
Embarquer une base de données locale dans vos logiciels et applications mobilesEmbarquer une base de données locale dans vos logiciels et applications mobiles
Embarquer une base de données locale dans vos logiciels et applications mobiles
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 
Microsoft Afterworks Noumea 09/08/2017 - Délivrer des applications dans le C...
Microsoft Afterworks Noumea  09/08/2017 - Délivrer des applications dans le C...Microsoft Afterworks Noumea  09/08/2017 - Délivrer des applications dans le C...
Microsoft Afterworks Noumea 09/08/2017 - Délivrer des applications dans le C...
 
Afterworks MS Noumea - Développer des applications pour le Cloud avec le Clou...
Afterworks MS Noumea - Développer des applications pour le Cloud avec le Clou...Afterworks MS Noumea - Développer des applications pour le Cloud avec le Clou...
Afterworks MS Noumea - Développer des applications pour le Cloud avec le Clou...
 
Silverlight
SilverlightSilverlight
Silverlight
 
Découvrez FireDAC pour FMX
Découvrez FireDAC pour FMXDécouvrez FireDAC pour FMX
Découvrez FireDAC pour FMX
 
Introduction à web assembly
Introduction à web assemblyIntroduction à web assembly
Introduction à web assembly
 
Nouveautés de App-V 5.0 et intégration avec System Center 2012
Nouveautés de App-V 5.0 et intégration avec System Center 2012Nouveautés de App-V 5.0 et intégration avec System Center 2012
Nouveautés de App-V 5.0 et intégration avec System Center 2012
 
Delphi et les tests unitaires
Delphi et les tests unitairesDelphi et les tests unitaires
Delphi et les tests unitaires
 
Investir sur son API web (in French)
Investir sur son API web (in French)Investir sur son API web (in French)
Investir sur son API web (in French)
 
Presentation platform flash
Presentation platform flashPresentation platform flash
Presentation platform flash
 
Apache Cordova 3.3 de zéro
Apache Cordova 3.3 de zéroApache Cordova 3.3 de zéro
Apache Cordova 3.3 de zéro
 

Más de pprem

Using FireMonkey as a game engine
Using FireMonkey as a game engineUsing FireMonkey as a game engine
Using FireMonkey as a game enginepprem
 
Using Delphi as a no code development environment
Using Delphi as a no code development environmentUsing Delphi as a no code development environment
Using Delphi as a no code development environmentpprem
 
Easy coding a multi device game with FireMonkey
Easy coding a multi device game with FireMonkeyEasy coding a multi device game with FireMonkey
Easy coding a multi device game with FireMonkeypprem
 
Utiliser FireMonkey comme moteur de jeux vidéo
Utiliser FireMonkey comme moteur de jeux vidéoUtiliser FireMonkey comme moteur de jeux vidéo
Utiliser FireMonkey comme moteur de jeux vidéopprem
 
Quoi de neuf dans la version 11 Alexandria ?
Quoi de neuf dans la version 11 Alexandria ?Quoi de neuf dans la version 11 Alexandria ?
Quoi de neuf dans la version 11 Alexandria ?pprem
 
Utilisation de git avec Delphi
Utilisation de git avec DelphiUtilisation de git avec Delphi
Utilisation de git avec Delphipprem
 
Sauvegarder et restaurer l'état des applications mobiles
Sauvegarder et restaurer l'état des applications mobilesSauvegarder et restaurer l'état des applications mobiles
Sauvegarder et restaurer l'état des applications mobilespprem
 
Gérer le clavier virtuel sous iOS et Android
Gérer le clavier virtuel sous iOS et AndroidGérer le clavier virtuel sous iOS et Android
Gérer le clavier virtuel sous iOS et Androidpprem
 
Utiliser des dessins vectoriels à la place d'images
Utiliser des dessins vectoriels à la place d'imagesUtiliser des dessins vectoriels à la place d'images
Utiliser des dessins vectoriels à la place d'imagespprem
 
Faire une interface adaptive avec la VCL
Faire une interface adaptive avec la VCLFaire une interface adaptive avec la VCL
Faire une interface adaptive avec la VCLpprem
 
Faire une interface adaptive avec FireMonkey
Faire une interface adaptive avec FireMonkeyFaire une interface adaptive avec FireMonkey
Faire une interface adaptive avec FireMonkeypprem
 
QR codes et codes à barres sous Delphi
QR codes et codes à barres sous DelphiQR codes et codes à barres sous Delphi
QR codes et codes à barres sous Delphipprem
 
Créer des composants visuels sans faire de composant
Créer des composants visuels sans faire de composantCréer des composants visuels sans faire de composant
Créer des composants visuels sans faire de composantpprem
 
Des solutions de synchronisation de données
Des solutions de synchronisation de donnéesDes solutions de synchronisation de données
Des solutions de synchronisation de donnéespprem
 
POC Notes de frais
POC Notes de fraisPOC Notes de frais
POC Notes de fraispprem
 
Présentation de Delphi 10.4 Sydney, C++Builder 10.4 Sydney et RAD Studio 10.4...
Présentation de Delphi 10.4 Sydney, C++Builder 10.4 Sydney et RAD Studio 10.4...Présentation de Delphi 10.4 Sydney, C++Builder 10.4 Sydney et RAD Studio 10.4...
Présentation de Delphi 10.4 Sydney, C++Builder 10.4 Sydney et RAD Studio 10.4...pprem
 
Comment écrire des articles de blog à succès
Comment écrire des articles de blog à succèsComment écrire des articles de blog à succès
Comment écrire des articles de blog à succèspprem
 
Gagner de l'argent sur Internet
Gagner de l'argent sur InternetGagner de l'argent sur Internet
Gagner de l'argent sur Internetpprem
 
Trafic
TraficTrafic
Traficpprem
 

Más de pprem (19)

Using FireMonkey as a game engine
Using FireMonkey as a game engineUsing FireMonkey as a game engine
Using FireMonkey as a game engine
 
Using Delphi as a no code development environment
Using Delphi as a no code development environmentUsing Delphi as a no code development environment
Using Delphi as a no code development environment
 
Easy coding a multi device game with FireMonkey
Easy coding a multi device game with FireMonkeyEasy coding a multi device game with FireMonkey
Easy coding a multi device game with FireMonkey
 
Utiliser FireMonkey comme moteur de jeux vidéo
Utiliser FireMonkey comme moteur de jeux vidéoUtiliser FireMonkey comme moteur de jeux vidéo
Utiliser FireMonkey comme moteur de jeux vidéo
 
Quoi de neuf dans la version 11 Alexandria ?
Quoi de neuf dans la version 11 Alexandria ?Quoi de neuf dans la version 11 Alexandria ?
Quoi de neuf dans la version 11 Alexandria ?
 
Utilisation de git avec Delphi
Utilisation de git avec DelphiUtilisation de git avec Delphi
Utilisation de git avec Delphi
 
Sauvegarder et restaurer l'état des applications mobiles
Sauvegarder et restaurer l'état des applications mobilesSauvegarder et restaurer l'état des applications mobiles
Sauvegarder et restaurer l'état des applications mobiles
 
Gérer le clavier virtuel sous iOS et Android
Gérer le clavier virtuel sous iOS et AndroidGérer le clavier virtuel sous iOS et Android
Gérer le clavier virtuel sous iOS et Android
 
Utiliser des dessins vectoriels à la place d'images
Utiliser des dessins vectoriels à la place d'imagesUtiliser des dessins vectoriels à la place d'images
Utiliser des dessins vectoriels à la place d'images
 
Faire une interface adaptive avec la VCL
Faire une interface adaptive avec la VCLFaire une interface adaptive avec la VCL
Faire une interface adaptive avec la VCL
 
Faire une interface adaptive avec FireMonkey
Faire une interface adaptive avec FireMonkeyFaire une interface adaptive avec FireMonkey
Faire une interface adaptive avec FireMonkey
 
QR codes et codes à barres sous Delphi
QR codes et codes à barres sous DelphiQR codes et codes à barres sous Delphi
QR codes et codes à barres sous Delphi
 
Créer des composants visuels sans faire de composant
Créer des composants visuels sans faire de composantCréer des composants visuels sans faire de composant
Créer des composants visuels sans faire de composant
 
Des solutions de synchronisation de données
Des solutions de synchronisation de donnéesDes solutions de synchronisation de données
Des solutions de synchronisation de données
 
POC Notes de frais
POC Notes de fraisPOC Notes de frais
POC Notes de frais
 
Présentation de Delphi 10.4 Sydney, C++Builder 10.4 Sydney et RAD Studio 10.4...
Présentation de Delphi 10.4 Sydney, C++Builder 10.4 Sydney et RAD Studio 10.4...Présentation de Delphi 10.4 Sydney, C++Builder 10.4 Sydney et RAD Studio 10.4...
Présentation de Delphi 10.4 Sydney, C++Builder 10.4 Sydney et RAD Studio 10.4...
 
Comment écrire des articles de blog à succès
Comment écrire des articles de blog à succèsComment écrire des articles de blog à succès
Comment écrire des articles de blog à succès
 
Gagner de l'argent sur Internet
Gagner de l'argent sur InternetGagner de l'argent sur Internet
Gagner de l'argent sur Internet
 
Trafic
TraficTrafic
Trafic
 

Faire des applications web avec Delphi

  • 1. Faire des applications web avec Delphi Webinaire du 24 juin 2021
  • 2. PRÉSENTATEUR MVP Embarcadero Prestataire informatique freelance et formateur Delphi CV et contacts : https://www.linkedin.com/in/patrickpremartin/ Sites sur Delphi: https://developpeur-pascal.fr (actualité et codage) https://apprendre-delphi.fr (autoformation en ligne) https://serialstreameur.fr (replay de directs et inédits)
  • 3. Outils Embarcadero Les meilleurs outils de développement multi- plateformes. Créez une fois et déployez des applications modernes sur chaque plateforme. Support Technique Nos techniciens sont à votre service à tout moment pour répondre à vos questions et vous fournir des informations sûres. Distributeur Officiel Partenaire exclusif de Embarcadero Technologies, largement reconnu pour ses produits de programmation primés. B A R N S T E N QUI Site : https://www.barnsten.com – Contacts FR : equipe@barnsten.com
  • 4. NOTRE Société de prestations informatiques. Edition de sites Internet, logiciels, vidéos et livres. Soutien technique ponctuel et aide à la conception de logiciels de tous types. Infos et contact : https://olfsoftware.fr O L F S O F T W A R E
  • 5. NOTRE Centre de formation référencé sur Datadock. Des formations personnalisées ou « clé en main » à Delphi ou d’autres technologies sont dispensées à distance (sur Zoom) ou sur place en entreprise. Infos et contact : https://se-former-a-delphi.fr O L F S O F T W A R E
  • 6. NOTRE Initiation à FireMonkey pour développeurs VCL 3h en direct le matin, des vidéos et des exercices. - 5 au 9 juillet 2021 - 26 au 30 juillet 2021 - 16 au 20 août 2021 - 6 au 10 septembre 2021 - 27 septembre au 1 octobre 2021 O L F S O F T W A R E
  • 7. AU • Introduction • « Application web », c’est quoi ? • Delphi, C++Builder et le web • Solutions côté serveur • Solutions mixtes • Solutions côté navigateur • Alternatives côté navigateur • Migrer un projet VCL • Conclusion © Patrick Prémartin / developpeur-pascal.fr
  • 8. INTROD On retrouve des logiciels Delphi dans tous les domaines avec des impacts surprenants comme l’atterrissage en parachute de Perseverance sur Mars cette année. Les sujets « Internet » et « web » reviennent très régulièrement. © Patrick Prémartin / developpeur-pascal.fr
  • 9. INTROD « Comment faire pour mettre mon programme Windows sur Internet pour mes clients ? » C’est LA question de l’année 2021. Il ne se passe pas une quinzaine sans qu’on me la pose ou que je la vois passer dans une discussion. Pour répondre n’y a pas de solution universelle mais des pistes possibles que nous allons voir. © Patrick Prémartin / developpeur-pascal.fr
  • 10. INTROD On peut développer en Delphi pour le côté serveur, le côté navigateur et pour les deux à la fois sans se préoccuper de comment sera exécuté notre programme. © Patrick Prémartin / developpeur-pascal.fr
  • 11. INTROD Pour chaque catégorie il existe des produits fournis par Embarcadero, disponibles chez des éditeurs tiers et en open source. © Patrick Prémartin / developpeur-pascal.fr
  • 12. INTROD Dans le monde du web, les librairies et frameworks sont souvent considérés comme particulièrement mal codés. Partout dans le monde, des développeurs Delphi codent des solutions solides, fiables et stables pour le web. Voici leurs réalisations... © Patrick Prémartin / developpeur-pascal.fr
  • 13. « APPLICATION WEB » Commençons par des rappels sur le fonctionnement d’Internet et quelques définitions. © Patrick Prémartin / developpeur-pascal.fr
  • 14. « APPLICATION WEB » Pour afficher des pages web nous utilisons des butineurs. Ces butineurs parcourent des sites et demandent des ressources (HTML, CSS, images, vidéos, audios, scripts, …) à des serveurs selon leurs besoins. © Patrick Prémartin / developpeur-pascal.fr
  • 15. « APPLICATION WEB » Les serveurs « web » transmettent les fichiers qu’ils ont à disposition ou les créent sur demande selon le cas. Le butineur (et autres logiciels) les traitent en fonction du type MIME du fichier. Le tout dialogue en TCP/IP sur de l’IPv4 ou IPv6. © Patrick Prémartin / developpeur-pascal.fr
  • 16. « APPLICATION WEB » On a des sites/pages web statiques ou dynamiques. On a des serveurs web comme des serveurs d’API. On a des logiciels embarquant des sites web et des sites web utilisés comme des logiciels. © Patrick Prémartin / developpeur-pascal.fr
  • 17. « APPLICATION WEB » Les applications web sont d’une façon générale des sites Internet interactifs avec de l’affichage et de la saisie d’informations, généralement protégés par mot de passe, qui peuvent éventuellement être lancés directement depuis le bureau ou l’écran d’accueil de l’ordinateur, smartphone ou tablette sans montrer qu’il tourne dans un butineur. © Patrick Prémartin / developpeur-pascal.fr
  • 18. « APPLICATION WEB » Ils peuvent gérer des données persistantes du côté ordinateur, accéder aux fichiers locaux ou à des périphériques locaux, tout en accédant à des données en ligne. © Patrick Prémartin / developpeur-pascal.fr
  • 19. DELPHI, C++BUILDER Embarcadero propose en standard tous les outils permettant d’accéder à des ressources en ligne dans la RTL, accessibles à tous types de projets : - Sockets - Librairie http/s - Librairie REST - Librairie JSON, XML, … © Patrick Prémartin / developpeur-pascal.fr
  • 20. DELPHI, C++BUILDER Il existe aussi de nombreuses ressources externes pour travailler sur réseaux TCP/IP. © Patrick Prémartin / developpeur-pascal.fr
  • 21. DELPHI, C++BUILDER La librairie Indy propose des composants clients et serveurs sur les principaux protocoles utilisés en ligne. https://www.indyproject.org © Patrick Prémartin / developpeur-pascal.fr
  • 22. DELPHI, C++BUILDER Les suites de composants IPWorks de nSoftware proposent des composants et librairies plutôt orienté sécurité mais également des services réseau de base. https://www.nsoftware.com © Patrick Prémartin / developpeur-pascal.fr
  • 23. DELPHI, C++BUILDER OverByte propose la suite de composants ICS dans laquelle on retrouve des composants clients ou serveur sur les protocoles les plus utilisés en ligne. http://www.overbyte.eu/ © Patrick Prémartin / developpeur-pascal.fr
  • 24. DELPHI, C++BUILDER Devart propose la librairie de composants SecureBridge qui implémente un certains nombre de protocoles dont les WebSockets. https://www.devart.com/sbridge/ © Patrick Prémartin / developpeur-pascal.fr
  • 25. DELPHI, C++BUILDER Esegece a une librairie fournie autour de WebSocket pour de nombreux protocoles qui s’en servent. https://www.esegece.com/ © Patrick Prémartin / developpeur-pascal.fr
  • 26. SOLUTIONS Des logiciels serveur développés en Delphi et des frameworks pour en faire, il y en a littéralement des tonnes ! Embarcadero propose 3 solutions serveur utilisables pour le web selon le niveau de licence de Delphi, C++Builder ou RAD Studio utilisée. © Patrick Prémartin / developpeur-pascal.fr
  • 27. SOLUTIONS WebBroker : la base des serveurs gérant les entrées / sorties en http et https. On y déclare les URI auxquelles il répond et on met le code dans un événement. On peut aussi utiliser des composants générant des pages selon des templates. http://docwiki.embarcadero.com/RADStudio/en/ Using_Web_Broker_Index © Patrick Prémartin / developpeur-pascal.fr
  • 28. SOLUTIONS DataSnap : pour faire du client/serveur sur de l’accès à tous types de bases de données et de l’exécution de code à distance. Au fil des années le module serveur a évolué et peut maintenant répondre à des requêtes http/s ou directement en REST. http://docwiki.embarcadero.com/RADStudio/en/ Developing_DataSnap_Applications © Patrick Prémartin / developpeur-pascal.fr
  • 29. SOLUTIONS RAD Server : l’évolution ultime de ces frameworks pour gérer des API mais aussi se substituer aux serveurs de fichiers habituels en traitant aussi les éléments statiques. https://www.embarcadero.com/products/rad- server http://docwiki.embarcadero.com/RADStudio/en/ RAD_Server_Overview © Patrick Prémartin / developpeur-pascal.fr
  • 30. SOLUTIONS En plus de la documentation proposée par Embarcadero, RAD Server bénéficie d’un livre que lui a consacré David Intersimone en 2019 : The Complete Guide to RAD Server. https://delphi-books.com/en/The-Complete- Guide-to-RAD-Server.html De nombreux articles et vidéos sont disponibles sur YouTube et les blogs d’Embarcadero. © Patrick Prémartin / developpeur-pascal.fr
  • 31. SOLUTIONS Des outils ont été développés pour étendre ses fonctionnalités ou en simplifier la configuration. « Auto Tables for RAD Server » crée une API REST pour faire du CRUD sur une base de données et génère à la fois les infos pour RAD Server mais aussi l’application cliente pour consommer l’API. https://github.com/FMXExpress/AutoTablesForR ADServer © Patrick Prémartin / developpeur-pascal.fr
  • 32. SOLUTIONS A titre d’exemple, un projet de mise à jour de tables d’une base de données WordPress a été généré. Il se trouve sur https://github.com/FMXExpress/WordPressDBCR UDRESTClientServer © Patrick Prémartin / developpeur-pascal.fr
  • 33. SOLUTIONS Pour une alternative à DataSnap il faut se tourner vers Aurelius et Xdata de TMS Software ou mORMot (1 ou 2) de Synopse. John Kouraklis a publié un livre sur Aurelius et son fonctionnement pour faire de l’ORM : https://delphi-books.com/en/Introducing-Delphi- ORM.html © Patrick Prémartin / developpeur-pascal.fr
  • 34. SOLUTIONS Les alternatives open source à WebBroker ou RAD Server ne manquent pas. Beaucoup de projets sont basés sur le composant TIdHTTPServer du projet Indy. La différence entre eux est de savoir s’ils sont maintenus et dans quelle mesure ils sont simples ou complexes à utiliser et déployer. © Patrick Prémartin / developpeur-pascal.fr
  • 35. SOLUTIONS Les deux plus visibles sont : - Delphi MVC Framework de Daniele Teti https://github.com/danieleteti/delphimvcfram ework - MARS de Andrea Magni. https://github.com/andrea-magni/MARS © Patrick Prémartin / developpeur-pascal.fr
  • 36. SOLUTIONS Une dizaine d’autres sont trouvables sur GitHub, souvent non maintenus donc à utiliser avec prudence et il y a aussi : - Brook Framework https://github.com/risoflora/brookframework - Horse https://github.com/HashLoad/horse - Kitto https://github.com/EtheaDev/kitto © Patrick Prémartin / developpeur-pascal.fr
  • 37. SOLUTIONS Delphi MVC Framework est à ma connaissance le plus utilisé. C’est un serveur RESTFul qui permet également de gérer des notifications PUSH et du JSON-RPC. De nombreux exemples l’accompagnent et un livre est dispo : https://delphi- books.com/en/DelphiMVCFramework.html © Patrick Prémartin / developpeur-pascal.fr
  • 38. SOLUTIONS Etrangement il n’y a pas beaucoup de solutions pour faire des sites web et des serveurs intégrés dans le même projet. A ma connaissance il n’y en a que 2 : - IntraWeb https://www.atozed.com/intraweb/ - UniGUI http://unigui.com © Patrick Prémartin / developpeur-pascal.fr
  • 39. SOLUTIONS Ces 2 produits fonctionnent sur le même principe: proposer un concepteur de fiches dans Delphi et générer le HTML correspondant à chaque fiche au moment où l’internaute accède à la page. On obtient un serveur qui gère un site avec des pages dynamiques. © Patrick Prémartin / developpeur-pascal.fr
  • 40. SOLUTIONS Les projets sont peuvent se compiler sur différentes plateformes et dans différents modes selon l’outils. Pour le développeur tout se fait comme si on était en local dans un programme classique, y compris sur l’accès aux données et au contenu du disque dur du serveur. © Patrick Prémartin / developpeur-pascal.fr
  • 41. SOLUTIONS Pour l’utilisateur le résultat est très différent. UniGUI génère des applications basées sur la librairie ExtJS de Sencha. IntraWeb génère des pages web, éventuellement mixées avec des templates préexistants afin d’être totalement libre du design du site. © Patrick Prémartin / developpeur-pascal.fr
  • 42. SOLUTIONS De base UniGUI est plus destiné à reproduire en web des logiciels de gestion classiques. IntraWeb est nettement plus souple. On peut y ajouter nos composants ou en prendre ailleurs, utiliser les frameworks CSS ou Javascript dont on a besoin, se mélanger à un site Bootstrap ou un CMS. © Patrick Prémartin / developpeur-pascal.fr
  • 43. SOLUTIONS Côté navigateur, c’est du HTML, du CSS et du Javascript qui s’exécutent, du coup, il y avait peu de chances de retrouver Delphi sur ce marché jusqu’à la sortie de TMS Web Core par TMS Software. https://tmssoftware.com/site/tmswebcore.asp © Patrick Prémartin / developpeur-pascal.fr
  • 44. SOLUTIONS L’approche de TMS Software est assez simple. On code nos écrans avec des composants visuels fournis avec TMS Web Core ou leur librairies FNC de composants aussi compatibles avec les projets VCL, FMX et Lazarus. Lorsqu’on compile le projet, Pas2JS convertit le code source Pascal en Javascript. © Patrick Prémartin / developpeur-pascal.fr
  • 45. SOLUTIONS L’inconvénient, c’est qu’il faut séparer le code d’interface utilisateur du code serveur. En soi, l’approche MVC n’est pas forcément mauvaise, mais c’est un changement d’habitude pour les développeurs VCL/FMX qui codent dans les événements sans séparer les couches interface et applicatives. © Patrick Prémartin / developpeur-pascal.fr
  • 46. SOLUTIONS Autre changement d’habitude : le code serveur est forcément dans un autre projet (éventuellement dans un autre langage). On est sur un navigateur, on n’a pas de driver pour accéder à des bases de données distantes (mais on peut stocker des choses en local). Tout se fait par API. © Patrick Prémartin / developpeur-pascal.fr
  • 47. SOLUTIONS REST et Xdata (techno TMS Software) sont gérés pour l’accès aux données. On peut ajouter notre code Javascript ou créer des composants (visuels ou pas) si besoin. Le framework est totalement ouvert. L’utilisation de templates est aussi possible. © Patrick Prémartin / developpeur-pascal.fr
  • 48. SOLUTIONS TMS Web Core fournit ce qu’il faut pour le débogage, en Pascal, directement depuis la console développeur des navigateurs. L’outil permet de générer des pages web, des applications web, des programmes Electron et d’autres types de déploiements. © Patrick Prémartin / developpeur-pascal.fr
  • 49. SOLUTIONS De nombreux exemples et démos sont proposés. Un livre du Dr Holger Flick est paru en 2020 pour détailler le fonctionnement de TMS Web Core et l’utilisation de ses nombreux composants. https://delphi-books.com/en/TMS-WEB-Core- Web-Application-Development-with-Delphi.html © Patrick Prémartin / developpeur-pascal.fr
  • 50. ALTERNATIVES Il existe d’autres outils utilisant le Pascal pour créer des pages ou applications web. L’implémentation du Pascal et les librairies fournies ne sont généralement pas aussi étoffées que celles de Delphi mais c’est suffisant pour du web. © Patrick Prémartin / developpeur-pascal.fr
  • 51. ALTERNATIVES Quartex Pascal est en phase de test et semble très prometteur. https://quartexpascal.wordpress.com © Patrick Prémartin / developpeur-pascal.fr
  • 52. ALTERNATIVES Smart Mobile Studio est un environnement de développement en Pascal. Lors de la compilation les projets sont exportés en HTML5, CSS et Javascript. https://smartmobilestudio.com © Patrick Prémartin / developpeur-pascal.fr
  • 53. ALTERNATIVES Oxygene permet de développer en Pascal pour plusieurs plateformes cibles dont WebAssembly. Par conséquent on peut développer des applications web et les exécuter dans un navigateur. https://www.elementscompiler.com/elements/ox ygene/ © Patrick Prémartin / developpeur-pascal.fr
  • 54. MIGRER UN © Patrick Prémartin / developpeur-pascal.fr Comme pour les mises à niveau depuis d’anciennes version il existe des outils d’aide à la migration vers des solutions web depuis un projet VCL. Ces outils font du remplacement de composants, propriétés et blocs de codes par leurs équivalents dans le framework cible choisi.
  • 55. MIGRER UN © Patrick Prémartin / developpeur-pascal.fr Un gros travail reste nécessaire si vous utilisez des composants « non standards » ou peu répandus et d’une façon générale pour s’assurer que tout fonctionne pendant et après migration. Le 100% automatique n’existe pas.
  • 56. MIGRER UN © Patrick Prémartin / developpeur-pascal.fr Migration d’un projet VCL vers UniGUI https://delphiparser.com/product-category/vcl- to-unigui-migration-wizard/ Migration d’un projet VCL vers TMS Web Core http://midaconverter.com/?page_id=3244 Migration d’un projet VCL vers IntraWeb http://midaconverter.com/?page_id=2839
  • 57. CONCL © Patrick Prémartin / developpeur-pascal.fr Nous l’avons vu, pour faire des serveurs d’API, servir des pages web comme les générer à la volée ou sous forme de purs fichiers HTML/CSS/Javascript, Delphi est une fois de plus une option à envisager.
  • 58. CONCL © Patrick Prémartin / developpeur-pascal.fr Le principe « 1 équipe, 1 langage, 1 base de code, toutes les plateformes » se vérifie (hors écrans). C’est le gros avantage du langage Pascal et de sa multitude d’implémentations disponibles.
  • 59. CONCL © Patrick Prémartin / developpeur-pascal.fr La mise en ligne en format web de projets VCL ou FireMonkey nécessitera quand même des adaptations importantes car les fiches ne sont pas directement exploitables (pour le moment). Des outils vous aideront dans cette tâche mais une réflexion sur le fonctionnement de vos logiciels en web sera toujours à faire.
  • 60. PLUS SUR © Patrick Prémartin / developpeur-pascal.fr Pour des ressources complémentaires, télécharger cette présentation et accéder aux exemples, rendez-vous sur : https://developpeur-pascal.fr/p/_a000- webinaire-du-24-juin-2021-faire-des-applications- web-avec-delphi.html Et la rubrique « web » de https://developpeur-pascal.fr
  • 61. (RE)VOIR © Patrick Prémartin / developpeur-pascal.fr La rediffusion de ce webinaire sera disponible sur la chaîne YouTube de Barnsten : https://www.youtube.com/c/BarnstenFrance/vid eos Elle le sera également dans la rubrique « webinaires Delphi » de Serial Streameur sur https://serialstreameur.fr/webinaire- 20210624.php
  • 62. PROCHAINS © Patrick Prémartin / developpeur-pascal.fr Sur https://www.twitch.tv/patrickpremartin Dimanche 27 juin à 14h30 pour travailler sur le jeu vidéo Colblor, son viewer de tournois et les parties en réseau. Le week-end du 10 et 11 juillet dans le cadre de l’opération « Wave in Paris ». Lors d’une game jam d’août ou à partir de septembre pour du codage en direct.
  • 63. PROCHAINS © Patrick Prémartin / developpeur-pascal.fr Sur Zoom si vous participez à l’une des semaines d’initiation à FMX pour développeurs VCL planifiées jusqu’en septembre ou à l’occasion d’une formation personnalisée. En live lors de la prochaine conférence Embarcadero / Barnsten ou de rencontres entre développeurs lorsque que ce sera possible.
  • 64. LIVRES © Patrick Prémartin / developpeur-pascal.fr Des livres sur le développement avec Delphi sortent régulièrement. Voici les 3 derniers : • Delphi Event-based and Asynchronous Programming • Object Pascal Handbook (Delphi 10.4 Sydney Edition) • Delphi 10.3 POO en environnement Windows Liste complète sur https://delphi-books.com/
  • 65. LIVRES © Patrick Prémartin / developpeur-pascal.fr Plusieurs livres ont été annoncés et paraîtront prochainement : - Hand on with Delphi (volume 3) (chez TMS Software) - Fearless Cross-Platform Development with Delphi (chez Packt) A parution sur https://delphi-books.com/
  • 66. LIVRES © Patrick Prémartin / developpeur-pascal.fr Chez votre marchand de journaux retrouvez début juillet le numéro 247 de Programmez! avec un article de Grégory Bersegeay qui propose un pas à pas pour créer un jeu vidéo de plateforme suite à sa diffusion de FMX Platformer en février. https://github.com/gbegreg https://www.youtube.com/watch?v=VnjAxhIl-1k