Auteur: Nicolas Brachfogel

Nicolas Brachfogel
- Product Owner & Senior Developer - Nicolas Brachfogel a rejoint 4D en 2017 en tant que développeur senior (4D Server et networking) et en tant que Product Owner pour gérer la mise en production d'Apple Silicon. Il est chargé de rédiger les user stories et de les traduire en spécifications fonctionnelles, ainsi que de s'assurer que les implémentations des fonctionnalités répondent aux besoins des clients. Diplômé de l'Institut Supérieur d'Informatique Appliquée (INSIA), Nicolas a commencé sa carrière en tant que développeur de logiciels en 2001. Après plusieurs années de programmation en Java et C++, il s'est spécialisé dans le développement client-serveur pour des sociétés de jeux vidéo. En tant que développeur/architecte serveur, il a travaillé avec succès sur les architectures serveur de nombreux jeux (Dofus Arena, Drakerz, Trivial Pursuit Go !).
Produit blank

Impression non bloquante

Avec 4D v20 R4, nous avons considérablement amélioré la gestion des tâches d’impression au sein de 4D. 4D peut désormais exécuter plusieurs tâches d’impression en parallèle, ce qui augmente considérablement la réactivité de vos applications tout en facilitant la gestion des impressions simultanés.

Laissez-moi vous en dire plus !

Produit blank

Génération automatique des certificats SSL/TLS pour la communication client-serveur

Pour simplifier la sécurisation des communications client-serveur, à partir de 4D v20 R4, 4D Server génère ses propres certificats SSL/TLS au lieu de s’appuyer sur des certificats par défaut. Cette fonctionnalité apporte un avantage significatif pour les environnements de test et de production : vous bénéficierez de mesures de sécurité renforcées sans avoir à fournir vos propres certificats. Laissez-moi vous expliquer ce qui va changer.

Produit blank

ORDA : Attribution d’un chemin à un attribut blob ou image

Les commandes de base de données non-ORDA vous permettaient de placer des images et des blobs en dehors du fichier de données grâce à la commande SET EXTERNAL DATA PATH. Cette commande n’est pas adaptée à ORDA et c’est pourquoi nous avons décidé d’ajouter une fonctionnalité similaire dans la v20 R3 : La possibilité d’assigner à un attribut de type blob ou image un chemin sur le disque. Laissez-moi vous en dire plus à ce sujet.

Produit blank

Dépréciation des commandes PHP et suppression de l’interprète PHP intégré à 4D

PHP a joué un rôle crucial dans le développement web, et il a été introduit dans 4D v12 pour offrir des fonctionnalités qui n’étaient pas facilement disponibles dans le langage natif, telles que les fonctionnalités zip, hash ou LDAP. Au fil du temps, 4D a intégré un grand nombre de ces fonctions PHP dans ses fonctionnalités de base. Par conséquent, nous avons décidé de supprimer l’interpréteur PHP intégré dans 4D v20 R3 et de commencer le processus de dépréciation des commandes PHP dans la v21.

Bien que nous ne supprimions pas entièrement les commandes PHP de 4D, nous vous encourageons vivement à utiliser les system worker pour exécuter du code PHP à l’avenir.

Ce billet de blog vous guidera dans ce processus de transition, en montrant comment utiliser un interpréteur externe avec PHP Execute et en expliquant comment exécuter du code PHP de manière efficace avec un system worker.

Produit blank

Activer la couche QUIC à partir des paramètres de structure, d’utilisateur et de base de données

Dans la 4D v20 beta, nous étions ravis de vous montrer notre travail sur la nouvelle couche réseau QUIC. Comme la couche est encore en version bêta, nous l’avons désactivée pour la version finale de la LTS. La couche QUIC sera disponible dans les versions R, afin que vous puissiez suivre son développement et nous aider à l’améliorer.

Alors que 4D v20 ne permettait de changer de couche réseau que dans les applications interprétées et obligeait à un nouveau build pour les applications enginées, 4D v20 R2 permet de changer de couche dans les applications compilées/construites via les paramètres de structure, d’utilisateur et de base de données, afin de faciliter les tests même en production.

Produit blank

Déclarer les propriétés d’une classe

Le langage 4D est en constante amélioration. Pour la v20, nous vous apportons une nouvelle fonctionnalité qui facilitera l’utilisation de vos classes : les propriétés de classe déclarées. Déclarer les propriétés de vos classes améliorera grandement l’autocomplétion et vous donnera également des erreurs claires lors de la compilation. Vous voulez en savoir plus ? Laissez-moi vous montrer comment cela fonctionne !

Produit blank

Log des requêtes ORDA sur le serveur

Depuis sa sortie, la popularité d’ORDA ne cesse de croître et il est maintenant largement utilisé sur vos serveurs de production. Avec 4D v20, nous vous apportons 2 améliorations sur la façon dont les requêtes ORDA sont loggées côté serveur. La première est une amélioration du request log qui donnera désormais plus d’informations sur les requêtes ORDA. La seconde est l’ajout d’un log ORDA côté serveur similaire au log ORDA côté client. Permettez-moi de vous présenter ces nouvelles fonctionnalités.

Produit blank

Intégration automatique de multiples journaux

En tant que développeurs et administrateurs de bases de données, vous savez combien il est important de pouvoir récupérer rapidement des données corrompues. Les sauvegardes et les journaux vous aident dans cette tâche. Mais il arrive qu’une sauvegarde soit corrompue et que vous deviez revenir à une sauvegarde plus ancienne et intégrer plusieurs journaux consécutivement. Il se peut aussi que votre fichier journal prenne trop d’ampleur et que vous préfériez en créer régulièrement un nouveau pour éviter d’encombrer le disque dur de votre serveur. Ou encore, vous utilisez votre propre méthode de sauvegarde des données. Dans tous ces cas, vous devez intégrer plusieurs journaux, ce qui n’est possible que manuellement via le Centre de Sécurité et de Maintenance.

Avec 4D v20, vous pouvez intégrer automatiquement de multiples journaux au démarrage de votre base de données. Laissez-moi vous expliquer comment cela fonctionne.