Bonjour,
apparemment IntraWeb n'est plus distribué avec Delphi 10.4. C'est remplacé par quoi ?
Je voudrais développer une petite application Web pour débuter.
Est ce possible en incluant une BD SqLite ? (j'ai peur que non ?)
Merci
Charly
Version imprimable
Bonjour,
apparemment IntraWeb n'est plus distribué avec Delphi 10.4. C'est remplacé par quoi ?
Je voudrais développer une petite application Web pour débuter.
Est ce possible en incluant une BD SqLite ? (j'ai peur que non ?)
Merci
Charly
Si c'est pour nouveau projet, je ferais un serveur métier REST en Delphi, un middleware PHP + le Front en JQUERY (ou REACT voire d'autres trucs à la mode en Web)
Pour la base de données, la Communauty c'est comme une Profesionnelle pour étudiant non ? je confonds toujours la licence Scolaire de la licence pour amateur éclairé.
SQLite ça doit être en localhost
Tu peux pas récupérer une 10.3 avec IW14 intégré à la place de la 10.4 ?
Sinon faut tout faire à main avec un WebBroker, faut fournir le fichier HTML, JS au lieu de laisse IW les générer à partir de la DFM
merci Shai,
en fait mon objectif est d'apprendre à faire une petite appli Web, sachant que je pars de zéro.
je voudrais faire une petite appli du niveau "Hello World" ! J'aimerais partir de la VCL que je connais, c'est pourquoi j'avais pensé à IntraWeb. Et après cette première appli, peut être ajouter une petite BD.
Je n'ai plus la 10.3, car j'ai chargé la 10.4 CE (qui est une version complète, mais avec limitation de diffusion des applis) Sino j'ai Delphi 7 qui inclut Intraweb (très ancien mais qui me permettrait peut être d'apprendre les bases ?)
Sinon je ne trouve pas de tuto ou de PDF pour hyper débutant en appli Web (je ne connais que HTML, Javascript et j'ai déjà fait des sites web statiques ou peu dynamiques à la main)
J'ai peur que cela soit hors de portée de l'amateur que je suis ?
A+
Charly
En fait, choisir la VCL comme base d'un site Web c'est juste la mauvaise piste !
Intraweb c'est pour les dev Delphi qui ne voulaient pas investir du temps à faire du Web, XMLRAD était bien plus pro comme approche mais n'a pas eu de succès.
Un programme Delphi REST qui reçoit des requêtes depuis un JQuery, ça me semble un bon départ?
Un bon vieux exemple : https://www.youtube.com/watch?v=KYGV8ovjipk
PPREM doit avoir fait des vidéos à ce sujet aussi, plus récent (durant le COVID)
Merci,
je regarde tout cela
A+
Charly
Le "car" est abusif, D10.3 peut très bien coexister avec D 10.4 et D 11 ou toute autre version.
Pièce jointe 631471
Bonjour Serge,
j'ai essayé de recharger la 10.3 CE car j'avais conservé l'installateur et le n° de licence mais à l'install il m'a signalé que la coexistence n'était pas possible ?
y a t il une astuce ?
A+
Charly
PS : j'ai réussi à faire une appli Rest selon un modèle donné par Embarcadero (songs of Madonna) mais elle ne s'exécute pas dans le navigateur.
Voici la fenêtre à l’exécution de l'appli :
Pièce jointe 631480
sinon je crois que c'est le port 8080, je ne sais pas comment le retrouver !
A+
Charly
Ce n'est pas ce que je m'attendais à voir, ça, c'est plus un programme affichant du JSON. Tu as trouvé où cet exemple ?
En toute logique, tu devrais avoir un programme "serveur" et un programme "client" (optionnel)
cela devrait ressembler à quelque chose comme ça (truc fait récemment pour interroger un bdd Firebird via des mobiles)
Pièce jointe 631482
là, l'interrogation fonctionnera aussi sous internet
j'ai mis le lien dans mes 2 posts précédents
tu n'aurais pas un petit exemple très simple ou un lien (sachant qu'il faudrait que je fasse une base FB ? ce que je n'ai jamais encore fait !)
A+
Charly
Je n'ai pas fait de marche à suivre, dommage. La plupart des processus se sont échangés via Skype
L'application n'était pas pour moi non plus :roll:
En gros j'ai testé divers wizards et me suis arrêté sur
Pièce jointe 631483
ensuite j'ai ajouté des fonctions au serveur
Pièce jointe 631484
en exemple récupération d'élève
bien sûr, il y a plus, je peux à l'occasion t'envoyer les sources (presque complets) si NABIL74 me le permet.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 // eleve unique function TServerMethods1.GetEleve(CodeBarreEleve: String): String; begin FDQuery1.Open('SELECT r."Nom_prenom" NOM FROM "Eleves" r WHERE r."Eleve_Code_Barre"=:E', [CodeBarreEleve]); if FDQuery1.FieldbyName('NOM').isNull then Result:='' else begin Result:=FDQuery1.FieldbyName('NOM').asString; end; FDQuery1.Close; end; // information elève unique function TServerMethods1.GetEleveOnLine( CodeBarreEleve: String): TFDJSONDataSets; begin FDQuery1.Open('SELECT r."Eleve_Code_Barre", r."Nom_prenom",'+ 'r."Date_naissance",r.PHOTO, r.DATE_INSRIPTION '+ 'FROM "Eleves" r WHERE r."Eleve_Code_Barre"=:E', [CodeBarreEleve]); Result := TFDJSONDataSets.Create; TFDJSONDataSetsWriter.ListAdd(Result, FDQuery1); FDQuery1.Close; end; // obtention du fichier éleves complet, sera envoyé dans un fdmemtable function TServerMethods1.GetEleves: TFDJSONDataSets; begin FDQuery1.Open('SELECT r."Eleve_Code_Barre", r."Nom_prenom", '+ 'r."Date_naissance",r.PHOTO, r.DATE_INSRIPTION'+ ' FROM "Eleves" r'); Result := TFDJSONDataSets.Create; TFDJSONDataSetsWriter.ListAdd(Result, FDQuery1); FDQuery1.Close; end;
Le hic, c'est que je ne sais pas trop ce que propose la version CE
Ok, merci je vais tester tout cela
A+
Charly
Je viens de voir que DataSnap c'était à partir de version Entreprise donc avec une version CE tu ne pourras pas créer de serveur REST avec Delphi.
Ce qui t'oblige comme l'indiquait ShaiLeTroll à passer par Appache et PHP (minima)
Pour répondre à Shai, oui, il y a bien eu une session https://www.youtube.com/watch?v=SLmk3ebN9U0&list=PLI4jHydEwwtVIHMzxBssobX7IYnGGyQq9&index=25 (pprem) sur le sujet (il y a 2 ou 3 ans) depuis il propose aussi une formation
Allo ? Bonjour. Réponse "rapide" pendant que je me réveille. 8O
En effet, y en plein d'exemples, mais d'une manière générale faire des interfaces web c'est chiant. :mouarf:
IntraWeb 14 est toujours gratuit en version de base pour les détenteurs de licences Delphi. Il suffit de prendre la licence directement à la source https://www.atozed.com/intraweb/
Comme alternative il y a aussi UniGUI qui fonctionne globalement pareil.
Ces deux frameworks fabriquent un serveur web en Delphi (pour Windows et/ou pour Linux) avec des écrans créés sous forme de fiches dans l'IDE ou pouvant se mélanger avec des pages web existantes (ou des CMS selon jusqu'où on va et quelle version d'IW on prend).
Dans les connus il y a aussi TMS Web Core qui permet de fabriquer la partie cliente sans se préoccuper d'autres langages que le Pascal. Ca construit les pages web à partir de fiches. Pas d'accès à des bases de données, comme les "vrais" sites web il faut un serveur d'apiquages et y accéder en AJAX (des composants permettent de le faire sinon on peut toujours utiliser du JS directement).
Maintenant il y a le "vrai" web : des pages HTML, du CSS et du JavaScript. Je suggère de passer par des templates à personnaliser si on n'a pas d'infographiste sous la main. Pour des trucs d'administration de base de données, un thème bootstrap comme ceux proposés par https://wrapbootstrap.com contiennent tout un tas de types d'interfaces utilisées dans des trucs de gestion, on n'a qu'à copier/coller, comprendre un peu ce que ça fait et bricoler le contenu.
Il y a aussi des trucs qui font tout très simplement comme https://xcrud.net que j'utilise pour mes admins mais c'est du PHP, donc plus du tout de Delphi.
Côté serveur, si on reste sur du Pascal&Delphi, il y a la base avec WebBroker. En plus évolué mais nécessitant une licence au déploiement : RAD Server et sa version Lite qui est un serveur web complet.
On trouve aussi plein de projets open source pour créer des serveurs web ou d'API en Delphi. Le plus populaire étant Delphi MVC Framework. https://github.com/danieleteti/delphimvcframework
Côté codes sources j'en ai des tonnes avec du WebBroker, du PHP, de l'Ajax ou du Delphi en client :
- https://github.com/DeveloppeurPascal...cing-RestauBar pour la partie client/serveur en Delphi et l'équivalent PHP du serveur WebBroker sur https://github.com/DeveloppeurPascal...PHP-API-Server
- sur https://github.com/DeveloppeurPascal...-Delphi-client j'ai un serveur WebBroker utilisé en proxy entre des clients Delphi et un service en ligne de traduction
- sur https://github.com/DeveloppeurPascal...JAX-JavaScript je propose du code HTML/JavaScript présentant l'utilisation d'Ajax en version simple ou avec framework pour générer du code HTML
- sur https://github.com/DeveloppeurPascal/Planning-API j'ai un serveur PHP simpliste, un système de synchronisation de mises à jour, un client Delphi utilisant cette API et un client JavaScript/HTML
Il y a d'autres exemples sur les présentations "Delphi Tour" que j'avais faites en 2018 avec Maxime Capellot (par exemple https://github.com/DeveloppeurPascal...larde-20180208)
Tout ça a fait l'objet de codage en live, il y a quelques explications sur les dépôts et les blogs, mais si besoin de plus faut pas hésiter à me le dire et je programmerai une session en mode "revue de code" + questions/réponses.
Juste un point à ne pas oublier quand on fait des trucs pour du web : en Delphi on a un exécutable et on doit donc prendre un serveur dédié sous Windows ou Linux (si on peut compiler pour Linux). Ca coûte cher. Faut des connaissances minimales en administration de serveur pour limiter l'impact d'attaques omniprésentes dès qu'on a un truc sur Internet. En entreprise ou chez soi (réseau local ou verrouillé), WebBroker ou Delphi MVC Framework c'est très bien.
Si on fait des trucs publics, mieux vaut se lancer sur des technologies plus en adéquation avec "le marché" (j'aime pas cette expression, mais j'préfère le dire).
PHP sur le serveur, c'est la majorité des hébergements quel qu'en soit le type (mutu, dédié, cloud). Au pire JavaScript sur NodeJS, mais faut trouver l'hébergeur (et OVH s'y est mis en explosant les tarifs).
Le langage PHP n'est pas très compliqué à apprendre et si c'est juste pour faire de l'interfaçage avec une base de données (serveur d'API donc) ça se copie/colle quand on a une bonne base sécurisée et quelques notions.
Pour la partie cliente c'est plus gonflant car il n'y a pas d'outil aussi pratique que Delphi/C++Builder/Lazarus pour dessiner des interfaces. Je regrette beaucoup l'abandon par Embarcadero de RAD4PHP devenu HTML5 Builder (dispo en téléchargement pour les détenteurs de licences payantes, mais plus mis à jour donc à éviter). Quoiqu'il en soit, HTML/CSS c'est simple à comprendre (avec les bonnes sources) et JavaScript c'est le bordel mais on peut arriver à programmer proprement si on ne se lance pas dans l'apprentissage par l'utilisation de la multitude de frameworks à la con.
Juste en complément "for your interest", effectivement je propose une initiation web sous forme de formation en deux jours et je donne aussi des cours de développement web à l'ESILV. J'ai pas mal d'exemples de code et d'exercices que j'ai développés pour "mes" futurs ingénieurs. J'ai entamé leur mise en forme "publique" et les basculerai en open source d'ici la fin de l'année scolaire. Ca se trouvera sur GitHub et mes blogs pour les explications.
En général je fais les démos sous Delphi et l'équivalent web pour les parties clients et serveurs histoire de pouvoir fournir des exemples de ce que je leur demande de faire, mais sans qu'ils ne puissent copier/coller les sources puisque c'est du compilé. Mon côté vicieux :ptdr:
(c'est aussi l'occasion de rappeler l'existence du Pascal et sa simplicité pour tout faire)
Suis aussi toujours en recherche de sujets pour reprendre les webinaires mensuels (qui sont devenus annuels ou remplacés par du codage et Q&R sur Twitch). Donc n'hésitez pas à me dire ce que vous voulez approfondir pour que je vois à qui je confie ça ou si je m'y colle.
Merci Patrick,
ça fait des tonnes de trucs à regarder !!
Pour un autodidacte comme moi c'est beaucoup plus difficile que du temps de Turbo Pascal :ptdr:
Mais je ne désespère pas ...
Merci
A+
Charly
Bonjour Serge,
pas de DataSnap a priori sous 10.4 CE. Mai j'ai réussi à afficher une page Web en local avec une application Serveur Web.
Petit problème, si je mets des images dans la page HTML, il les cherches dans http://localhost:8080
Comment je peux fournir les images à la page Web ?
A+
Charly
Tu peux faire une route http://localhost:8080/images?name=NomImage, une image n'est qu'une donnée comme une autre dans un format adéquat.
Delphi lit le fichier et renvoit le Stream en réponse.
Merci Shai,
mais je ne sais pas ce qu'est une route et je ne sais pas du tout comment faire ?
A+
Charly