Nouveautés

De RAD Studio
Aller à : navigation, rechercher

Remonter à Accueil

Remonter à Nouveautés des releases précédentes


La release RAD Studio 13.0 Florence contient les nouvelles fonctionnalités et améliorations suivantes :

Sommaire

Améliorations relatives à l'installation et au Gestionnaire de packages GetIt

Les sections suivantes décrivent les améliorations relatives à l'installation et au Gestionnaire de packages GetIt.

Modification du processus d'installation

Depuis RAD Studio Florence 13.0, le programme d'installation n'installe plus automatiquement le Windows SDK. Il vérifie si la version actuelle du SDK est installée sur l'ordinateur et, dans le cas contraire, fournit un lien de téléchargement lors du processus d'installation. Le téléchargement et l'installation du Windows SDK sont des pré-requis à l'installation de RAD Studio, c'est pourquoi il est recommandé de le faire avant l'installation de RAD Studio 13.0. Pour plus de détails, consultez les Notes d'installation.

Lors de l'installation du Windows SDK, il est recommandé d'activer les options suivantes :

  • Windows SDK for Desktop C++ x86 Apps
  • Windows SDK for Desktop C++ amd64 Apps

Les éléments suivants seront automatiquement activés :

  • Windows SDK Signing Tools for Desktop Apps
  • Windows SDK for UWP Managed Apps
  • Windows SDK for UWP C++ Apps.

Cette release supprime la possibilité d'installer les fonctionnalités de “Modélisation” dans l'interface de RAD Studio, dans les versions 32 bits et 64 bits. La fonctionnalité ne figure donc plus dans les options d'installation du Gestionnaire de fonctionnalités. Cela affecte également le formatage dans Delphi.

Versionage des packages dans le Gestionnaire de packages

Depuis RAD Studio Florence 13.0, plusieurs versions d'un même package GetIt peuvent être disponibles. Vous pouvez donc choisir d'installer une version spécifique plutôt que la dernière version. Lorsque plusieurs versions d'un package existent, un menu déroulant apparaît à côté du bouton Installer.

=link

Les dépendances de packages présentes dans une configuration de projet peuvent maintenant faire référence à une version spécifique d'un package, ce qui permet de définir des règles de filtrage.

De plus, l'interface de GetIt contient désormais un bouton à utilisation générale ainsi qu'un menu déroulant proposant des options supplémentaires de désinstallation ou de mise à jour. Il est également possible d'exporter la liste des packages installés. Pour plus d'informations, voir Fenêtre du Gestionnaire de packages GetIt.

Numéros de version interne unifiés à la valeur 37

Dans cette release de RAD Studio, les numéros de version interne sont unifiés à la valeur 37 pour la RTL, les packages, et les éléments suivants :

  • L'entrée principale du registre :
HKEY_CURRENT_USER\SOFTWARE\Embarcadero\BDS\37.0
  • La version de package et la version de RTL.
  • La version FMX : FMX.Types.FireMonkeyVersion
  • La version de PA Server.
  • Le dossier dans le lequel le produit est installé par défaut :

C:\Program Files (x86)\Embarcadero\Studio\37.0

Remarque: Dans cette release, le dossier d'installation de l'EDI et les packages d'exécution passent directement à la version 37 (en sautant plusieurs numéros intermédiaires) alors que le compilateur suit l'incrément habituel (+1).

Améliorations de l'EDI 64 bits

RAD Studio 13.0 inclut notre première EDI totalement 64 bits pour la plate-forme Windows 64 bits. Elle étend et complète les fonctionnalités de l'EDI 64 bits introduites initialement dans RAD Studio version 12.3. Par rapport à cette "release initiale" de l'EDI 64 bits de 12.3, l'EDI 64 bits de 13.0 offre une grande nouveauté : la prise en charge de la construction et du débogage d'applications 64 bits dans Delphi et C++.

Voici les principales améliorations :

  • Prise en charge des templates de code (Ctrl-J), incluant notamment le menu Encadrement.
  • Prise en charge des bibliothèques de types, ActiveX, et COM.
  • Intégration VA pour C++Builder dans l'EDI 64 bits.
  • Implémentation d'un nouveau moteur de débogage pour déboguer les applications C++ et Delphi.
  • Améliorations majeures des performances du débogueur Delphi.
  • Modification des adresses de pointeur pour les faire apparaître dans un style Delphi.
  • Suppression des fonctionnalités "Together", incluant notamment la Modélisation, les Audits, et les Métriques.

Modifications et améliorations de l'EDI

Cette release améliore et modernise l'EDI de RAD Studio avec l'introduction de fonctionnalités de recherche étendues et configurables dans plusieurs volets de l'EDI. Voici les principales modifications et améliorations :

Améliorations relatives aux fonctions de recherche

RAD Studio Florence 13.0 introduit de nouvelles fonctionnalités de recherche dans plusieurs volets de l'EDI, ce qui facilite l'accès à l'information dans les projets, unités et scénarios volumineux. L'expérience de recherche est unifiée dans l'ensemble des volets qui prennent en charge cette fonction via la combinaison de touches Ctrl+F. La touche Echap permet de fermer la fenêtre de résultats et de revenir au contrôle original.

Des fonctionnalités de recherche ont été ajoutées aux sections suivantes :

  • Vue Structure : ajout d'une fonction de recherche incrémentale utilisable aussi bien dans la vue de conception que dans la vue du code source, avec en plus la mise en surbrillance de la syntaxe dans les résultats de recherche du code source.
  • Gestionnaire de projets : ajout d'une fonction de recherche incrémentale prenant en charge des requêtes rapides et optimisées pour les projets volumineux (plus de 20 000 fichiers).
  • Volet Message et Journal d'événements : ajout d'une fonction de recherche incrémentale facilitant la navigation dans de grandes structures de données.
  • Inspecteur d'objets : ajout d'une icône de recherche pour faciliter la navigation.
  • Palette d'outils : ajout d'une icône de recherche pour faciliter la navigation.

De plus, la fonction de recherche implémentée dans les recherches des vues Messages et Evénements, mais aussi dans les vues Projets et Structure, offre une configuration de recherche spécifique, disponible depuis une liste déroulante :

=link

Ajouts au journal des messages

RAD Studio Florence 13.0 introduit de nouvelles options sous EDI > Compilation et exécution > Journal de construction :

  • Activation de la mise en surbrillance dans le journal du compilateur.
  • Regroupement des conseils et avertissements dans le volet Messages. Cela facilite la navigation lorsque les messages sont nombreux et accélère le processus de build.

=link

Mises à jour de ToolsAPI

La release RAD Studio Florence 13.0 apporte les mises à jour suivantes à ToolsAPI :

  • Ajout d'une nouvelle méthode pour mettre à jour l'interface utilisateur dans la page d'accueil.
INTAWelcomePageDataPluginListView370.Invalidate

Pour plus de détails sur ces mises à jour, voir la page ToolsAPI.

Améliorations relatives à l'audit de code intelligent

RAD Studio Florence 13.0 introduit "RAD AI Companion”, un chat et générateur de code, spécifiquement entraîné sur du contenu en lien avec RAD Studio. Dans l'EDI, ouvrez Menu Aide > RAD AI Companion.

=link

Cette release introduit également le nouveau bouton Tester la connexion dans la page Options de l'audit de code intelligent. Désormais, les utilisateurs peuvent directement tester la configuration sans qu'il soit nécessaire de lancer le chat.

Parmi les autres améliorations :

  • Pour les modèles qui renvoient “<think>” avant de renvoyer l'information, l'EDI a supprimé les balises “thinking”.
  • Les conseils des boutons affichés dans la Fenêtre de chat de l'audit de code intelligent ont été améliorés et indiquent désormais les raccourcis.

Modifications supplémentaires de l'EDI

Les sections suivantes présentent les mises à jour et améliorations apportées à l'EDI :

  • La nouvelle option de l'EDI Onglets a été ajoutée pour permettre aux utilisateurs d'utiliser la couleur de fond de l'éditeur pour les tabulations de l'éditeur.
  • Une nouvelle option de l'EDI permet d'utiliser le thème actif de l'EDI pour les couleurs de mise en surbrillance structurelle. Utilisez-la pour sélectionner le style de couleur pour la mise en surbrillance structurelle.
  • La mise en mémoire tampon double et la suppression du "sautillement" ont été activées par défaut. Vous pouvez aussi utiliser le nouveau paramètre du registre (Globals\SingleBufferingInRemoteSessions) pour désactiver la mise en mémoire tampon double.
  • Le menu Refactoring est grisé lorsqu'aucune option de refactoring n'est active (ce comportement remplace l'élément de menu “Aucun refactoring”).
  • La boîte de dialogue Exception EDI affiche maintenant directement la trace de la pile d'appels, fournissant ainsi des informations utiles pour comprendre le flux du code.
  • Il est désormais possible de copier des messages d'erreur depuis le volet Structure.
  • La boîte de dialogue Attacher au processus a été modifiée de façon à inclure des colonnes supplémentaires pour afficher les informations sur les processus, et contient aussi des contrôles supplémentaires.
  • L'intégration du contrôle de source Git a été améliorée : l'interface a été changée pour indiquer que vous pouvez utiliser le Token Name GitHub ou le Token Key à la place de votre nom d'utilisateur et mot de passe.
  • Lors de l'ajout d'une fiche à une application FireMonkey, il n'est plus nécessaire de choisir entre une fiche HD et une fiche 3D. L'ajout d'une fiche 3D reste possible via une option distincte.
  • Les icônes de gouttière ont été améliorées dans le mode Thème foncé, évitant ainsi l'affichage d'une bordure blanche autour des images.

Améliorations relatives aux outils EDI

RAD Studio comprend de puissants outils conçus pour faciliter l'écriture de code Delphi et C++. La section suivante présente les améliorations et les mises à jour apportées aux différents outils EDI.

DelphiLSP

Cette release s'inscrit dans la continuité des efforts destinés à améliorer l'architecture de DelphiLSP. En réponse à certaines demandes de nos clients Delphi, nous avons choisi de rétablir l'ancien moteur Audit de code Delphi. Il est à nouveau disponible dans RAD Studio 13.0 sous forme d'alternative à la version DelphiLSP disponible dans l'EDI, et accessible à toute personne souhaitant l'utiliser.

Remarque: L'activation du Gestionnaire d'audit de code classique affecte certaines fonctionnalités ayant été déplacées dans DelphiLSP,comme le volet Structure, la fonction Audit d'erreur, et la barre de navigation de l'éditeur (la barre d'outils affichée en haut de l'éditeur qui permet de se déplacer dans le code). Ces fonctionnalités ne fonctionnent plus lorsque vous activez le Gestionnaire d'audit de code classique, et nous ne sommes pas en mesure d'annuler ces changements.

Le gestionnaire Audit de code classique peut être activé depuis Outils > Options > Editeur > Langage > Onglet Audit de code comme indiqué sur l'image ci-dessous :

Delphilsp classic codeInsight.png

Expert Delphi Upgrade Advisor

RAD Studio 13.0 introduit un nouvel Expert, le Delphi Upgrade Advisor, qui permet d'identifier d'importants changements dans la configuration d'un projet et dans le code, permettant ainsi d'améliorer la vitesse de compilation et l'expérience des développeurs avec les outils. Cet expert est disponible sous forme de package GetIt. Une fois installé, un nouveau menu apparaît dans l'EDI.

En plus de fournir des suggestions intéressantes, l'Expert Delphi Upgrade Advisor propose des scripts reFind qui permettent de nettoyer les instructions uses du projet.

Visual Assist pour C++

Dans RAD Studio Florence 13.0, l'intégration VA a été améliorée pour une plus grande cohérence avec la façon dont RAD Studio gère les chaînes d'outils et les configurations de projet.

VA se recharge maintenant automatiquement à chaque fois que vous modifiez la configuration d'un projet, la plate-forme cible, ou la chaîne d'outils. Cela garantit l'exactitude des chemins d'inclusion et de la résolution des symboles même lorsque vous travaillez avec plusieurs projets qui utilisent des paramètres différents au sein d'un même groupe de projets. Pour plus d'informations, voir la page Visual Assist pour C++.

Mises à jour du débogueur

Dans cette release, le débogueur a été mis à jour en LLDB version 20. Le compilateur Clang pour la plate-forme Windows 64 bits (Moderne) a aussi été mis à jour en version 20.

Voici la liste des améliorations relatives au débogueur :

Pour C++ :

  • Amélioration de la façon dont OutputDebugStringW gère les sorties Unicode.
  • Les valeurs caractères étendus non imprimables sont désormais affichées dans le format correct dans la sortie du débogueur.
  • argc et argv gèrent maintenant correctement les arguments contenant des espaces lorsqu'ils sont exécutés sous le débogueur.

Pour Delphi :

  • Les valeurs d'énumération de portée restent désormais correctement contenues dans leur type déclaré, évitant les conflits dans l'espace de nommage global. De plus, ces valeurs sont maintenant restituées correctement dans les vues de débogage.
  • Les valeurs des membres d’objet sont maintenant correctement affichées lors du débogage.
  • Les noms de variables de classe sont correctement résolus, avec une gestion améliorée du substantypage.
  • La gestion de la variable Unicode a été améliorée ; le débogueur accepte maintenant un intervalle plus large d'identificateurs Unicode.

De plus, dans les options de l'EDI, vous pouvez activer Code en surbrillance dans les fenêtres de débogage.

Compilateur de ressources

Dans cette release, des ajustements ont été apportés à l'intégration du Compilateur de ressources dans RAD Studio.

Depuis Florence 13.0, RAD Studio distribue un compilateur de ressources open-source supplémentaire, appelé resinator. Il est désormais utilisé par défaut dans le système pour générer le code. Pour plus d'informations sur resinator, voir GitHub resinator.

De nouvelles options ont aussi été ajoutées pour faciliter la sélection d'un autre compilateur de ressources, incluant notamment le compilateur de ressources classique du Windows SDK.

Mises à jour relatives au compilateur Delphi

RAD Studio 13.0 intègre des améliorations du langage Delphi, allant d'un nouvel opérateur ternaire à de nouvelles directives de compilation, etc.

Opérateur conditionnel If

La release RAD Studio Florence 13.0 introduit un opérateur conditionnel (opérateur ternaire) dans le langage Pascal Objet. Alors que son comportement est similaire à l'opérateur ?:, communément trouvé dans d'autres langages de programmation, sa syntaxe ressemble au Pascal Objet, et est similaire à la structure if-then-else.

Pour des exemples et des informations supplémentaires, voir la page Opérateurs conditionnels (Delphi).

Nouveaux opérateurs “is not” et “not in”

Le compilateur autorise les opérateurs “is not” et “not in”, ce qui constitue une alternative plus courte et plus lisible aux opérateurs combinés. Pour des exemples, voir la page Expressions Delphi.

Nouvelle directive “noreturn”

La directive “noreturn” est un attribut associé aux procédures, indiquant que l'appel va déclencher une exception et ne peut pas poursuivre son exécution normalement. Cela permet au compilateur d'ignorer un avertissement sur des résultats non définis et d'activer l'optimisation et l'élimination de code. Pour des exemples, voir la page Déclarations et instructions Delphi.

La nouvelle directive peut être utilisée pour éliminer les avertissements W1035 lorsque des exceptions sont déclenchées, empêchant potentiellement l'affectation d'une valeur correcte. Pour des exemples, voir la page W1035 La valeur de retour de la fonction '%s' peut être indéfinie.

Directives {$PUSHOPT} et {$POPOPT}

Ces nouvelles directives du compilateur Delphi enregistrent et restaurent l'ensemble actuel de configurations d'avertissement et d'options.

Cette release émet les avertissements suivants sur les directives déséquilibrées.

Le même avertissement sera émis à la fin du fichier source s'il y a plus de $PUSHOPT que de $POPOPT dans un fichier. Ces nouvelles directives ne peuvent pas être appliquées à toutes les options et à tous les paramètres. Voir la liste des Options éligibles.

Prise en charge des directives longues pour la directive {$IFOPT}

Depuis RAD Studio Florence 13.0, la directive {$IFOPT} prend en charge les directives longues. Voici comment :

{$IFOPT SCOPEDENUMS ON}

Pour la liste complète des directives prises en charge, voir la page $IFOPT.

Nouvelles contraintes pour les types génériques

De nouvelles contraintes ”interface” et “unmanaged” existent pour les types génériques. Les contraintes "unmanaged" remplacent partiellement la contrainte existante sur les enregistrements.

De plus, grâce à ces nouvelles contraintes, il est possible d'autoriser le transtypage L-Value pour une variable de type valeur déclarée avec un type générique. Dans la méthode d'une classe générique, il est désormais possible de transtyper le résultat d'une méthode générique renvoyant le type générique lui-même, selon le type concret utilisé.

Exemple :

class function TMyData<T>.OperateSubtract(const L, R: T): T;
begin
  if (GetTypeKind(T) = tkInteger) and (SizeOf(T) = 1) then
    Byte(Result) := Byte(L) - Byte(R) // New cast!
  else if (GetTypeKind(T) = tkInteger) and (SizeOf(T) = 2) then
    Word(Result) := Word(L) - Word(R) // New cast!
  // ...
  else if (GetTypeKind(T) = tkFloat) and (SizeOf(T) = 10) then
    Extended(Result) := Extended(L) - Extended(R); // New cast!
end;

Fonction NameOf Instrict

Il y a une nouvelle procédure standard NameOf(Identificateur), dont le fonctionnement correspond à la façon dont la fonction C# de même nom fonctionne. Elle peut être transmise à n'importe quel identificateur. La valeur retournée est la représentation chaîne correspondante:

 Memo1.Lines.Add (NameOf (Sender));
 Memo1.Lines.Add (NameOf (self));
 Memo1.Lines.Add (NameOf (TForm31));
 Memo1.Lines.Add (NameOf (X));
 Memo1.Lines.Add (NameOf (Integer));

Déclaration de paramètre “Self” implicite dans les opérateurs de classe d'enregistrement Initialize et Finalize

Les deux opérateurs de classe pour les enregistrements managés personnalisés permettent désormais d'utiliser une syntaxe de déclaration plus concise. Il est en effet possible d'ignorer le paramètre self (qui reste implicitement disponible). Cela n'entraîne aucun changement, que ce soit dans le code généré ou le comportement. Seule la syntaxe est simplifiée.

Pour des exemples, voir la page Enregistrements managés personnalisés.

Améliorations supplémentaires du compilateur Delphi

La section suivante présente les améliorations supplémentaires du compilateur Delphi.

  • La directive $WEAKPACKAGEUNIT génère maintenant une erreur (E2203 et E2221) si l'unité contient des variables globales dans les sections interface, des blocs d'initialisation ou de finalisation, ou encore des constructeurs ou destructeurs de classes.
Remarque: Cette modification peut empêcher la compilation du code existant.
  • L'erreur de compilation ‘E2033’ (Les types des paramètres var originaux et formels doivent être identiques) inclut maintenant les noms des types impliqués.
  • Deux nouveaux avertissements, W1076 et W1077, ont été ajoutés pour le transtypage de données.

Plate-forme C++ Moderne Win64 mise à jour vers Clang 20

La release RAD Studio Florence 13.0 intègre la mise à jour du Compilateur C++ Moderne Win64 depuis Clang 15 (version fournie avec 12.x) vers Clang version 20. Le nouveau compilateur basé sur Clang prend en charge C++23. De plus, cette release intègre la mise à jour de tous les autres éléments de la chaîne d'outils C++ Moderne Win64.

Cette release offre de nombreuses améliorations axées sur les standards C++ modernes, la compatibilité et la stabilité. Vous trouverez ci-dessous les principales améliorations incluses dans cette release :

  • Mise à niveau de la chaîne d'outils LLVM (v20) : la chaîne d'outils a été mise à niveau depuis LLVM v15 vers LLVM v20. Cette mise à niveau prend en charge les derniers standards C++ et les optimisations du compilateur.
  • Prise en charge améliorée d'ASAN : le runtime AddressSanitizer (ASAN) est maintenant compatible avec Windows 11.
  • Nouvelle option Standard C++ : BCC64X utilise maintenant C++23 par défaut, mais les utilisateurs peuvent choisir de cibler C++20 ou C++17 si nécessaire.
  • Bibliothèques partagées RTL/STL versionnées : les bibliothèques d'exécution partagées (comme libc++.dll) ont maintenant un suffixe indiquant le numéro de version de BDS (par exemple, libc++-370.dll). Cela empêche les conflits d'exécution lorsque plusieurs versions de RAD Studio sont installées.
  • Résolution de problèmes des anciennes versions : de nombreux bogues et incohérences présents dans LLVM v15 et les versions précédentes de la chaîne d'outils ont été résolus dans cette release.

Améliorations relatives à la RTL Delphi

Cette release améliore la RTL JSON pour permettre la suppression d'un champ lorsqu'il a une valeur particulière en ajoutant un nouvel attribut. Vous trouverez ci-dessous d'autres améliorations relatives à JSON, ainsi que d'autres mises à jour de la RTL Delphi.

Pack de composants SmartCore AI

RAD Studio 13.0 introduit un nouvel ensemble de composants IA conçu pour les clients qui souhaitent ajouter des fonctionnalités d'IA à leurs applications et concevoir avec Delphi ou C++Builder de nouvelles applications centrées sur l'IA. Cette architecture sera un élément central et fondamental à l'avenir. Nos clients et les éditeurs tiers pourront s'appuyer sur cette architecture et l'étendre afin qu'elle s'intègre à de nouveaux contrôles d'interface utilisateur et à d'autres moteurs d'IA.

Le pack de composants SmartCore AI est disponible dans GetIt. Le nouveau composant Connexion AI s'utilise comme un composant Connexion de base de données dans FireDAC. Ce composant unique indépendant du moteur d'IA utilisera des pilotes spécifiques pour communiquer via REST avec différents moteurs d'IA (y compris OpenAI, Claude, Gemini et Ollama). Le moteur d'IA SmartCore permet d'ajouter des pilotes supplémentaires pour que les fournisseurs d'IA puissent étendre les capacités de votre projet au fur et à mesure que le marché se développe. La configuration est gérée via un expert de connexion IA facile d'emploi.

Ce pack de composants comprend un ensemble de composants permettant d'effectuer des requêtes ou interrogations IA pour différents types de données comme du texte, des images et des données structurées. Ils peuvent être associés à des prompts et être directement liés à des contrôles d'interface utilisateur qui affichent les résultats. Ce modèle basé sur des composants facilite grandement l'utilisation des composants SmartCore AI dans RAD Studio 13.0.

Traitement JSON

Cette section répertorie les mises à jour relatives à JSON :

  • Les attributs TJsonOption joIgnoreDefault et joIgnoreSpecial ont été ajoutés.
  • TMarshalUnmarshalBase.ValueSerialization : utilisation de TJsonValueSerialization avec jvExcludeSpecial activée par défaut.
  • Le comportement de TJSONValue.GetValue<T>(const APath: string; ADefaultValue: T): T a changé : la propriété recherche une valeur JSON. Si la valeur JSON est trouvée, elle est convertie dans le type spécifié. Si la valeur n'est pas trouvée, si elle ne peut pas être restaurée, ou si elle est null, une valeur par défaut est renvoyée.
  • La classe TJSONNumber est maintenant directement héritée de la classe TJSONValue.
  • La classe TJSONString est marquée comme "sealed".
  • TJsonReader a maintenant ReadAsUInt64.

Le sérialiseur JSON offre la possibilité d'ignorer les propriétés avec des valeurs par défaut :

  • Nouvelle méthode surchargée TJsonConverter.CanWrite(AValue).
  • La propriété TJsonSerializer.MemberSerialization: TJsonMemberSerialization a par défaut la valeur TJsonMemberSerialization.Fields.

Autres modifications relatives à la RTL Delphi

La section suivante indique les autres modifications relatives à la RTL Delphi pour la release RAD Studio Florence 13.0.

  • Actualisation des API WinRT, capture externe des en-têtes WinAPI à partir de la définition WinMD (dans GetIt), et nettoyage des déclarations WinAPI dans les fichiers RTL.
  • Mise à jour de la version intégrée de DUnitX vers la version 0.4.1 (dernière modification en date du 26 juin 2025).
  • Ajout d'une version sensible à la casse de la fonction TStringHelper.Contains.
  • Ajout de l'unité System.StrUtils.LiteralToInt qui fournit des fonctions prenant en charge les littéraux entiers contenant "_" et des notations binaires contenant "%". Par conséquent, les classes TIntegerProperty et TInt64Property utilisent maintenant TryLiteralToInt.
  • Ajout d'une nouvelle propriété TPath.Exists.
  • Ajout de ReadUInt64 et WriteUInt64 à la classe TRegistry.
  • TThreadedQueue a maintenant une propriété Count pour assurer la cohérence des noms.
  • Mise à jour de TDictionary<K,V> et TOrderedDictionary<K,V>. Le transtypage de TOrderedDictionary en TDictionary préserve le comportement de TOrderedDictionary.
  • Les constructeurs des classes de synchronisation TMutex, TSemaphore et TEvent définissent maintenant la propriété THandleObject.LastError avant de revenir à l'appelant.
  • Mise à disposition d'un constructeur TStringList avec la signature:
constructor Create(Options: TStringsOptions; Duplicates: TDuplicates = dupIgnore); overload;
  • L'unité System.RTTI a une nouvelle fonction GetStorageSize pour lire le nombre d'octets requis pour stocker une valeur de ce type dans la mémoire.
  • Ajout d'une nouvelle méthode TSizeF.Zero.
  • Pour le débogage des scénarios de verrou mortel, nous avons ajouté la propriété WriterID à IReadWrite/TMultiReadExclusiveWriteSync.
  • Restructuration de TRttiDataMember en introduisant une nouvelle classe intermédiaire :
    • TRttiPlaceMember
    • TRttiDataMember
    • TRttiIndexedProperty

Améliorations relatives à la VCL

Dans 13.0, RAD Studio introduit de nouvelles fonctionnalités et de nombreuses améliorations de qualité pour les puissantes bibliothèques d'interface utilisateur intégrées. La VCL inclut une intégration des interfaces Microsoft UIAutomation, des styles TitleBar, etc.

Prise en charge d'UIAutomation

Pour améliorer l'accessibilité et l'intégration des applications VCL avec les outils de test d'interface utilisateur, la prise en charge de UIAutomation dans la bibliothèque VCL est maintenant intégrée à la version 13.0.

Améliorations relatives à barre de titre

Dans cette release, TitleBarPanel prend en charge les styles VCL personnalisés. Cela permet de dessiner des contrôles stylés dans la zone de barre de titre.

De plus, cette release apporte les mises à jour suivantes :

  • Ajout d'une nouvelle propriété TTitleBar.StyleColors pour permettre l'utilisation automatique des couleurs des styles VCL pour l'arrière-plan et les boutons sur la barre de titre. La prise en charge inclut l'utilisation des contrôles suivants : TButton, TSpeedButton, TCheckBox, TRadioButton, TToolBar, TEdit, TComboBox, TFormTabsBar, TActionToolBar et TActionMainMenuBar.
  • Amélioration de l'utilisation de la barre de titre dans les applications MDI.
  • Ajout de la prise en charge des conseils pour les boutons des clients sur la barre de titre.
  • Améliorations relatives à la prise en charge HighDPI

Améliorations relatives au composant ControlList

Dans RAD Studio Florence 13.0, les améliorations suivantes ont été apportées au composant ControlList :

  • Le composant ControlList prend en charge un nouveau type de contrôle hébergé : SplitButton. Cette implémentation implique les changements suivants :
    • Les styles clbkSplitPushButton et clbkSplitToolButton pour le contrôle TControlListButton.
    • Un nouvel aspect pour la zone de menu déroulant d'un bouton fractionné avec une flèche.
    • Propriété DropDownMenu pour le contrôle TControlListButton.
  • Ajout d'un nouvel événement OnGetItemHint et d'une nouvelle propriété ShowItemHint pour offrir des conseils par élément, plutôt que des conseils globaux pour les contrôles.

Améliorations relatives au composant FormsTabsBar

RAD Studio Florence 13.0 comporte les améliorations suivantes pour le composant FormsTabsBar, introduit dans RAD Studio 12 :

  • Ajout de la prise en charge de la transparence avec deux nouvelles propriétés : Transparent et ShowBottomLine.
  • Ajout d'un nouvel événement OnGetTabCaption qui rend le TFormTabsBar plus flexible.
  • Les méthodes TabFromPoint et TabIndexFromPoint sont maintenant publiques.
  • Ajout d'une nouvelle propriété MouseMiddleButtonClose pour fermer un onglet avec le bouton central de la souris.

Mise à jour de EdgeBrowser

Cette release intègre une mise à jour des interfaces au contrôle Microsoft WebView 2 (Edge basé sur Chromium) vers la version 1.0.3296.44 du SDK WebView2.

De plus, elle intègre également des mises à jour du composant TEdgeBrowser (et la démo correspondante) pour prendre en charge AddWebResourceRequestedFilterWithRequestSourceKinds à la place de AddWebResourceRequestedFilter.

Démo WinUI 3

Cette release intègre la mise à jour des en-têtes WinUI 3 et la démo WinUI 3 autonome, précédemment téléchargeables de façon individuelle via GetIt, et maintenant intégrées dans les démos du produit principal.

Défilement ActionMainMenuBar

Cette release intègre une nouvelle fonctionnalité de défilement pour le contrôle TActionMainMenuBar, qui est activée lorsque la hauteur verticale dépasse la hauteur de l'écran.

Vous trouverez ci-dessous un exemple de cette fonctionnalité en action. Veuillez noter qu'elle peut également être utilisée par l'EDI de RAD Studio, lorsqu'il est exécuté sur un écran basse résolution.

=link

Autres améliorations de la VCL

Voici des mises à jour et modifications supplémentaires intégrées dans la VCL.

  • Suppression de la prise en charge spécifique à Win98 dans le code VCL.
  • Amélioration du contrôle TToggleSwitch pour qu'il ressemble à un commutateur à bascule Windows 10 / Windows 11, mettant à jour la "famille de styles VCL Windows 10".
  • Mise à jour de la classe TDragDockObject pour que DropAlign soit une propriété en lecture-écriture.
  • Ajout d'un nouvel événement TActionMainMenuBar.OnSelectMenuItem pour permettre l'affichage de conseils pour les éléments de menu dans le composant ActionMainMenuBar.
  • Pour le contrôle TCategoryButtons, ajout des propriétés Visible et Enabled de TButtonItem et TButtonCategory.
  • Nouvelle propriété TStyleManager.FormBorderSize.
  • Nouvel événement TMonthCalendar.OnChange.
  • Nouveaux événements OnBeforeResize et OnAfterResize ajoutés pour TSplitter.
  • Ajout d'une nouvelle fonction publique, VCLEditors.GetFormDPIForVCLEditors, pour simplifier le développement d'éditeurs VCL sous l'EDI HiDPI.
  • TCanvas offre de nouvelles méthodes surchargées avec des paramètres TPoint pour les méthodes suivantes : AngleArc, Draw, LineTo, MoveTo, FloodFill et TextOut.

Mises à jour de FireMonkey

Dans RAD Studio 13.0, FireMonkey intègre une nouvelle fonctionnalité Display Link Service qui améliore sensiblement la stabilité et la fluidité des animations. Le framework offre également des gains de performances lors de la copie des bitmaps grâce à l'unité GPU, un tout nouveau composant MaskEdit.

Cette section répertorie les mises à jour et les améliorations apportées à FireMonkey.

API pour les plates-formes Apple

La release RAD Studio Florence 13.0 offre une mise à jour et une extension importantes des API des plates-formes iOS et macOS disponibles dans les fichiers d'en-tête Delphi. Cette release intègre également la mise à jour de tous les en-têtes des API iOS de la RTL vers iOS 18.4. Les extensions spécifiques incluent :

API de la plate-forme Android

RAD Studio Florence 13.0 cible l'API Android niveau 35 par défaut, et inclut des outils pour prendre en charge les nouveaux niveaux de l'API dans le futur.

Voici des modifications supplémentaires :

  • Amélioration de la classe TTexture pour prendre en charge la cible GL_TEXTURE_EXTERNAL_OES.
  • Remaniement de l'outil en ligne de commande Java2OP, en remplaçant Doclava par le nouvel outil en ligne de commande jparser. Cela élimine les problèmes associés à la réimplémentation des API déclarées dans les packages exportés par les modules de la plate-forme.
  • Ajout de getEventTimeNanos et getHistoricalEventTimeNanos à JMotionEvent dans Androidapi.JNI.GraphicsContentViewText.pas.
  • Mise à jour de l'outil en ligne de commande manifestmerger vers la version 31.10.1.
  • Mise à jour de l'outil en ligne de commande AAPT2 vers la version 8.10.1.
  • Mise à jour de l'utilitaire en ligne de commande dexter vers la version 1.0.1.
  • Mise à jour de l'utilitaire en ligne de commande rclasser vers la version 1.0.1.
  • Mise à jour de l'utilitaire en ligne de commande bundletool vers la version 1.18.1.
  • Mise à jour de l'utilitaire en ligne de commande packager vers la version 1.2.1.

Contrôle MaskEdit

RAD Studio Florence 13.0 introduit un nouveau contrôle MaskEdit pour FireMonkey qui inclut un concepteur spécifique pour les masques de saisie.

=link

Contrairement à son équivalent VCL, dans l'implémentation FMX TMaskEdit, une exception n'est pas déclenchée si la valeur en cours dans l'éditeur de masque de saisie n'est pas valide. A la place, il est recommandé d'utiliser l'événement OnValidateError. Cet événement permet au développeur de fournir à l'utilisateur un retour visuel à propos d'une valeur non valide. Si la valeur est toujours incorrecte après la réinitialisation de la focalisation, elle reste dans un état non valide, et l'événement OnChange n'est pas déclenché jusqu'à ce que la valeur devienne valide.

Nouvelle fonctionnalité Display Link Service

La nouvelle fonctionnalité Display Link Service pour FMX est maintenant le moteur central pour toutes les animations de l'application, remplaçant entièrement l'ancien moteur basé sur des timers.

Ce système précis exploite le taux de rafraîchissement réel de l'écran pour synchroniser et lancer toutes les mises à jour et animations de l'interface utilisateur. En utilisant les API natives de la plate-forme comme JChoreographer (Android) et CADisplayLink (iOS), le service garantit que le traitement des animations est étroitement aligné sur les événements VSync, ce qui se traduit par des visuels plus fluides et plus cohérents sur toutes les plates-formes.

Remarque: Vous remarquerez que cette modification fondamentale et structurelle implique des changements et des incompatibilités avec le code existant. Par exemple, la propriété Interval dans TAniCalculations a été supprimée[1], alors que d'autres propriétés ont été modifiées de TDateTime en Double.

FMX Linux

Pour la release RAD Studio Florence 13.0, une nouvelle version de FMX Linux est disponible dans les packages GetIt. De même, l'intégration de la bibliothèque à l'EDI est maintenant plus fluide.

Mises à jour de Skia

La release RAD Studio Florence 13.0 intègre la mise à jour de la dernière version 7.0.0 de la bibliothèque Skia (Skia4Delphi - RAD Studio). Cette mise à jour résout plusieurs problèmes et permet une meilleure intégration de Skia.

Voir Releases - skia4delphi/skia4delphi

Améliorations supplémentaires relatives aux contrôles et composants FireMonkey

Voici des mises à jour et modifications supplémentaires apportées aux contrôles et composants FireMonkey.

  • Le composant TComboEdit prend maintenant en charge le remplissage automatique de la saisie avec une configuration de texte modifiable.
  • Ajout d'un nouvel ensemble de propriétés au TPresentedScrollBox pour que l'utilisateur puisse contrôler les animations de défilement, les rebonds et les interactions tactiles. Voici les nouvelles propriétés : AutoHide, Bounces, ScrollAnimation, ScrollDirections, et TouchTracking.
  • Ajout du nouveau composant TApplicationEvents.
  • Changement de TDateTime en Double car l'API fonctionne maintenant avec des intervalles mesurés en seconde. Le DisplayLink d'iOS fonctionne en secondes, alors que le JChoreographer d'Android fonctionne en nanosecondes.
  • Conversion des méthodes de FMX.Text.TextEditor et FMX.Text.SpellingManager pour qu'elles soient virtuelles.
  • Remaniement de IFMXSpellCheckerService avec la nouvelle interface IFMXSpellCheckerExService, qui permet de travailler avec différentes langues et phrases.
  • Publication de la propriété HitTest pour le composant TGlyph.
  • Ajout d'une propriété TextPrompt à TMemo, utilisée comme texte indicatif lorsqu'aucun texte n'est présent. Fonctionne comme un TEdit.
  • Ajout d'un nouvel événement OnCheckedChange pour TListBoxItem.
  • Ajout de la prise en charge de l'orientation pour la poignée dans le style TSplitter.
  • Publication de la propriété de TouchTargetExpansion pour TShape et d'autres contrôles visuels.
  • Les icônes de boutons TBindNavigator peuvent maintenant être modifiés via les styles.
  • Ajout d'une nouvelle propriété Reverse à TTrackBar , qui permet d'inverser la barre graduée. De plus, TTrackBar prend maintenant en charge le défilement avec la molette de la souris.
  • La hauteur de MenuItem était auparavant une constante. Maintenant, l'utilisateur peut ajouter un objet TStyleTag avec StyleName=“height“ au style TMenuItem et spécifier la hauteur de l'élément de menu dans la propriété Value.
  • TGlyph a de nouvelles propriétés, ImageRect et Bitmap, qui autorisent des tailles et coordonnées de dessin réelles.
  • La valeur FContentHeight du composant TExpander est maintenant accessible dans la propriété ContentHeight.
  • Amélioration de la saisie dans TStringGrid TPopupColumn.
  • Introduction des méthodes virtuelles DoStateChanged pour TRadioButton, TCheckBox et TArcDial.
  • Une nouvelle assistance de propriété de classe de type TCanvasHelper dans TCustomCanvasGpu a été conçue pour les développeurs souhaitant étendre la bibliothèque FMX.
  • Le FMX.TListBoxGroupHeader a maintenant la propriété TextSetting.Trimming.
  • Ajout de la propriété AutoTranslate à TMainMenu et TPopupMenu.
  • Ajout d'une version surchargée de la méthode EvaluateJavaScript à TWebBrowser, avec un paramètre TJavaScriptResultCallback.
  • Ajout d'un nouveau composant, TApplicationEvents, similaire à l'équivalent VCL.
  • Mise à jour de TAlignLayout de façon à intégrer de nouvelles options d'alignement pour le centrage des contrôles. Les nouvelles méthodes d'alignement incluent : TopCenter, TopLeft, TopRight, LeftCenter, LeftTop, LeftBottom, RightCenter, RightTop, RightBottom, BottomCenter, BottomLeft et BottomRight.
  • Ajout de la prise en charge de la version 16.0 des symboles des emojis.
  • TBindNavigator permet maintenant de configurer des conseils et des styles spécifiques pour chaque bouton, en utilisant les sous-propriétés de la propriété ButtonsOptions.

Autres améliorations relatives aux applications mobiles

  • Prise en charge du mode plein écran pour iOS.
  • RAD Studio transmet maintenant les paramètres de démarrage iOS, qui peuvent être utilisés pour les interactions avec d'autres frameworks et applications (voir TApplicationEvent; FinishedLaunching).
  • Problème de dictée vocale résolu sur iOS.
  • Ajout de la possibilité de désactiver le rebond dans une vue liste sur iOS, à l'aide de la nouvelle propriété TListView.Bounces. Cette propriété permet à un développeur de contrôler la possibilité de faire défiler le contenu au-delà de ses limites. Cela concerne uniquement l'écran tactile.

Base de données et FireDAC

Cette partie du produit englobe de nombreuses améliorations allant de la prise en charge étendue des champs de base de données Unsigned Big Integer (grand entier non signé) à une plus grande flexibilité lors du déplacement d'un champ depuis l'éditeur de champs vers une fiche visuelle.

Cette section répertorie les mises à jour et les améliorations apportées aux composants Database et FireDAC.

RTL des bases de données

Cette section répertorie les mises à jour et les améliorations apportées à la RTL des bases de données :

  • Ajout d'un nouveau type de champ à TFieldType pour prendre en charge les champs Unsigned Big Integer (grand entier non signé). FireDAC prend maintenant en charge le nouveau type TFieldType.ftLargeUint via les pilotes Oracle et MySQL, ainsi que le TFDMemTable.
  • Ajout d'une nouvelle propriété EllipsisPosition au composant TDBText VCL, qui fonctionne de la même façon qu'avec TLabel.
  • Ajout de nouvelles propriétés DataSet pour accéder aux objets DataSource attachés :
  • Ajout d'une procédure DrpCtrls.RegisterFieldControl surchargée qui permet une configuration personnalisée du contrôle personnalisé créé. Voir l'exemple ci-dessous :
uses DrpCtrls;
  RegisterFieldControl(TIntegerField, 'TDBLabeledEdit',
    procedure (Control: TControl; DataSource: TDataSource; Field: TField)
    var
      LEdit: TDBLabeledEdit;
    begin
      LEdit := Control as TDBLabeledEdit;
      LEdit.DataSource := DataSource;
      LEdit.DataField := Field.FullName;
      LEdit.EditLabel.Caption := Field.DisplayLabel;
    end);

FireDAC

Cette release intègre les mises à jour et améliorations suivantes de FireDAC :

  • Ajout de la prise en charge des opérations parallèles dans TFDFBBackup pour Firebird 5.0+. ParallelWorkers (TFDIBBackup, TFDIBRestore, et TFDIBValidate) spécifie le nombre de processus de travail parallèles utilisés par un gestionnaire de service pour exécuter les tâches requises.
  • TFDMemTable prend en charge RecsSkip et RecsMax. Les paramètres RecsSkip et RecsMax sont appliqués quand la propriété Filter a la valeur True.
  • Ajout d'une plus grande flexibilité à FireDAC lors du renvoi de données textuelles pour les types tableau PostgreSQL. Voici deux façons d'afficher les champs relacl sous forme de texte lisible :
    • transtyper un champ - relacl::TEXT
    • définir ResourceOptions.DirectExecute sur True. Ensuite, FireDAC en interne utilisera le format textuel de PostgreSQL pour les ensembles de résultats.
  • Conversion en méthodes virtuelles de certaines méthodes en relation avec les transactions dans les classes TFDCustomConnection et TFDCustomTransaction pour faciliter la personnalisation du comportement des classes dérivées.
  • TFDMemTable permet le chargement du JSON standard (non généré en enregistrant les données à partir de FireDAC) en utilisant le nouveau format TFDStorageFormat.sfFreeFormJSON.
    Exemples :
FDMemTable1.LoadFromFile('test.json', sfFreeFormJSON);
FDMemTable1.SaveToFile('test2.json', sfFreeFormJSON).
  • Pour les connexions Oracle, RAD Studio Florence 13.0 ajoute la prise en charge de l'authentification OAuth 2.0 pour le composant FireDAC TFDConnection dans Delphi.

DataSnap

Cette release ajoute des événements de validation de certificat à TFDConnection et TDSClientCallbackChannelManager, qui peuvent utiliser HTTPS comme protocole de transport :

Mises à jour des bibliothèques client Web

La release RAD Studio Florence 13.0 apporte les mises à jour suivantes :

Mises à jour relatives à WebBroker

La release RAD Studio 13.0 Florence offre plusieurs extensions à WebBroker, y compris une gestion des sessions HTTP moderne et intégrée, une intégration Apache améliorée, la prise en charge des serveurs Web Nginx, une journalisation améliorée et une intégration WebStencils facile, ce qui rend les applications Web à la fois plus simples à développer et plus puissantes.

Authentification et gestion des sessions

Cette release introduit une nouvelle classe, TWebSessionManager, qui gère une liste d'objets TWebSession. Il s'agit d'un composant non visuel qui offre un ensemble de propriétés au moment de la conception.

La propriété TWebRequest.Session renvoie la session de la requête. Les objets personnalisés stockés dans TWebSession.DataVars sont maintenant directement disponibles dans les scripts WebStencils.

L'authentification des sessions peut être intégrée à la gestion des sessions et peut être basée sur une logique différente.

Un algorithme “sentinelle” est intégré à TCustomWebDispatcher.DispatchAction, et délègue le traitement à IWebSessionManager ou IWebAuthenticator.

Vous trouverez ci-dessous d'autres changements apportés à la prise en charge des bibliothèques :

  • Gestion des sessions :
    • Ajout du TWebSessionManager qui gère une collection d'objets TWebSession. Il s'agit d'un composant non visuel avec des propriétés de conception ayant les configurations suivantes : IdLocation, IdName, Scope (ssUnlimited, ssUser et ssUserAndIP), Timeout et SharedSecret.
    • Ajout du TWebSession, qui représente des sessions individuelles.
  • Authentification :
    • Ajout du TWebBasicAutenticator, qui implémente l'authentification de base HTTP.
    • Ajout du TWebFormsAuthenticator, qui implémente l'authentification basée sur des fiches HTML.
  • Authorisation :
    • TWebAuthorizer fournit un contrôle d'accès basé sur les rôles via des zones d'autorisation.
    • Authorization vérifie les rôles des utilisateurs conformément aux exigences de la zone. Utilisez l'événement OnAuthorize pour la logique d'autorisation personnalisée. En cas d'échec de l'autorisation, une redirection est effectuée vers UnauthorizedURL ou l'état 403 est renvoyé.
  • Intégration WebStencils :
    • Les sessions s'intègrent aux modèles WebStencils suivants :
      • @session.xxx : accès aux propriétés de l'objet session.
      • @session.DataVars : accès aux variables personnalisées des sessions.
      • @session.UserHasRole(<string>) : vérifie si un utilisateur a un rôle spécifique.
      • @<n> : accès direct aux objets stockés dans DataVars avec la clé <n>.
  • Nouvelles propriétés de requêtes :
    • TWebRequest.AuthUserName : nom d'utilisateur authentifié.
    • TWebRequest.AuthMethod : méthode d'authentification utilisée.
    • TWebRequest.Session : objet session de la requête en cours.

Pour utiliser ces composants, ajoutez-les au module Web (un seul TWebSessionManager et un seul authentificateur par module). Les composants sont automatiquement détectés par la sentinelle du répartiteur. Le traitement s'effectue comme suit : Gestion des sessions > Authentification > Autorisation > Actions de répartition.

Les sessions sont automatiquement créées quand TWebSessionManager est présent. L'authentification est obligatoire lorsqu'un composant authentificateur est ajouté (utilisez TWebAuthorizer pour contrôler ce comportement). Tous les composants fonctionnent ensemble via des interfaces (IWebSessionManager, IWebAuthenticator, IWebAuthorizer).

Sortie d'historique

Une nouvelle méthode TWebApplication.Log intégrant la gravité, le message et les paramètres est prise en charge sur toutes les plates-formes et utilise le système d'historique approprié du serveur Web :

  • Apache : fichier journal du serveur Apache, par défaut logs\error.log.
  • ISAPI : journal d'événements Windows (eventvwr.msc) : journaux Windows.
  • CGI : fichier ayant le nom TCGIApplication.LogFileName.
  • FastCGI : fichier journal du serveur HTTP (Apache, nginx), par défaut logs\error.log.

TWebRequest étendu

Cette release a étendu le composant TWebRequest comme suit :

  • Méthode ExtractAllHeaders, propriété AllHeaders
  • SessionID
  • AuthUserName et AuthMethod

Apache Config

Cette release introduit Apache Config, un système de configuration textuel et extensible. Voici un exemple de configuration.

Exemple :

MyEnabled On
MyFolder "c:/temp"
MyMimeTypes image/bmp text/html
<Location /qwe/asd>
  MyEnabled On
  MyFolder "c:/temp/asd"
</Location>
<Location /qwe/asd/zxc>
  MyMimeTypes image/png image/jpeg text/html
  MyRole admin
</Location>

Permet le mappage d'un enregistrement Delphi sur des directives Apache (types de champs non gérés uniquement, y compris string[n]) :

  • Utilisez des attributs WebHTTPMethod pour personnaliser le mappage.
  • Utilisez Web.ApacheApp.InitConfig pour recenser le type d'enregistrement. Appelez-le juste après InitApplication.
  • Utilisez Web.ApacheHTTP. TApacheRequest.GetConfig pour obtenir une instance d'enregistrement avec des valeurs spécifiques à une URL de requête.
  • Utilisez Web.HTTPDMethods.IHTTPDConfigAdaptor, THTTPDCustomConfigAdaptor<T> pour personnaliser l'initialisation et la redéfinition des enregistrements.

L'expert WebBroker permet d'inclure un exemple de configuration Apache.

Attention: Cette fonctionnalité n'est pas prise en charge dans C++ Builder.

Prise en charge de FastGCI et NGINX

Cette release intègre la prise en charge de FastCGI pour nginx. Cette interface permet d'accéder à un module Web exécuté sous forme d'application distincte.

Plus de détails ci-dessous :

  • Ajout de nouvelles unités Web.FastCGIApp.pas, Web.FastCGIHTTP.pas et Web.FCGI_Protocol.pas.
  • FastCGI est pris en charge par nginx et Apache.
  • Ajout de nouvelles classes : TFastCGIApplication, TFastCGIRequest et TFastCGIResponse.
  • Ajout de la prise en charge de FastCGI à l'expert WebBroker.

Pour recenser une application avec nginx, ajoutez les lignes suivantes à conf\nginx.conf :

# 1) "location" mask, fastcgi_param directives are environment dependent
# 2) Update the fastcgi_pass directive when the host or port is different
# 3) This will redirect the request "GET http://localhost:8000/fcgi/" 
#    to the FastCGI server.

        location ~ ^/fcgi(.*)$ {
            include fastcgi_params;

            fastcgi_param SCRIPT_NAME /fcgi;
            fastcgi_param PATH_INFO   $1;
            fastcgi_param SCRIPT_FILENAME dummy;
            fastcgi_param PATH_TRANSLATED $document_root$1;
            fastcgi_keep_conn on;

            fastcgi_pass 127.0.0.1:9000;
        }

Améliorations relatives à WebStencils

WebStencils étend considérablement les technologies Web existantes dans RAD Studio en fournissant des scripts côté serveur et en transformant RAD Server d'un moteur de service Web en un outil de site Web et de service Web.

La section suivante décrit les mises à jour de WebStencils introduites dans RAD Studio Florence 13.0.

  • Implémentation de la propriété du mécanisme de liste blanche pour empêcher l'exposition d'informations sensibles comme les chaînes de connexion de base de données ou toute autre information sensible. Découvrez comment personnaliser la liste blanche ici.
  • Introduction de la possibilité d'ajouter des variables supplémentaires au moteur de script à l'extérieur des modèles d'objet et d'ensemble de données.
  • La notation WebStencils @ pour un ensemble de données permet maintenant d'accéder aux propriétés de l'ensemble de données, en plus du champ. Le niveau d'accès au champ peut être contrôlé à l'aide d'une propriété spécifique (TWebStencilsProcessor.Whitelist) pour empêcher l'accès non autorisé aux informations internes. Vous trouverez plus d'informations ici.
  • WebStencils s'intègre maintenant automatiquement aux sessions Web lorsqu'elles sont disponibles. Vous trouverez plus d'informations ici.
  • WebStencils prend maintenant en charge la propagation du contenu @ExtraHeader via des hiérarchies de dispositions imbriquées. Vous trouverez plus d'informations ici.
  • Ajout d'améliorations relatives aux mots clés WebStencils en donnant au mot-clé @page deux valeurs supplémentaires, comme @page.request_path et @page.request_segment.

Améliorations relatives à RAD Server

RAD Studio 13.0 rend l'utilisation de la documentation API Swagger plus flexible, ajoute la prise en charge multi-client de RAD Server en tant qu'option pour intégrer une configuration spécifique au client, et introduit un moyen simple et direct d'implémenter le versionage des API.

La section suivante répertorie les améliorations apportées à RAD Server dans RAD Studio Florence 13.0.

  • Documentation API Swagger de RAD Server : les paramètres de schémas et de références pour les définitions Swagger et OpenAPI sont maintenant facultatifs.
  • Ajoute l'option permettant de renvoyer un en-tête personnalisé dans le document de réponse Swagger en utilisant le nouvel attribut EndPointResponseHeaderAttribute.
  • Cette release ajoute à la prise en charge multi-client (multi-tenancy) de RAD Server une façon d'intégrer une configuration spécifique au client (comme des connexions aux bases de données), à configurer avant l'exécution d'une logique métier quelconque. Plus spécifiquement, les éléments suivants ont été ajoutés :
    • Variables serveur préfixées par le client (tenant) : la spécification d'une variable préfixée par le client garantit l'utilisation de sa valeur. Sinon, une variable sans préfixe du client est utilisée.
    • Une interface IEMSResourceInterceptor avec des méthodes BeforeRequest et AfterRequest.
  • RAD Server prend maintenant en charge l'exportation de plusieurs versions de la même fonction de l'API, ce qui permet aux clients d'invoquer la version la plus récente de l'API REST ou une version plus ancienne en utilisant le nouvel attribut ResourceVersion. Les nouvelles valeurs de TEMSVersionStatus sont les suivantes :
    • Experimental - utilise ver/myapi/… comme URL de base et ajoute “Experimental” à la description Swagger.
    • Active - utilise ver/myapi/… comme URL de base.
    • Default - utilise ver/myapi/… et myapi/… comme URL de base.
    • Deprecated - utilise ver/myapi/… comme URL de base et ajoute “Deprecated” à la description Swagger.

Voir aussi

Références

  1. L'intervalle de rendu des animations a été supprimé pour qu'il corresponde maintenant au taux de rafraîchissement actuel de l'écran. L'application peut s'exécuter sur des périphériques équipés d'un écran de 60 Hz, 90 Hz ou 120 Hz, et le défilement sera automatiquement plus fluide, sans ajustement manuel de l'intervalle. Les animations exécutées seront constamment mises à jour (recalculées) sur chaque nouvelle trame de l'écran.