Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Web & réseau Delphi Discussion :

[Delphi Rio] Quelle alternative à IntraWeb


Sujet :

Web & réseau Delphi

  1. #1
    Membre extrêmement actif
    [Delphi Rio] Quelle alternative à IntraWeb
    Bonjour à tous les Delphistes,

    J'ai une application VCL que je dois adapter à l'approche REST pour échanger des données avec une base de données fonctionnant sur un serveur Linux.

    J'avais pensé adapter l'application VCL pour en faire une application web affichable sur sur un navigateur web (la solution permettrait plus de flexibilité que de garder l'application VCL en modifiant uniquement les accès à la base de données via des requêtes REST)

    Dans un premier temps, Intraweb me semblait être un bon candidat: Je peux récupérer beaucoup de code de l'application originale!

    Problème:

    Outre le fait que Intraweb ne fait plus partie de l'installation standard des dernières versions de Delphi Rio (ce qui n'est pas bon signe!), Intraweb ne peut fonctionner que sur un serveur Microsoft. Pour un serveur Linux, il faut passer par WINE pour permettre une émulation de l'OS Microsoft.

    Et là je dis non! Cela sent trop l'usine à gaz!

    Est-ce que quelqu'un connait une alternative à Intraweb (info valable en 2020! Parce que le web foisonne de discussions obsolètes qui donnent un état des lieux qui n'a plus la moindre valeur actuelle) qui fonctionne sur un serveur Linux sans multiplier les couches de logiciels multiples et variés?

    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Bonjour,

    un bon candidat serait certainement le produit de TMS Web Core, pour en avoir vu une présentation faite par Bruno Fierens à Paris.
    Maintenant il faut le budget.

    Cela écrit pour la solution Web,mais une solution multi-tier (partie "serveur REST" sur Linux et programme VCL modifié avec REST) c'est pas mal non plus
    D'un autre côté, je tape dans une BDD Firebird sur un serveur Linux en mode client/serveur sans aucune difficulté donc, le choix est dur
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  3. #3
    Membre extrêmement actif
    Salut Sergio,

    Dans mon cas la version la plus simple, c'est très certainement l'application originale fonctionnant sur un PC windows en remplaçant simplement les accès à la BD par des requêtes REST (je dispose déjà sur le serveur la DB répondant aux requêtes REST).

    Mais il faut avouer que d'avoir une application fonctionnant via un navigateur web donnerait une sacré dose de flexibilité: Plus besoin d'avoir son PC sous la main avec le logiciel propriétaire installé dessus, tu prends ton smartphone, ta tablette et hop c'est parti!

  4. #4
    Membre émérite
    Citation Envoyé par Anselme45 Voir le message

    Mais il faut avouer que d'avoir une application fonctionnant via un navigateur web donnerait une sacré dose de flexibilité: Plus besoin d'avoir son PC sous la main avec le logiciel propriétaire installé dessus, tu prends ton smartphone, ta tablette et hop c'est parti!
    La philosophie d'une appli sur sur Smartphone ou Tablette est fondamentalement différente d'une appli Client Windows et d'autre part gérer une appli Serveur (Rest ou autre) peut être très lourde en ressources humaines. Dans l'entreprise ou je travaille le paramètrage d'appli comme JIRA est consommateur de ressource

  5. #5
    Membre expérimenté
    plusieurs cas possibles :

    - le logiciel Windows actuel doit être accessible en réseau par l'intermédiaire d'Internet
    => soit il est modifié avec du DataSnap (pour simplifier la migration en 3tiers)
    => soit par des API REST (ou autre) ce qui demandera un gros travail de réécriture
    => soit tu utilises des solutions de virtualisation comme par exemple Thinfinity ( https://www.cybelesoft.com/delphi-web/ )

    - le logiciel est en FMX, tu peux utiliser FMX Linux et des solutions de virtualisation de bureau sous Linux pour le proposer sur Internet (je ne me souviens plus de ce que je considère comme une bidouille pour le faire, mais c'est faisable)

    - tu décides de conserver le code métier en backoffice et de développer une application web indépendante
    => côté serveur :
    =====> tu peux utiliser WebBrocker pour faire ton gestionnaire d'API
    =====> tu peux utiliser DataSnap et le partage de bases de données comme des procédures/fonctions à distance (son driver fonctionne sur toutes les plateformes, y compris mobiles)
    =====> tu peux utiliser RAD Server (qui nécessite une licence de déploiement qui sont incluses selon la licence de Delphi/RADStudio ou achetable séparement)
    =====> tu peux utiliser la multitude de librairies open source ou payante pour faire ton serveur d'API REST (ou autres)
    => côté client :
    =====> TMS Web Core te permettra de développer sous Delphi une interface web qui se connectera en REST via AJAX à ton serveur.

    Pour du tout en un, il y a effectivement IntraWeb (dont la version 14 est toujours offerte aux clients Embarcadero mais directement téléchargeable chez Atozed pour en avoir la bonne version), pas de version Linux pour le moment, la version 17 étant en fin de développement. Linux suivra l'an prochain ou l'année suivante.
    Tu peux aussi partir sur UniGUI qui "pond" des sites ExtJS et fonctionne comme IntraWeb pour le développement : on fait tout sous Delphi est on compile le serveur qui génère les pages à la demande des navigateurs clients.

    Selon la complexité du logiciel, tu peux aussi tout faire en Delphi et servir tes pages à la main en utilisant un moteur d'affichage. WebBrocker en intègre un permettant de faire des opérations de base. Tu peux regarder le TPageProducer. Par contre, contrairement à IntraWeb / UniGUI, il ne gère pas de sessions. C'est donc au dévelop

  6. #6
    Membre expérimenté
    Et comme le dit Alain : ne te base pas sur ton logiciel Windows pour faire une application tablette / smartphone ou même un site web. L'ergonomie doit être impérativement repensée pour quelque chose de simple d'utilisation, sur des écrans de taille variable et avec des utilisations au doigt (puisque nombre de surfeurs sont sur tablette), mais tout dépend bien entendu de ta cible d'utilisateurs actuels et futurs.

  7. #7
    Rédacteur/Modérateur

    Bonjour
    Citation Envoyé par pprem Voir le message

    La version 17 étant en fin de développement. Linux suivra l'an prochain ou l'année suivante
    Intéressante cette perspective bien que trop tradive pour moi
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  8. #8
    Membre extrêmement actif
    Citation Envoyé par SergioMaster Voir le message
    Bonjour

    Intéressante cette perspective bien que trop tradive pour moi
    Mouais à part que le roadmap de l'éditeur annonce que... cette belle perspective est reportée à la version... 18!

    Cela va faire dans le tardif, tardif!

  9. #9
    Membre extrêmement actif
    Citation Envoyé par pprem Voir le message
    Et comme le dit Alain : ne te base pas sur ton logiciel Windows pour faire une application tablette / smartphone ou même un site web. L'ergonomie doit être impérativement repensée pour quelque chose de simple d'utilisation, sur des écrans de taille variable et avec des utilisations au doigt (puisque nombre de surfeurs sont sur tablette), mais tout dépend bien entendu de ta cible d'utilisateurs actuels et futurs.
    Tout a fait d'accord pour l'ergonomie! Quand je parle de reprise du code, je parle du code non-lié à l'aspect interface homme-machine.

  10. #10
    Membre extrêmement actif
    Merci à tous pour vos avis.

    Première conclusion que je peux tirer est qu'il n'y a pas une solution qui se détache clairement.

    Il va falloir évaluer les différentes approches en fonction du cas particulier et choisir la moins pire solution...

  11. #11
    Membre expérimenté
    Citation Envoyé par Anselme45 Voir le message
    Première conclusion que je peux tirer est qu'il n'y a pas une solution qui se détache clairement.

    Il va falloir évaluer les différentes approches en fonction du cas particulier et choisir la moins pire solution...
    c'est comme pour tout : bien définir le besoin et voir la meilleure solution du moment pour l'atteindre

  12. #12
    Expert éminent sénior
    Bonsoir,

    pour ma part j'ai arrêté de produire des applications web côté serveur, c'est trop pénible...la partie utilisateur est entièrement codée en Javascript,le code est chargé au démarrage et c'est lui qui gère la totalité de l'interface utilisateur, l'application serveur, qu'elle soit sous Delphi ou pas permet de télécharger le code JS d'une part, et de répondre à des requêtes RESTFull d'autre part. Cela permet d'avoir le meilleur du web pour l'interface utilisateur....ce qui n'est pas forcément mieux qu'un client léger Delphi, mais tant qu'à travailler dans un navigateur, autant se mettre à JS+DOM+CSS, quitte à avoir des équipes différentes entre UI et serveur.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  13. #13
    Nouveau Candidat au Club
    mORMot Web MVC
    Une alternative possible: savez-vous que notre mORMot a une partie web?

    Il permet de générer le Web côté serveur (comme php mais en Delphi), avec une vrai séparation MVC.
    Le Modèle c'est votre accès base de données en SQL, que vous accédez en Delphi.
    La Vue c'est un fichier Mustache, indépendant, qui génère le HTML. En utilisant un CSS séparé, vous pouvez demander à une agence Web de faire la mise en page.
    Le Controlleur, c'est une interface et sa classe Delphi qui l'implémente: une méthode par page.

    Les performances sont excellentes, et comme mORMot fonctionne très bien sous FPC, vous pouvez cross-compiler pour l'exécuter sous Linux.
    https://synopse.info/files/html/Syno....html#TITL_108

    Bien sûr, si vous voulez faire du REST, mORMot le permet aussi, en définissant les URI avec des interfaces.
    Comme ça vous pouvez avoir du REST et du Web en même temps.

  14. #14
    Membre du Club
    pour complèter le topic,

    sans les avoir essayé je sais qu'il existe pour la partie client web

    https://smartmobilestudio.com et https://www.elevatesoft.com/ Web Builder, qui sont parfois mentionnés.

    Ensuite pour l'exploiter il faut un serveur REST séparé comme le RADserver d'embarcadero
    https://www.embarcadero.com/fr/products/rad-server (qui est sensé fonctionner sous linux)
    ou autre.

    Il existe également http://www.unigui.com/ qui est sur le principe assez génial et fonctionne en full stack (client + serveur),
    mais développé tout comme https://www.atozed.com/intraweb/ par un génie solitaire, donc à l'évolution très lente.
    (De plus le support contourne les problèmes avec moultes "workaround" en javascript
    dont la compatibilité avec les version ultérieures sera forcément sujette a caution.)

    Enfin comme indiqué il y a TMS Web Core https://www.tmssoftware.com/site/tms...o.asp#features qui est lui aussi un client web.
    Je ne l'ai pas utilisé non plus mais je sais qu'avec TMS le support est excellent et ils ont une grosse équipe sur le projet donc l'évolution est rapide.
    Le soucis c'est peut être qu'il est architecturé pour utiliser leur serveur REST Xdata qui lui est conçu pour leur ORM Aurelius donc toute leur doc est basée là dessus.
    (Et effectivement tu peux faire sans Xdata, mais tous les exemples fournis y feront référence de facto. )
    Mais si tu as le budget supplémentaire pour Xdata, le produit m'a l'air excellent.

    ah et puis pour revenir a ta question sur unix, Xdata fonctionne sous unix
    https://www.tmssoftware.com/site/blog.asp?post=411

    et unigui a une roadmap unix http://www.unigui.com/explore/unigui-roadmap-2020
    mais roadmap = les promesses n'engagent que ceux qui les écoutent, comme dit.

  15. #15
    Membre expérimenté
    Citation Envoyé par wchris Voir le message

    et unigui a une roadmap unix http://www.unigui.com/explore/unigui-roadmap-2020
    mais roadmap = les promesses n'engagent que ceux qui les écoutent, comme dit.
    Puisque tu abordes le cas linux de UniGUI, je tiens à signaler que Atozed a aussi comme objectif de tout basculer en Windows/Linux dans une prochaine version. La v17 arrive en fin de développement et tests beta, elle devrait pouvoir sortir prochainement et l'étape suivante c'est Linux (une fois le tout stable, la documentation à jour faite et selon la demande).

###raw>template_hook.ano_emploi###