Développement du code serveur dans les applications du projet

Traduit automatiquement de Deepl

Le développement et le débogage du code serveur dans les applications de projet sont devenus plus faciles que jamais dans 4D v18 R4. Sans plus attendre, voyons comment procéder.

Avant d’aller plus loin, nous sommes conscients qu’il existe de nombreux scénarios de développement client/serveur différents, c’est pourquoi nous préparons un prochain article de blog pour vous montrer comment gérer le développement d’applications de projet au sein d’une équipe. En attendant, voyons comment développer, affiner et déboguer le code serveur.

Ce nouveau comportement est très utile pour développer des procédures stockées et des méthodes exécutées sur des serveurs (par exemple, des méthodes et des déclencheurs de serveur Web, ou des commandes renvoyant des résultats spécifiques).

Rappel sur le comportement général Client/Serveur

Vous avez certainement remarqué que vous ne pouvez pas modifier le code ou les formulaires du côté client lorsque vous développez des applications de projet en mode client/serveur. La raison en est que lors de la connexion au serveur, le client télécharge un seul fichier .4DZ contenant tous les fichiers du projet (c’est-à-dire un instantané du code du serveur au moment de la connexion).

Le fichier .4DZ étant compressé, il présente de nombreux avantages : son transfert de 4D Server à 4D Remote est plus efficace (il utilise moins de bande passante) et l’intégrité du code est préservée (pas de désynchronisation entre les appels de méthode et les nouveaux paramètres de méthode, par exemple).

Par conséquent, les fichiers du projet ne peuvent pas être modifiés du côté client.

Une NOUVELLE façon de développer et déboguer le code serveur

Pour gagner du temps et éviter de devoir redémarrer votre application serveur après chaque modification de code (en mode standalone), nous vous offrons la possibilité d’affiner et de déboguer votre code côté serveur.

Désormais, lorsque vous connectez un 4D Remote qui se trouve sur le même ordinateur que le 4D Server, le 4D distant est capable de modifier les fichiers du projet (code, formulaires, ressources, etc.).

Comment cela fonctionne-t-il ?

Lorsqu’un client 4D Developer se connecte à un 4D Server sur le même ordinateur, le fichier .4DZ n’est pas transféré du serveur au client. Celui-ci gère les fichiers du projet (méthodes, formulaires, ressources, etc.) comme s’il s’agissait d’un client 4D mono-utilisateur. Les fichiers du projet sont partagés par 4D Server et 4D Remote.

Ainsi, vous pouvez modifier votre code et le tester à la volée.

Si vous souhaitez que le serveur recharge les fichiers modifiés, il suffit de passer de l’environnement de développement au mode application, de placer le serveur 4D au premier plan ou de sélectionner l’élément de menu « Fichier / Enregistrer tout » dans la télécommande 4D (ou d’utiliser la nouvelle commande RELOAD PROJECT ).

Rappelez-vous que l’exécution d’une méthode sur le côté client exécute automatiquement une action « Save all » , ce qui a pour effet de recharger les fichiers modifiés sur le côté serveur.

Si vous avez des questions sur cette fonctionnalité, n’hésitez pas à participer à la discussion sur le forum 4D.

Avatar
- Product Owner -Damien Fuzeau a rejoint l'équipe 4D Product en février 2019. En tant que Product Owner, il est en charge de la rédaction des user stories, puis de leur traduction en spécifications fonctionnelles. Son travail consiste également à s'assurer que les implémentations de fonctionnalités livrées répondent aux besoins des clients.Damien est diplômé de l'Université de Nantes en génie logiciel. Il a passé plus de 23 ans dans son ancienne entreprise, d'abord en tant que développeur (découverte de 4D en 1997), puis en tant que responsable de l'ingénierie et architecte logiciel. Cette société est un partenaire OEM de 4D et a déployé des logiciels d'entreprise basés sur 4D pour des milliers d'utilisateurs, sur des centaines de serveurs. Damien est donc habitué au développement et au déploiement 4D dans un contexte multi-langues.