Release Notes
4D 20 R5
Lisez Les nouveautés de 4D 20 R5, l'article de blog qui liste toutes les nouvelles fonctionnalités et améliorations de 4D 20 R5.
Points forts
- Nouveau Gestionnaire de composants permettant de contrôler les composants à travers un fichier
dependencies.json
. - Prise en charge des structures de gestion d'erreur
Try...Catch...End try
. - La couche réseau QUIC prend désormais en charge le broadcasting, SSO et IPv6.
- Prise en charge des restricted entity selections.
- Prise en charge des classes partagées et des classes singleton. Nouvelles propriétés de classe :
isShared
,isSingleton
,me
. - Prise en charge de l'initialisation d'une propriété de classe dans sa ligne de déclaration.
- Nouveau mode de connexion force login pour les requêtes REST avec une prise en charge spécifique dans Qodly Studio for 4D.
- Nouveau paramètre REST $format.
- L'objet
Session
est maintenant disponible pour les sessions utilisateur à distance et les procédures stockées. - Commandes du langage 4D : Liste des nouveautés sur doc.4d.com.
- 4D Write Pro : Liste des nouveautés sur doc.4d.com.
- Liste des bugs corrigés : liste de tous les bugs qui ont été corrigés dans 4D 20 R5.
Changements de comportement
- Les plug-ins 4D Internet Commands et 4D for OCI ne sont plus inclus dans les installateurs 4D. Pour obtenir ces plug-ins, vous devez vous connecter au portail de téléchargement des produits 4D.
- Les modifications apportées à l'éditeur de structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont maintenant sauvegardés dans un fichier séparé nommé
catalog_editor.json
stocké dans le dossierSources
.
4D 20 R4
Lisez Les nouveautés de 4D 20 R4, l'article de blog qui liste toutes les nouvelles fonctionnalités et améliorations de 4D 20 R4.
Points forts
- Prise en charge du format de cryptage
ECDSA
pour les certificats TLS. - Les connexions TLS client/serveur et serveur SQL sont désormais configurées dynamiquement (aucun fichier de certificat n'est requis).
- Format HTML direct pour les exports de définition de structure.
- Nouveau Code Live Checker qui améliore le contrôle du code pendant le typage, la vérification de la syntaxe et les étapes de compilation afin d'éviter les erreurs d'exécution.
- Les paramètres de méthode déclarés dans les prototypes
#DECLARE
ne sont [plus nécessaires dans les méthodes "Compiler_"(../Concepts/parameters.md#compilation). - Prise en charge des formats de date et d'heure personnalisés
- Nouveau mot-clé
Try(expression)
pour gérer les cas d'erreur simples. - Nouvelle commande
HTTP Parse message
. - Nouvelle option de compatibilité Impression non bloquante.
- Nouveau mode édition dans le Data Explorer.
- Commandes du langage 4D : page What's new sur doc.4d.com.
- 4D Write Pro : Liste des nouveautés sur doc.4d.com.
- Liste des bugs corrigés : liste de tous les bugs qui ont été corrigés dans 4D 20 R4.
Changements de comportement
- L'utilisation d'une ancienne syntaxe pour la déclaration des paramètres (par exemple
C_TEXT($1)
ouvar $1 : Text
) est maintenant dépréciée et génère des warnings lors du typage du code, de la vérification syntaxique et de la compilation. - La cohérence des sélections est désormais préservée lorsque certains enregistrements sont supprimés puis d'autres créés (voir ce billet de blog).
- Dans la mise à jour de la bibliothèque OpenSSL, le niveau de sécurité SSL/TLS par défaut a été modifié de 1 à 2. Les clés RSA, DSA et DH de 1024 bits et plus et de moins de 2048 bits ainsi que les clés ECC de 160 bits et plus et de moins de 224 bits ne sont plus autorisées. Par défaut, la compression TLS était déjà désactivée dans les versions précédentes d'OpenSSL. Au niveau de sécurité 2, il ne peut pas être activé.
- Afin de permettre la vérification du mot de passe lorsque l'annuaire des utilisateurs 4D utilise l'algorithme bcrypt, la valeur "password" dans le paramètre connectionInfo de la commande
Open datastore
est maintenant envoyée en clair par défaut. Assurez-vous que votre méthode base "On REST authentication" peut gérer les mots de passe en clair (le troisième paramètre est alors False) et queOpen datastore
chiffre votre connexion en passant l'option "tls" à True dans connectionInfo. Dans certains cas spécifiques, une nouvelle option "passwordAlgorithm" peut également être utilisée pour la compatibilité (voir la commandeOpen datastore
).
4D 20 R3
Read What’s new in 4D 20 R3, the blog post that lists all new features and enhancements in 4D 20 R3.
Points forts
- Nouvelle fonction
collection.multiSort
. - Prise en charge du paramètre context dans
Formula from string
. - Prise en charge de la propriété
headers
dans le paramètre connectionHandler de 4D.WebSocket.new. - Marqueur de modification global pour faciliter la mise en œuvre de modules de synchronisation des données. Nouvelles fonctions :
ds.getGlobalStamp
etds.setGlobalStamp
. - L'assignation de références de fichiers à des attributs picture/blob est prise en charge dans ORDA.
- Prise en charge de [l'initialisation de la valeur et du type de données de la variable dans la ligne de déclaration](../Concepts/variables/#initialisation des variables dans la ligne de déclaration).
- Les paramètres du fichier journal sont désormais sauvegardés avec le fichier de donn ées courant
- Nouvelle syntaxe pour déclarer des paramètres variadiques
- 4D View Pro : Prise en charge de l'importation et de l'exportation des documents 4D View Pro au format Blob.
- Commandes du langage 4D : page What's new sur doc.4d.com.
- 4D Write Pro : Liste des nouveautés sur doc.4d.com.
- Fixed bug list: list of all bugs that have been fixed in 4D 20 R3.
Changements de comportement
- Certaines erreurs ne pouvaient être interceptées par votre méthode de gestion des erreurs qu'en mode interprété. Une correction a été apportée, de sorte que les erreurs suivantes seront désormais également détectées en mode compilé : Indice hors de l'intervalle, Type incompatible, et Déréférencement d'un pointeur Null. Cependant, pour de telles erreurs sur les processeurs Intel, la procédure est toujours interrompue comme auparavant, alors que sur les processeurs Apple Silicon, la procédure n'est interrompue que si vous appelez la commande
ABORT
. - 4D n'inclut plus d'interpréteur PHP interne. Vous devez configurer et exécuter votre propre interpréteur PHP pour utiliser les commandes PHP.
4D 20 R2
Lisez Les nouveautés de 4D 20 R2, l'article de blog qui liste toutes les nouvelles fonctionnalités et améliorations de 4D 20 R2.
Si vos applications 4D utilisent des connexions TLS, il est recommandé de mettre à jour 4D en release 20 R2 HF1 build 100440 ou plus. Pour plus d'informations, consultez ce Bulletin de sécurité.
Points forts
- Nouvelle classe WebSocket pour créer et gérer les connexions WebSocket clientes depuis 4D.
- Nouvelle option d'interface pour la couche réseau QUIC.
- 4D View Pro : Prise en charge du format de fichier .sjs pour l'importation et l'exportation de documents.
- Commandes du langage 4D : page What's new sur doc.4d.com.
- 4D Write Pro : Liste des nouveautés sur doc.4d.com.
- 4D Write Pro Interface : Nouveau Table Wizard.
- Liste des bugs corrigés : liste de tous les bugs qui ont été corrigés dans 4D 20 R2.
Changements de comportement
- Attention : La valeur de départ
offset
des objets 4D.FileHandle était incorrectement fixée à 1 au lieu de 0. Une correction a été apportée dans 4D à partir des versions 20.1 HF1 et 20 R2 et la valeur est maintenant 0.
4D 20.x
Lisez Les nouveautés de 4D 20, l'article de blog qui liste toutes les nouvelles fonctionnalités et améliorations de 4D 20.
Pour des raisons internes, la version des clients distants se connectant à 4D Server 20.2 et suivantes doit être au moins 4D 20.2.
Si vos applications 4D utilisent des connexions TLS, il est recommandé de mettre à jour 4D en release 20.2 LTS build 100956 ou plus. Pour plus d'informations, consultez ce Bulletin de sécurité.
Avertissement concernant la reconstruction de l'index
4D 20 inclut une mise à jour de la bibliothèque ICU (voir ci-dessous) qui forcera une reconstruction automatique des index de type alpha, texte et objet. En fonction de la taille du fichier de données, cette opération peut prendre un certain temps et nécessiter une planification.
4D 20.1 comprend également une mise à jour de la bibliothèque ICU, ce qui a les conséquences suivantes :
- Elle forcera une reconstruction automatique des index de type alpha, texte et objet.
- Pour des raisons de cohérence des tris, il est nécessaire que les clients distants 4D et le serveur 4D utilisent la même version : seuls les clients distants 4D 20.1 peuvent se connecter au serveur 4D 20.1 et vice versa.
Points forts
- 4D 20.2 est certifié sur macOS Sonoma (macOS 14).
- (4D 20.1) Nouvelle propriété
plugins
dans le paramètre options de la commande [Compile project
] (https://doc.4d.com/4dv20/help/command/en/page1760.html). - 4D Server intègre automatiquement plusieurs journaux : Restauration automatique.
- IMAP Transporter Class :
.getBoxInfo()
renvoie id,.selectBox()
renvoie id, flags et permanentFlags,.addFlags()
et.removeFlags()
prennent en charge les mots-clés personnalisés. - Nouvelles classes WebSocketServer et WebSocketConnection pour créer et gérer des connexions WebSocket depuis 4D.
- Support du mot-clé
property
dans les définitions de classes utilisateur. - Nouvelles fonctions pour verrouiller/déverrouiller le datastore :
.flushAndLock()
,.locked()
,.unlock()
. - Nouvelle fonction
.at()
dans la classe Entity selection. - Nouvelles fonctions dans la classe Collection :
.at()
,.first()
,.flat()
,.flatMap()
,.includes()
,.last()
,.reduceRight()
. - Editeur de code : amélioration des fonctionnalités de recherche et de remplacement.
- Nouvel élément de langage "propriété" cherchable dans la boîte de dialogue Chercher dans le développement....
- Pour simplifier le code, certains opérateurs de comparaison peuvent désormais être utilisés avec des valeurs Undefined sans générer d'erreurs.
- Prise en charge du paramètre headerOnly dans
POP3Transporter.getMail()
. - Prise en charge de l'option
count values
dans les fonctionsentitySelection.distinct()
etcollection.distinct()
. - Nouvelle fonction
entitySelection.distinctPaths()
. - Les logs des requêtes ORDA sont maintenant disponibles sur le serveur, nouveau paramètre pour la fonction
.startRequestLog()
. - Nouveaux outils pour l'exécution de code dans le CLI : tool4d et 4D Server en mode utility.
- Explorateur de données : nouveau bouton et affichage dans une fenêtre 4D.
- Nouvelles propriétés pour les boutons, les cases à cocher et les boutons radio : Image hugs title et Horizontal Alignment.
- Prise en charge de
WinIcon
dans la fonctionfile.setAppInfo()
. - Nouvelle option
validateTLSCertificate
pour4D.HTTPRequest.new()
permettant de contrôler la validation automatique des certificats. - Commandes du langage 4D : page What's new sur doc.4d.com.
- 4D Write Pro : Liste des nouveautés sur doc.4d.com.
- Listes des bugs corrigés : 4D 20 - 4D 20.1 - 4D 20.2 - 4D 20.3 - 4D 20.4.
Changements de comportement
- A compter de 4D 20.3, afin de permettre la vérification du mot de passe lorsque l'annuaire des utilisateurs 4D utilise l'algorithme bcrypt, la valeur "password" dans le paramètre connectionInfo de la commande
Open datastore
est maintenant envoyée en clair par défaut. Assurez-vous que votre méthode base "On REST authentication" peut gérer les mots de passe en clair (le troisième paramètre est alors False) et queOpen datastore
chiffre votre connexion en passant l'option "tls" à True dans connectionInfo. Dans certains cas spécifiques, une nouvelle option "passwordAlgorithm" peut également être utilisée pour la compatibilité (voir la commandeOpen datastore
). - As of 20.2, 4D 20 LTS is no longer compatible with Windows Server 2012 R2.
- Attention : La valeur de départ
offset
des objets 4D.FileHandle était incorrectement fixée à 1 au lieu de 0. Une correction a été apportée dans 4D à partir des versions 20.1 HF1 et 20 R2 et la valeur est maintenant 0. - Pour la conformité RFC de HTTP, la propriété
HTTPRequestClass.response.headers
retourne maintenant tous les noms d'en-têtes en minuscules. Si vous voulez que votre code continue à fonctionner comme avant, utilisez la nouvelle propriétéHTTPRequestClass.response.rawHeaders
. - Les certificats TLS sont désormais automatiquement validés par 4D lors de l'envoi de requêtes HTTP avec
4D.HTTPRequest.new()
, et rejetés avec une erreur s'ils sont invalides. Une nouvelle propriété option vous permet de contrôler cette validation. - TLS v1.0 et TLS v1.1 sont obsolètes, ils ne sont plus supportés comme
Min TLS version
sur 4D Server. La version 1.3 est maintenant sélectionnée par défaut et est automatiquement utilisée si les constantes_o_TLSv1_0
ou_o_TLSv1_1
sont définies avecSET DATABASE PARAMETER
. - Par souci de cohérence, tous les boutons, cases à cocher et boutons radio sont désormais rendus avec un type "3D" à l'exécution : respectivement
Object type 3D button
,Object type 3D checkbox
, etObject type 3D radio button
sont retournés parOBJECT Get type
pour ces objets. - Depuis 4D 20, 4D for Mobile n'est plus installé par défaut dans l'environnement 4D. Pour bénéficier des fonctionnalités de développement de 4D for Mobile dans 4D, vous devez installer le composant 4D Mobile App dans le dossier "Components" de vos projets. Si un projet converti utilise des fonctionnalités du composant 4D Mobile App Server, veillez à l'installer également dans le dossier "Components" du projet.
4D 19 R8
Lisez Les nouveautés de 4D 19 R8, l'article de blog qui liste toutes les nouvelles fonctionnalités et améliorations de 4D 19 R8.
Points forts
- Des méthodes de gestion des erreurs peuvent être installées pour les contextes d'exécution globaux et les composants.
- Les listboxes avec des sources de données entity selection ou collections prennent désormais en charge la propriété de colonne Automatic Row Height.
- ORDA : Support du fichier roles.json pour définir les privilèges assignés à la session avec
setPrivileges()
. - Prise en charge du mode SDI en mode application test sous Windows.
- 4D View Pro :
- prise en charge des thèmes dans les tables : nouvelles commandes VP SET TABLE THEME et VP Get table theme , prise en charge des options de thème dans [VP CREATE TABLE](../
- nouvelle commande VP Get table dirty rows
- Commandes du langage 4D : page What's new sur doc.4d.com.
- 4D Write Pro : Liste des nouveautés sur doc.4d.com.
- Liste des bugs corrigés : liste de tous les bugs qui ont été corrigés dans 4D 19 R8.
Changements de comportement
- Pour la conformité RFC de HTTP, la propriété
HTTPRequestClass.response.headers
retourne maintenant tous les noms d'en-têtes en minuscules. Si vous voulez que votre code continue à fonctionner comme avant, utilisez la nouvelle propriétéHTTPRequestClass.response.rawHeaders
. - Lorsqu'une action standard est assignée à un bouton bevel avec menu contextuel lié, l'action standard n'est plus générée si une option de menu contextuel est sélectionnée.
- Dans les zones Web utilisant blink (CEF), les dialogues affichés à partir de scripts externes sont désormais bloquants s'ils ne sont pas appelés à partir d'une fonction JS
setTimeout()
. Cela est dû aux mises à jour actuelles de CEF, dans lesquelles les dialogues affichés par des fonctions telles quealert()
ouprint()
ne sont plus gérés par le système d'exploitation mais par la zone Web. VoirWA Evaluate JavaScript
et [WA EXECUTE JAVASCRIPT
] (https://doc.4d.com/4dv19/help/command/en/page1043.html).
4D 19 R7
Lisez Les nouveautés de 4D 19 R7, l'article de blog qui liste toutes les nouvelles fonctionnalités et améliorations de 4D 19 R7.
Points forts
- Les données liées et les attributs calculés/alias peuvent être affichés dans l'Explorateur de données.
- Nouvelle classe FileHandle et nouvelle fonction
.open()
dans la classeFile
. - Classe Entity selection :
.add()
prend en charge un paramètre entitySelection,.minus()
prend en charge un paramètre keepOrder. - Prise en charge des options automaticRedirections et decodeData dans
4D.HTTPRequest.new()
. - Nouveau fichier journal 4DHTTPClientLog.txt.
- 4D View Pro: nouvelles commands de table VP Find table, VP Get table column attributes, VP Get table column index, VP Get tables, VP INSERT TABLE COLUMNS, VP INSERT TABLE ROWS, VP REMOVE TABLE COLUMNS, VP REMOVE TABLE ROWS, VP RESIZE TABLE, VP SET TABLE COLUMN ATTRIBUTES.
- Les espaces de noms des composants sont maintenant affichés dans l'explorateur.
- Les objets de formulaire zone de texte et de saisie prennent désormais en charge la propriété de rayon d'angle.
- Commandes du langage 4D : page What's new sur doc.4d.com.
- 4D Write Pro : Liste des nouveautés sur doc.4d.com.
- Liste des bugs corrigés : liste de tous les bugs qui ont été corrigés dans 4D 19 R7.
Changements de comportement
- Pour des raisons de cohérence avec les interfaces standard (par exemple, les explorateurs de fichiers des OS), les règles des list box pour la sélection des lignes/le glisser-déposer ont été modifiées. Une sélection continue ou discontinue de lignes peut être glissée en cliquant simplement sur une ligne sélectionnée et en la déplaçant ; la touche Alt n'est plus nécessaire (mais peut toujours être utilisée comme dans les versions précédentes). Lorsque la touche Maj ou Ctrl/Commande est enfoncée, un clic de souris est pris en compte lorsque le clic est en bas. Pour plus d'informations sur le glisser-déposer dans les list box, vous pouvez consulter cet article de blog et télécharger ce projet HDI 4D.
- La numérotation interne de 4D a été modifiée à partir de 4D 19 R7 :
- les releases jusqu'à 4D 19 R6 (incluses) sont numérotées 282xxx,
- les releases à partir de 4D 19 R7 seront numérotées 100xxx.
Notez qu'une version spécifique de 4D est toujours identifiée de manière unique par un nom de branche et un numéro de build. Le numéro de build augmente par ordre chronologique.
- La possibilité d'utiliser le protocole REST de Wakanda/4D Mobile pour appeler une méthode de projet a été supprimée. Vous pouvez utiliser les fonctions de classe de data model ORDA ou les urls /4DACTION à la place.
4D 19 R6
- Nouvelle classe HTTPRequest.
- Les fonctions de collection qui peuvent appeler du code supportent maintenant les objets function comme paramètre formule :
.every()
,.filter()
,.find()
,.findIndex()
,.map()
,.orderByMethod()
,.reduce()
,.some()
,.sort()
- Les cellules de listbox prennent en charge le padding horizontal et vertical.
- 4D View Pro : nouvelles commandes VP CREATE TABLE et VP REMOVE TABLE pour gérer les tableaux dans les feuilles.
- Possibilité de voir les attributs liés, calculés et alias dans le Web Data Explorer.
- Pour nous aider à améliorer nos produits, nous collectons désormais automatiquement des données concernant les statistiques d'utilisation des applications 4D Server en cours d'exécution. Cela n'aura aucun impact sur les performances. Voir la nouvelle page expliquant pourquoi et comment 4D collecte des données.
- Composants compilés pour Silicon : Sur les plateformes macOS Silicon (Apple ARM CPUs), les composants doivent être recompilés avec 4D 19 R6 ou plus pour être utilisés avec cette version.
4D 19 R5
- Le fichier directory.json du projet peut désormais être intégré dans le serveur au moment du build, ce qui vous permet de déployer une application client/serveur avec une configuration de sécurité d'utilisateurs et groupes de base.
- Vous pouvez maintenant désélectionner les modules inutiles dans vos applications construites.
- La bibliothèque MeCab est incluse par défaut dans toutes les applications 4D sur macOS. Dans les versions précédentes, cette bibliothèque, spécialement conçue pour gérer le texte japonais, n'était disponible que dans la version japonaise de 4D sur macOS. Si vous n'avez pas besoin de cette bibliothèque dans vos applications finales, vous pouvez maintenant la désélectionner.
- Optimisation client/serveur: De nouvelles fonctions de classe permettent de gérer le cache ORDA et le contenu d'un contexte d'optimisation. Voir Preconfiguring contexts et ORDA Cache pour plus d'informations.
Ces fonctions sont destinées aux développeurs qui ont besoin de personnaliser les fonctions par défaut d'ORDA pour des configurations spécifiques. Dans la plupart des cas, vous n'aurez pas besoin de les utiliser.
- Classe DataClass : La nouvelle fonction .getCount() retourne le nombre d'entités dans une dataclass.
- Le fichier 4DDiagnosticLog.txt n'enregistre par défaut que des informations de haut niveau (niveau INFO). Vous pouvez maintenant sélectionner le niveau d'information à enregistrer (par exemple les informations de niveau DEBUG) en utilisant le sélecteur
Diagnostic log level
de la commandeSET DATABASE PARAMETER
ou le fichier de configuration du journal. - L'appel à
Use()
sur un objet non partagé ou une collection non partagée ne fait rien (il ne génère plus d'erreur). Ainsi, il est désormais inutile de tester si l'objet ou la collection passé(e) à Use() est effectivement partagé(e). - Pour plus de clarté, deux commandes SQL ont été préfixées :
GET DATA SOURCE LIST
a été renommée enSQL GET DATA SOURCE LIST
,Get current data source
a été renommée enSQL Get current data source
. - 4D View Pro:
- Les nouvelles commandes VP SET DATA CONTEXT, VP Get data context, VP SET BINDING PATH, VP Get binding path vous permettent de créer des contextes de données et de lier leur contenu aux cellules de feuille.
- VP EXPORT DOCUMENT et VP Export to object acceptent désormais la nouvelle option
includeBindingSource
qui exporte le contenu d'un contexte de données en tant que valeu - (Windows uniquement) Les zones de 4D View Pro utilisent désormais une nouvelle fenêtre de paramètres d'impression.
- Web areas:
- Nouveau moteur de rendu système Windows : Les zones Web utilisant le moteur de rendu du système Windows sont désormais basées sur Microsoft Edge WebView2. Cela a un impact sur les caractéristiques suivantes :
- Les commandes
WA Create URL history menu
etWA GET URL HISTORY
ne renvoient que l'URL en cours.
- La variable Progression n'est plus mise à jour.
- Les fonctions de glisser-déposer sont gérées par une API Windows qualifiée d'"expérimentale" par Microsoft. Par conséquent, les zones web peuvent ne pas fonctionner comme prévu lorsque cette API n'est pas installée : le glisser-déposer peut sembler autorisé même si la préférence
WA enable URL drop
a été réglée sur False. Cependant, l'action de dépôt est bloquée par défaut, et vous pouvez contrôler les URLs autorisées en utilisant l'événementOn Window Opening Denied
(voir ci-dessous).
- Les commandes
- (Windows uniquement) Lorsque l'utilisateur sélectionne Imprimer... à partir d'une zone Web utilisant le moteur de rendu Web intégré, une nouvelle fenêtre de paramètres d'impression s'affiche.
- Pour refléter leur effet réel dans les zones web (augmentation ou diminution du niveau de zoom de la page), deux commandes ont été renommées :
WA SET PAGE TEXT LARGER
a été renomméeWA ZOOM IN
,WA SET PAGE TEXT SMALLER
a été renomméeWA ZOOM OUT
. - Sécurité renforcée dans les zones web qui utilisent le moteur de rendu web intégré ou le moteur de rendu du système Windows (basé sur Microsoft Edge WebView2) :
- Les règles CORS s'appliquent désormais à l'accès aux fichiers sur disque dans les espaces web. Par exemple, lors de l'ouverture d'un fichier .html avec
WA OPEN URL
, ce fichier .html ne peut pas contenir de liens pointant vers des fichiers situés en dehors de son dossier - Le dépôt de contenus externes dans les zones web est désormais toujours bloqué et déclenche l'événement
On Window Opening Denied
lorsque la préférenceWA enable URL drop
est définie sur True (lorsqu'elle est définie sur False, la préférenceWA enable URL drop
ne modifie que l'icône du curseur de dépôt et filtre l'événementOn Window Opening Denied
). Pour permettre une action de dépôt, vous devez exécuter un code supplémentaire dans la méthode objet de la zone web :
- Les règles CORS s'appliquent désormais à l'accès aux fichiers sur disque dans les espaces web. Par exemple, lors de l'ouverture d'un fichier .html avec
- Nouveau moteur de rendu système Windows : Les zones Web utilisant le moteur de rendu du système Windows sont désormais basées sur Microsoft Edge WebView2. Cela a un impact sur les caractéristiques suivantes :
WA OPEN URL(* ; "WebArea";WA Get last filtered URL(* ; "WebArea"))
4D 19 R4
- Les attributs alias sont disponibles dans les classes ORDA.
- Prise en charge des instructions break and continue dans les boucles.
- Prise en charge de l'instruction return et de l'expression return expression pour renvoyer des valeurs.
- Support des opérateurs d'assignation composés, opérateurs de court-circuits, et opérateur ternaire
- L'Éditeur de code comprend désormais un outil de liste déroulante et supporte les marqueurs pour une meilleure navigation dans le code.
- Nouvelles préférences : Option Inclure les jetons dans les fichiers source du projet et Afficher les presse-papiers sur la page Méthodes.
- Nouvelle requête REST pour verrouiller/déverrouiller les entités.
- Le chapitre 4D View Pro a été ajouté avec de nouvelles commandes : VP Copy to object, VP MOVE CELLS, [VP PASTE FROM OBJECT](../ViewPro/commands/
- Nouvelle classe SystemWorker.
- La constante
Alias selection
a été renomméeAllow alias files
pour résoudre un conflit résultant de la prise en charge des attributs d'alias dans ORDA. - Pour une meilleure conformité avec les spécifications ORDA, la propriété de champ Mapper les valeurs NULL en valeurs vides est maintenant décochée par défaut dans les bases de données créées avec 4D 19 R4 et plus. Vous pouvez également activer ce comportement par défaut dans vos bases de données converties à partir de versions antérieures en sélectionnant le paramètre de compatibilité Mapper les valeurs NULL en valeurs vides non coché par défaut lors de la création des champs. Il est désormais recommandé de travailler avec des valeurs nulles, car elles sont entièrement prises en charge par ORDA.
- En raison de la prise en charge de l'opérateur ternaire, les deux points ":" ne sont plus autorisés dans les noms de variables, de champs, de constantes, de fonctions, de plugins et de méthodes de projet. Si votre base de données/projet contient des identifiants avec des deux-points, vous devez les remplacer avant de la convertir en 19 R4 ou à une version plus récente, sinon des erreurs peuvent se produire dans votre code. Par exemple, si vous avez une variable nommée a:b, elle peut être interprétée comme une syntaxe d'opérateur ternaire :
$value:=($size>1000) ? a:b // Ici, 'a:b' est considéré comme un opérateur ternaire.
4D 19 R3
- Les propriétés calculées sont disponibles dans les classes.
- Les attributs calculés sont disponibles dans les classes ORDA. Ils sont similaires aux propriétés calculées, mais supportent aussi les fonctions query et orderBy.
- Nouveaux attributs de dataclass ORDA :
exposed
etreadOnly
. - Les archives ZIP prennent désormais en charge les algorithmes de compression LZMA et xz.
- Une nouvelle option de compilation facilite l'inclusion des clients Silicon Mac dans les applications Serveur sous Windows.
- Extension de la prise en charge du mode sombre sur macOS.
- Support de OAuth2 token object dans
IMAP New transporter
,POP3 New transporter
, etSMTP New transporter
. - Les utilisateurs peuvent maintenant charger un fichier de configuration des journaux en utilisant un bouton dans la fenêtre d'administration du serveur.
- La gestion des paramètres optionnels est plus souple dans le langage 4D lorsqu'il s'agit d'accéder à des paramètres déclarés mais non transmis. Par exemple, le code suivant ne provoque plus d'erreur :
// Fonction "concate" de myClass
Function concate ($param1 : Text ; $param2 : Text)
ALERT($param1+""+$param2)
// Appel de la méthode
$class:=cs.myClass.new()
$class.concate("Hello" ;" world") // Affiche "Hello world"
$class.concate("Hello") // Affiche "Hello "
$class.concate() // Affiche " "
Pour plus d'informations, veuillez consulter cet article de blog. Pour bénéficier de cette simplification globale, vous devez recompiler à la fois les méthodes appelantes et les méthodes appelées ; les composants doivent donc être recompilés.
-
Le débogage des sessions du serveur web est plus facile sur 4D Server.
-
Le nouveau composant 4D NetKit vous permet de vous connecter à des API tierces telles que Microsoft Graph.
-
4D 19 R3 utilise un algorithme de hachage plus puissant pour les mots de passe des utilisateurs 4D : Bcrypt. Ce nouvel algorithme est automatiquement utilisé lorsqu'un mot de passe est modifié à l'aide de la boîte à outils, de la commande
CHANGE PASSWORD
ou de la commandeSet user properties
. Une fois le mot de passe modifié, l'ouverture de la base de données avec une version antérieure à 4D 19 R3 entraînera un refus d'authentification pour ce compte. Si vous utilisez les mots de passe 4D, il est fortement recommandé de sauvegarder le fichier .4db (bases de données binaires) ou le fichier directory.json (projets) avant d'effectuer la mise à jour vers 4D 19 R3 ou une version ultérieure. -
Par souci d'exactitude, la constante
4D digest
a été renommée4D REST digest
. -
Gestion des fins de ligne et des nomenclatures pour les commandes XML : Lorsqu'ils sont ouverts dans 4D 19 R3, les projets ou bases de données créé(e)s avec les versions précédentes se comportent différemment en ce qui concerne les caractères de fin de ligne par défaut et la gestion des BOM dans les documents XML : les caractères de saut de ligne (LF) sont utilisés à la place de CR (sur macOS), et les marques d'ordre d'octet (BOM) ne sont pas incluses. Cela permet une meilleure compatibilité avec les outils VCS. Si nécessaire, vous pouvez restaurer le comportement de la 19 R2 en utilisant la commande
XML SET OPTIONS
. Dans les projets ou les bases de données converti(e)s à partir de versions antérieures à 19 R2, ces options sont gérées par deux paramètres de compatibilité. -
Suppression du raccourci "Runtime Explorer" dans les projets construits : le raccourci Cmd/Ctrl+Shift+F9 n'affiche plus la fenêtre du Runtime Explorer dans les applications de projets fusionnés à mono-utilisateurs. Ce raccourci peut désormais être un raccourci d'application utilisateur. Vous pouvez appeler la fenêtre Runtime Explorer en utilisant la nouvelle commande
OPEN RUNTIME EXPLORER
. -
Capacités de débogage étendues avec 4D Server : En mode interprété, 4D Server peut désormais déboguer tous les types de process, y compris les sessions web évolutives. Cette fonction est disponible lorsque le débogueur est connecté au serveur ou à un client distant.
Attention : En mode interprété, afin de rendre le débogage étendu disponible sur la machine serveur, tous les process du serveur sont désormais automatiquement exécutés en mode coopératif lorsque le débogueur est attaché au serveur (paramètre par défaut). Cela peut avoir un impact significatif sur les performances de vos applications converties lorsqu'elles fonctionnent avec 4D Server 19 R3 et plus. Pour rétablir l'exécution préemptive sur le serveur dans ce cas, il suffit de détacher le débogueur du serveur (et de l'attacher à un client distant si nécessaire). -
Sous Windows, les projets et les bases de données 4D créé(e)s avec 4D 19 R3 et ultérieur utilisent l'API DirectWrite API dans les formulaires. Cette API améliore le rendu du texte, en particulier dans les configurations à DPI élevé. DirectWrite est utilisé pour le rendu de textes statiques et de textes saisis, de cases à cocher, de boutons et de boutons radio. Notez que les listbox utilisent déjà DirectWrite. Une option de compatibilité vous permet d'activer DirectWrite dans les projets et les bases de données créés avec des versions antérieures de 4D.
-
Si vous utilisez des composants compilés avec 4D 19.0 pour Silicon (Apple ARM CPUs) qui appellent la commande
Count parameters
, nous vous recommandons de les recompiler avec 4D 19 R3 pour assurer la compatibilité avec 4D 19 R3 et les releases ultérieures. Si un composant n'est pas compilé pour Silicon, il n'est pas nécessaire de le recompiler.
4D 19 R2
- Un fichier .gitignore par défaut peut être créé avec les nouveaux projets
- Nouvelle API de classe Blob pour gérer les nouveaux objets
4D.Blob
- Support de
no-bom
et nouveaux caractères de fin de ligne par défaut dans.setText()
Versions précédentes
Cliquez pour voir les notes de mise à jour des versions précédentes
4D 19
Si vos applications 4D utilisent des connexions TLS, il est recommandé de mettre à jour 4D en release 19.7 LTS build 288986 ou plus. Pour plus d'informations, consultez ce Bulletin de sécurité.
- IMAPTransporter Class : nouvelles fonctions
.createBox()
,.deleteBox()
,.renameBox()
,.subscribe()
, et.unsubscribe()
. - Classe File : nouvelles fonctions
setAppInfo()
etgetAppInfo()
. - Nouvelle balise de transformation 4DEACH.
- Serveur Web : nouveau paramètre SameSite session cookie.
- Prise en charge des couleurs foncées et claires pour les formulaires et les feuilles de style
- Nouveaux thèmes sombres et clairs par défaut dans les préférences de l'éditeur de code.
- Compilation native pour les processeurs Silicon.
- La propriété Variable calculation est désormais prise en charge par les colonnes de listbox entity selection.
- Nouvelle page complète CLI.
4D 18 R6
- Classe Entity selection : Les fonctions
.average()
,.max()
et.min()
retournent maintenant undefined si l'entity selection est vide. - IMAP Mail, POP3 Mail et SMTP Mail : La propriété
authenticationMode
active OAuth 2.0 - IMAP Mail : nouvelles fonctions
.expunge()
et.append()
- Nouveau composant de serveur web WebAdmin
- Nouvelle interface DataExplorer
- Nouvelles sessions utilisateur et leur API web.
Tableau des bibliothèques
Bibliothèque | Version courante | Mise à jour dans 4D | Commentaire |
---|---|---|---|
ICU | 73.2 | 20.1 | Cette mise à jour majeure entraîne une reconstruction automatique des index alphanumériques, texte et objets. |
CEF | 121 | 20 R5 | Chromium 6167 |
Hunspell | 1.7.2 | 20 | Utilisé pour la vérification orthographique dans les formulaires 4D et 4D Write Pro |
PDFWriter | 4.3 | 20 | FreeType dependency dans 12.2.1 |
SpreadJS | 16.2.6 | 20 R4 | Moteur 4D View Pro |
OpenSSL | 3.2.0 | 20 R4 | Le niveau de sécurité TLS/SSL par défaut a été relevé. Voir Changements de comportement pour la version 20 R4 |
libZip | 1.9.2 | 20 | Utilisé par les classes zip, 4D Write Pro, les composants svg et serverNet |
LZMA | 5.4.1 | 20 | |
Zlib | 1.2.13 | 20 | |
webKit | WKWebView | 19 | |
PHP | 8.2.4 | 20 | |
libldap | 2.6.4 | 20 R3 | |
libsasl | 2.1.28 | 20 |