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

Rafraîchissement automatique des licences de build OEM

4D actualise automatiquement les licences de développement lorsqu’elles atteignent leur date d’expiration. Cependant, les licences de build OEM (4D Server OEM et OEM XML Keys) nécessitent toujours une intervention humaine pour être mises à jour. Cela causait des problèmes sur les chaînes de construction automatisées et, en général, une perte de temps.

4D 20 R9 étend le rafraîchissement automatique des licences aux licences de build OEM. Cet article décrit les différents scénarios dans lesquels cela se produira.

Produit blank

Nouvelle classe pour gérer les connexions TCP entrantes

Dans 4D 20 R8, nous avons introduit la classe TCPConnection, qui vous permet d’initier des connexions TCP vers des serveurs distants. Avec 4D v20 R9, nous sommes ravis de vous présenter la classe TCPListener, la clé pour gérer les connexions TCP entrantes et construire un serveur TCP directement dans 4D.

Avec ces deux classes – TCPConnection et TCPListener – vous avez maintenant un contrôle total sur la communication TCP, à la fois côté client et côté serveur.

Voyons comment les utiliser ensemble.

Produit blank

Build d’applications d’évaluation

Dans les versions précédentes de 4D, les développeurs pouvaient profiter de versions d’évaluation à des fins de développement, mais fournir aux utilisateurs finaux des versions d’évaluation des applications créées – qu’elles soient standalone ou client/serveur – relevait du défi, voire de l’impossible.

À partir de 4D 20.7 et 20 R8, vous pouvez désormais créer des versions d’évaluation de vos applications. Lorsqu’un utilisateur exécute une application d’évaluation pour la première fois sur une nouvelle machine, celle-ci contactera automatiquement un service 4D pour obtenir une licence d’évaluation de 14 jours, sans aucune action manuelle de la part de l’utilisateur.

Cet article de blog vous guidera dans le processus de création d’une version d’évaluation de votre application à des fins de démonstration.

Produit blank

Nouvelle classe pour gérer des connexions TCP

Avec la sortie de 4D 20 R8, une fonctionnalité qui change la donne est arrivée : la classe TCPConnection. Cette classe moderne tire parti de la syntaxe orientée objet et prend en charge la gestion des connexions de manière asynchrone, offrant ainsi une alternative nouvelle et puissante aux 4D Internet Commands. En utilisant TCPConnection, vous pouvez vous connecter à pratiquement tout, qu’il s’agisse de serveurs, d’imprimantes, de caisses enregistreuses ou d’appareils industriels, ce qui en fait un outil polyvalent pour répondre à des besoins uniques.

Dans cette version, la fonctionnalité client est disponible, ce qui vous permet de vous connecter à des serveurs externes et d’échanger des données de façon transparente.

Produit blank

Notarisation sur macOS : modifications de la structure des composants

Le processus de notarisation de macOS continue d’évoluer. Malheureusement, la structure interne des composants 4D conçus avec 4D v11 – destinée à permettre une compatibilité multiplateforme – ne répond plus aux exigences introduites par Apple pour exécuter une application sur Mac Silicon, ce qui rend la notarisation des composants de plus en plus difficile.

Pour simplifier le processus de déploiement, nous avons mis à jour la structure des composants à partir de 4D 20 R8. Cette nouvelle structure de dossiers rend la notarisation et le déploiement aussi simples que le déploiement d’une application. Cependant, il y a une mise en garde importante : la structure mise à jour n’est pas compatible avec les anciennes versions de 4D (4D 20 R7 et antérieures), tandis que les anciens composants resteront compatibles avec les nouvelles versions de 4D.

Le composant Build4D a également été mis à jour pour refléter la nouvelle structure. Lorsque vous créez des composants, soyez prudent et assurez-vous que vous utilisez la bonne version de Build4D.

Rappel important: Les composants construits avec 4D 20 R7 ou une version antérieure peuvent rencontrer des erreurs lors de la notarisation. La solution recommandée est de mettre à jour vers 4D 20 R8.

Produit blank

Cryptage, authentification et validation d’autorité de certification

Dans les dernières versions, la sécurité a été fortement étendue dans 4D, en particulier dans le domaine des certificats. De nouvelles fonctionnalités ont été ajoutées comme les certificats générés automatiquement pour la communication client-serveur, la prise en charge des certificats ECDSA et, avec 4D 20 R7, la validation de l’autorité de certification pour la communication client-serveur des applications enginées. Certains clients exigent le niveau de sécurité le plus élevé, ce qui souligne l’importance de ces fonctionnalités.

Cependant, la sécurité peut être complexe et c’est pourquoi il est utile d’expliquer le fonctionnement d’une connexion TLS/SSL et le rôle des certificats. C’est pourquoi, avant d’aborder la nouvelles fonctionnalité, commençons par décomposer les concepts de base de la sécurité et leurs interactions.

Produit blank

Présentation des singletons de session

Les singletons furent l’une des features les plus remarquées de 4D 20 R5. Jusqu’alors, les développeurs pouvaient exploiter deux types de singletons :

  • le singleton de processus, qui est unique pour chaque processus mais différent d’un processus à l’autre,
  • et le singleton partagé, qui est unique sur l’ensemble de l’application.

Avec 4D 20 R7, nous lançons un nouveau type de singleton : le singleton de session !

Produit blank

La couche réseau QUIC est prête pour la production !

Avec la version bêta de 4D 20, nous vous avons présenté notre nouvelle couche réseau : La couche réseau QUIC.

À l’époque, elle était encore en cours de développement et donc retirée de la version officielle. Aujourd’hui, nous sommes ravis d’annoncer que la couche réseau QUIC est sortie de la version bêta et qu’elle est officiellement prête pour la production !

Après des tests de charge rigoureux et de précieux commentaires de la part des premiers utilisateurs, la stabilité et les performances de QUIC ont été validées, surpassant même ServerNet dans des domaines clés. Maintenant que QUIC a atteint le niveau de fonctionnalités avec ServerNet dans 4D 20 R5, c’est le moment idéal pour envisager de passer à QUIC.

Mais d’abord, laissez-moi vous en dire plus sur cette excellente nouvelle.

Produit blank

Gestion des singletons en REST et Qodly

Avec 4D 20 R5, nous avons lancé les singletons. Avec 4D 20 R6, nous vous permettons désormais d’appeler directement les fonctions exposées de vos singletons partagés par le biais d’appels REST. De même, vous pouvez utiliser les fonctions exposées de vos singletons partagés dans des événements lors de la conception de vos pages Qodly. Permettez-moi d’approfondir ces nouvelles fonctionnalités.

Produit blank

Gestion des requêtes HTTP grâce aux agents HTTP

Dans 4D 19 R6, nous avons introduit les classes HTTP pour moderniser la syntaxe et améliorer les fonctionnalités de nos commandes du client HTTP. S’appuyant sur cette base, 4D 20 R6 apporte une nouvelle fonctionnalité puissante : les agents HTTP. Ces agents permettent aux développeurs de personnaliser et d’optimiser leurs connexions aux serveurs HTTP en gérant la persistance et la réutilisation des connexions pour les requêtes HTTP.