12 Athens - Release 2
Remonter à Accueil
Remonter à Nouveautés des releases précédentes
Une mise à jour de RAD Studio 12.2 Athens est disponible (12 septembre 2024).
- Voir ce qui était inclus dans 12 Athens
- Voir ce qui était inclus dans 12 Athens - Release 1
RAD Studio 12 Athens - Release 2 (12.2) est disponible. RAD Studio 12.2 complète les fonctionnalités de RAD Studio 12 et 12.1 et comporte de nouvelles fonctionnalités ainsi que des améliorations de fonctionnalités existantes.
Les améliorations de RAD Studio 12.2 sont fortement axées sur la qualité, tout en incluant des améliorations notables dans la chaîne d'outils C++ et l'EDI. Les principales améliorations de qualité et de fonctionnalités se répartissent comme suit :
- Chaîne d'outils Clang C++
- Compilateurs binaires Delphi 64 bits
- EDI
- Visual Assist
- Audit de code intelligent
- ToolsAPI
- Débogueur
- RAD Studio WebStencils
- Bibliothèques
Sommaire
- 1 Principales améliorations de 12.2 selon les différentes parties du produit
- 1.1 Chaîne d'outils Clang C++
- 1.2 Compilateurs Delphi 64 bits
- 1.3 Améliorations de l'EDI
- 1.3.1 Mode Concentration
- 1.3.2 Annotations de la barre de défilement de l'éditeur
- 1.3.3 Interface utilisateur de l'éditeur
- 1.3.4 Mise en surbrillance des modifications dans la fenêtre Pile d'appels et d'autres fenêtres
- 1.3.5 Qualité HighDPI : barres d'outils et concepteur
- 1.3.6 Améliorations du LSP Delphi
- 1.3.7 Améliorations supplémentaires de l'EDI
- 1.4 Visual Assist
- 1.5 Audit de code intelligent RAD Studio
- 1.6 ToolsAPI
- 1.7 Débogueur
- 1.8 WebStencils
- 1.9 Améliorations relatives aux bibliothèques
- 1.9.1 Améliorations de RAD Server
- 1.9.2 Améliorations relatives à la RTL
- 1.9.3 Améliorations relatives à la VCL
- 1.9.4 Améliorations relatives à la FMX
- 1.9.5 Mises à jour du lieur iOS et macOS
- 1.9.6 Améliorations relatives aux outils Android
- 1.9.7 Bibliothèques relatives aux bases de données et à Internet
- 1.10 Voir aussi
Principales améliorations de 12.2 selon les différentes parties du produit
Les sections suivantes présentent les différentes améliorations de 12.2 pour chaque partie du produit.
Chaîne d'outils Clang C++
RAD Studio version 12.2 est fortement axé sur l'amélioration de la chaîne d'outils Clang Win64. On peut citer notamment la nouvelle fonctionnalité de création de packages C++ et des mises à jour importantes concernant les paramètres du lieur.
Packages dynamiques
Depuis RAD Studio version 12.2, il est possible de lier les applications modernes C++ Windows 64 bits à des packages dynamiques. Les packages utilisés par C++ peuvent être créés aussi bien par Delphi que par C++.
Les utilisateurs peuvent créer un nouveau projet Package C++ (ou ouvrir un projet existant), le configurer pour la plate-forme Windows 64 bits (Moderne) et activer l'option Lier avec les packages d'exécution.
Consultez les pages suivantes pour des informations complémentaires et des notes techniques :
- Packages pour la chaîne d'outils C++
- Utilisation des packages et des composants
- Initialisation et finalisation des unités
Liaison de RTL dynamiques vs Liaison de RTL statiques
Par défaut, la nouvelle chaîne d'outils utilise les liaisons dynamiques, alors que les outils Borland, CodeGear et Embarcadero utilisaient par défaut la liaison statique. Les projets C++Builder construits se conformeront aux comportements par défaut attendus selon que la liaison statique ou la liaison dynamique est spécifiée. La version 12.2 garantit que RAD Studio reste compatible avec les paramètres par défaut de MinGW.
Voir Utilisation de LLD depuis la ligne de commande pour comprendre le comportement par défaut.
Builds multi-coeurs exploitant toutes les ressources du processeur
Depuis 12.2, les builds multi-coeurs exploitant toutes les ressources du processeur sont maintenant pris en charge sur Windows 64 bits (Moderne) avec l'option --jobs
. Vous obtenez un temps de compilation extrêmement rapide : environ 40 % plus rapide que l'ancienne version sur des processus parallèles.
C++Builder 12.2 intègre les nouveaux comportements suivants :
- La compilation groupée (batch) est activée (
on
) par défaut. - Prise en charge de
--jobs
depuis l'EDI et MSBuild.
Cela signifie que, par défaut, les utilisateurs peuvent bénéficier de la compilation parallèle lorsqu'ils compilent une app Windows 64 bits (Moderne) depuis l'EDI ou depuis un système d'intégration continue utilisant MSBuild. Par défaut, tous les coeurs du processeur sont utilisés.
Paramètres du lieur
De nouveaux paramètres pour BCC64X sont intégrés à l'interface utilisateur de l'EDI de RAD Studio 12.2. Il est toujours possible de transmettre d'autres paramètres via la ligne de commande.
Suite à la mise à jour des paramètres du lieur, les paramètres ilink suivants ne sont plus visibles dans la nouvelle plate-forme Win64 : liaison incrémentale, affichage de la durée de la liaison, TLS rapide, effacement de l'état avant la liaison, et liaison sensible à la casse.
Le lieur prend en charge les indicateurs multiples pour optimiser la taille du fichier. Cela inclut la possibilité d'inclure ou d'exclure des sections, d'aligner les fichiers et les objets, de spécifier des technologies comme DEP et ASLR, d'indiquer la taille du tas et de la pile, et de spécifier une liaison commentée.
L'indicateur Différer le chargement des DLL permet de retarder le chargement d'une liste de DLL ; c'est l'équivalent de la commande --delayload=..
.
Consultez la documentation sur Paramètres du lieur pour en savoir plus.
Améliorations notables
- Windows 64 bits (Moderne) est maintenant la plate-forme par défaut pour les nouveaux projets VCL, FMX, DLL, Package, Bibliothèque statique et Console.
- Les options Compiler en assembleur et Préprocesseur fonctionnent depuis l'EDI pour cette chaîne d'outils.
- Les packages sont maintenant configurés par défaut pour Win32 plutôt que pour Win64X, parce qu'ils sont généralement utilisés par des composants internes et dans le cadre d'installations au sein de l'EDI.
- Win64X prend en charge l'indicateur Terminal Server, et le débogueur Win64X affiche maintenant des packages dans la liste de modules une fois ceux-ci chargés.
- Les fichiers de configuration BCC64x peuvent utiliser des chemins à racine préfixés par
@
. - Les DLL peuvent utiliser le traditionnel point d'entrée des DLL (DLLMain) et être directement liées à une DLL sans qu'il soit nécessaire de créer une bibliothèque d'importation.
- La recherche de chemin de bibliothèque fonctionne en utilisant la commande :
-
bcc64x -LC:\MyLibs File1.lib File2.lib
.
Compilateurs Delphi 64 bits
Les versions Enterprise et Architect de RAD Studio version 12.2 intègrent des versions 64 bits des compilateurs Delphi. La nouvelle fonctionnalité est appelée l'architecture d'outils 64 bits. Grâce à ces outils 64 bits, les utilisateurs bénéficient d'un plus grand espace mémoire pour le compilateur, et peuvent par conséquent compiler des applications plus volumineuses sans rencontrer de problèmes de mémoire.
Voici les nouveaux outils 64 bits :
- Compilateurs cibles Delphi Windows 32 bits
- Compilateurs cibles Delphi Windows 64 bits
Si vous choisissez de compiler avec MSBuild, vous devez spécifier la version des outils (y compris les compilateurs en ligne de commande) dans le champ Architecture d'outil préférée dans les paramètres de configuration du compilateur Delphi de la boîte de dialogue Options de projet de RAD Studio.
Les compilateurs en ligne de commande Windows de Delphi dcc32.exe
et dcc64.exe
se trouvent par défaut dans le dossier bin64 de l'installation de RAD Studio (C:\Program Files (x86)\Embarcadero\Studio\23.0\bin64
. Les versions 32 bits du compilateur en ligne de commande se trouvent dans le dossier bin du produit.
DelphiLSP 64 bits
Les versions Enterprise et Architect de RAD Studio version 12.2 incluent une version 64 bits du moteur DelphiLSP. Pour activer la version 64 bits du serveur, accédez à Outils > Options > Editeur > Langage et cliquez sur l'onglet Audit de code. Choisissez Delphi dans la liste déroulante et sélectionnez la case à cocher Utiliser la version 64 bits du serveur.
Améliorations de l'EDI
Voici les différentes améliorations de l'EDI.
Mode Concentration
RAD Studio 12.2 introduit une fonctionnalité Mode Concentration qui permet aux développeurs de se focaliser pleinement sur la programmation. Au premier affichage, tous les éléments de l'interface utilisateur sont cachés à l'exception d'un éditeur de code central. Vous pouvez toutefois ajouter plusieurs fenêtres d'édition côte à côte, et retirer des éléments d'interface utilisateur. Le nom du fichier est affiché en haut de l'éditeur, des boutons sont disponibles pour fermer cette fenêtre ou la fractionner vers la droite ou la gauche. L'éditeur dispose par ailleurs de plusieurs onglets, et plusieurs fenêtres d'édition peuvent être affichées.
Consultez la page Mode Concentration. Pour savoir comment utiliser et activer le mode Concentration.
Annotations de la barre de défilement de l'éditeur
La barre de défilement de l'éditeur de code affiche maintenant les informations suivantes :
- Audit d'erreur et erreurs de compilation
- Résultats de la recherche
- Signets
- Lignes modifiées
Vous pouvez ainsi rapidement visualiser quelles sont les parties du document qui nécessitent votre attention ou qui sont susceptibles de vous intéresser.
L'exemple ci-dessus présente les annotations sous forme de lignes horizontales apparaissant sur la barre de défilement pour éviter toute superposition avec le code.
Interface utilisateur de l'éditeur
Les numéros de ligne de l'éditeur peuvent maintenant apparaître à gauche de la gouttière de l'éditeur. Des éléments importants de l'interface utilisateur comme les points d'arrêt sont représentés au plus près du code.
Les barres de défilement des fenêtres de l'éditeur peuvent être affichées selon les couleurs de l'éditeur, ce qui signifie que leur couleur peut être modifiée pour correspondre à celle du thème de couleurs de l'éditeur au lieu du thème de couleurs de l'EDI. Ce paramétrage est disponible depuis Options > Editeur > Barre de défilement > Appliquer les couleurs du thème de l'éditeur à la barre de défilement.
Mise en surbrillance des modifications dans la fenêtre Pile d'appels et d'autres fenêtres
La mise en évidence de la syntaxe est aussi utilisée dans les fenêtres et situations suivantes :
- Pile d'appels
- Variables locales
- Structure
- Partout où une déclaration de méthode apparaît en dehors de l'éditeur (fenêtre Achèvement de code ou listes déroulantes en haut de l'éditeur).
Qualité HighDPI : barres d'outils et concepteur
La release RAD Studio 12.2 comprend des améliorations majeures en matière d'affichage HighDPI.
- Conception des cadres et mise à l'échelle : les cadres VCL lorsqu'ils sont placés ou imbriqués dans d'autres cadres sont correctement mis à l'échelle dans le concepteur HighDPI.
- Barres d'outils et menu principal : le comportement du menu principal et des barres d'outils de l'EDI a été amélioré dans cette version, concernant notamment leur affichage et l'ajustement de leur taille afin de corriger un comportement étrange dans les versions antérieures.
Améliorations du LSP Delphi
Des améliorations majeures ont été apportées au moteur DelphiLSP, en particulier pour les conseils et la navigation, et dans la section interface d'une unité. Voici quelques-unes de ces améliorations :
- Conseils de symboles : les conseils sont disponibles pour la plupart des symboles de l'interface d'une classe, les champs y compris.
- Variables et constantes locales : la définition des variables et constantes locales peut maintenant être résolue en faisant glisser la souris au-dessus de ces éléments.
- Déclarations de type avancées : le moteur résout maintenant dans certains cas les déclarations de type avancées.
Cette version résout aussi des problèmes relatifs aux unités à chaînes multilignes : le gestionnaire de code interne (PASMGR) n'était pas pris en charge par cette fonctionnalité.
Améliorations supplémentaires de l'EDI
Les améliorations de l'EDI suivantes ont été apportées dans RAD Studio release 12.2 :
- Le package Fonts du programme d'installation ajoute désormais la fonte Intel One Mono. Cette fonte a pour objectif de faciliter l'accessibilité et la lecture pour les personnes présentant une déficience visuelle.
- Dans les vues fractionnées de l'éditeur, les panneaux d'outils ancrés sur le côté conservent maintenant la même taille lorsqu'ils sont redimensionnés horizontalement. De nouveaux raccourcis ont également été ajoutés pour les vues fractionnées.
- L'audit d'erreur dans le volet Structure affiche maintenant les caractères internationaux correctement.
- La boîte de dialogue du collecteur de plantages (Crash Collector) est maintenant reliée à la dernière version de Quality Portal.
Visual Assist
RAD Studio 12.2 comporte trois nouvelles fonctionnalités pour VA, qui améliorent la chaîne d'outils C++. Des améliorations de performances ont été rapportées dans l'analyseur et dans la fonction Chercher les références.
Dans cette release, la DLL de Visual Assist a été mise à jour pour correspondre à la version utilisée dans Assist version 2024.6. Cela inclut toutes les améliorations de performances apportées à ce jour en 2024, à la fois pour le temps d'analyse initial et pour des fonctionnalités comme Chercher les références, Renommage par refactoring, etc. Vous obtenez souvent une amélioration de vitesse de 8 à 10 fois pour l'analyse initiale et de jusqu'à 4 fois pour les autres fonctionnalités.
La release 12.2 comprend les fonctionnalités suivantes :
- Extraire une méthode : déplace un segment de code dans une méthode distincte et le remplace par un appel à la méthode extraite. Il est possible d'extraire plusieurs lignes ou un seul segment de code.
- Introduire une variable : définit une variable temporaire de la portée la plus interne de la sélection, l'initialise avec le code remplacé, le cas échéant, et remplace une ou plusieurs occurrences de l'expression par la variable temporaire.
- Créer à partir de l'utilisation : permet au développeur de saisir le nom d'un symbole non défini et de l'introduire sans quitter la position en cours. Ce style de développement descendant fonctionne pour de nombreuses cibles, notamment les énumérations, les variables, les fonctions, les méthodes, les fichiers en-tête, etc.
Audit de code intelligent RAD Studio
L'EDI de RAD Studio 12.2 intègre un nouvel outil pour les LLM appelé Audit de code intelligent. Première incursion de RAD Studio dans le domaine de l'IA, cette fonctionnalité fournit un support initial qui sera développé dans les futures versions de RAD Studio.
La prise en charge de l'IA est désactivée par défaut et doit être activée manuellement, puis configurée, pour pouvoir être utilisée.
L'audit de code intelligent est l'architecture ouverte de prise en charge de l'IA par RAD Studio avec une nouvelle interface ToolsAPI qui vous permet d'écrire des plugins pour des fournisseurs d'IA spécifiques et d'utiliser l'IA depuis l'EDI. Dans cette version, RAD Studio inclut :
- Moteur d'IA de base et ToolsAPI
- Nouveaux éléments intégrés à l'EDI :
- Fenêtre de chat IA
- Commandes de menu de l'éditeur permettant d'invoquer des opérations d'IA
- Options de configuration pour les moteurs d'IA
- Prise en charge prête à l'emploi pour les LLM suivants
- OpenAI (en ligne)
- Gemini de Google (en ligne)
- Claude d'Anthropic (en ligne)
- Ollama de Meta (hors ligne)
- Plugins d'IA personnalisés
RAD Studio vous permet de personnaliser l'intégration de l'interface utilisateur, en plus d'ajouter des moteurs d'IA supplémentaires.
Contrôle des informations personnelles
RAD Studio vous permet de configurer et de contrôler pleinement vos informations personnelles de différentes façons :
- Si vous faites confiance aux LLM (grands modèles de langage), vous pouvez activer la fonctionnalité d'IA au moyen d'un seul paramètre. La fonctionnalité est désactivée par défaut.
- Chaque moteur d'IA peut être activé ou désactivé.
- Sélectionnez le moteur utilisé par défaut par les différents éléments d'interface utilisateur (chat et menu de l'éditeur).
- Les clés API sont chiffrées.
- Vous avez la possibilité d'utiliser un moteur local, hors ligne.
Configuration de l'audit de code intelligent
La fonctionnalité Audit de code intelligent peut être configurée dans la boîte de dialogue Options des outils sous l'entrée Editeur> AIEngine. Pour explorer ce sujet, consultez la page Options de l'audit de code intelligent.
Eléments de l'interface utilisateur de l'audit de code intelligent
L'EDI met à disposition les outils d'IA de deux façons différentes :
- Fenêtre de chat générale : dans laquelle vous tapez un prompt personnalisé.
- Menus de l'éditeur : ils vous permettent d'invoquer des opérations spécifiques sur le code source actuellement sélectionné.
Pour de plus amples informations, consultez la page Eléments de l'interface utilisateur de l'audit de code intelligent.
ToolsAPI
IA et Audit de code intelligent
Dans 12.2, la prise en charge de l'audit de code intelligent (IA) dans l'EDI fournit un ensemble de services EDI, comme une fenêtre de chat ou la traduction de langues. Voici ses deux principales fonctions :
- Permettre à toutes les IA d'être un backend. RAD Studio fournit quatre implémentations (OpenAI, Claude, Gemini et Ollama), mais les utilisateurs peuvent ajouter leur propre implémentation.
- Ecrire des plugins qui utilisent la solution d'IA configurée par l'utilisateur. Une fois le fournisseur d'IA configuré, tous les futurs plugins installés pourront l'utiliser.
Utilisation des services d'IA
Découvrez comment Créer votre plugin d'IA, comment Implémenter un backend d'IA ou comment démarrer en suivant une démo :
- Démo du moteur d'IA
-
C:\Users\Public\Documents\Embarcadero\Studio\23.0\Samples\Object Pascal\ToolsAPI\AIEngine Demos\CohereAI_Plugin
- Démo de l'interface utilisateur
-
C:\Users\Public\Documents\Embarcadero\Studio\23.0\Samples\Object Pascal\ToolsAPI\AIEngine Demos\AI_Consumer_CodeSample
ToolsAPI : mode Concentration
Le mode Concentration a été implémenté pour que seul l'éditeur de code soit affiché. Pour obtenir d'autres vues, vous pouvez implémenter GetDisplayInFocusMode.
Annotations de la barre de défilement de l'éditeur
Vous pouvez désormais ajouter vos propres annotations de la barre de défilement. Elles se dessinent généralement comme les nôtres (marqueurs de ligne horizontale), mais vous pouvez également dessiner tout ce que vous voulez, y compris des symboles personnalisés. Vos annotations de la barre de défilement enregistrées seront visibles sur la page Barre de défilement de la boîte de dialogue Options, tout comme les nôtres.
Découvrez comment les implémenter dans notre documentation ToolsAPI.Editor.
Améliorations relatives à ToolsAPI.Editor
Les problèmes suivants relatifs à l'API dans ToolsAPI.Editor ont été résolus :
- L'éditeur reflète désormais correctement l'état de la mise en surbrillance de la ligne courante lorsque l'option correspondante est activée ou désactivée.
- L'état des cellules indique maintenant correctement si une cellule comporte des erreurs, des avertissements ou des conseils et si elle est désactivée (ifdef-ed out).
- Le paramètre du contexte de dessin inclut maintenant la taille de la cellule, qui a été ajoutée à la nouvelle propriété INTACodeEditorPaintContext290.CellSize.
- L'état des lignes indique maintenant correctement si une ligne a été ou non élidée.
Débogueur
Cette version est axée sur l'amélioration de certains des principaux problèmes relatifs au débogueur.
Variables inline Delphi
RAD Studio version 12.2 met à jour le débogueur pour gérer correctement les variables inline répétées qui portent le même nom.
Vous trouverez de plus amples informations sur notre page Variables inline.
Gestion des erreurs
Cette version améliore la gestion des erreurs du débogueur afin d'indiquer quand LLDB se bloque avec un nouveau message d'erreur ‘Erreur fatale du débogueur : blocage du kernel de débogage’
. Dans cette situation, le processus débogué se terminera.
Auparavant, un message ‘Pas de réponse du kernel de débogage’
s'affichait. Ce message peut toujours s'afficher, mais RAD Studio parvient mieux à faire la différence entre les cas où le débogueur ne répond pas (éventuellement parce que le traitement prend du temps) et les cas où il se bloque.
Débogueur Windows 64 bits Moderne
La chaîne d'outils Win64 C++ Moderne possède des formateurs pour les types suivants :
Delphi | C++ |
---|---|
|
Le débogueur Win64X affiche maintenant des packages dans la liste de modules une fois ceux-ci chargés.
Autres améliorations relatives au débogueur
Les corrections et améliorations suivantes ont été apportées à RAD Studio release 12.2 :
- Mise à jour de PAServer vers une nouvelle version.
- Lors de la construction d'une application C++ (pour toutes les plates-formes), vous pouvez maintenant définir {{code|NO_ALWAYS_INLINE}} pendant la construction. Vous évitez ainsi le pas à pas dans le code système, comme c'est le cas pour les implémentations de chaînes C++.
- Le débogage des packages RAD Server 64 bits est maintenant disponible.
- Lorsque vous utilisez Attacher au processus sur une application Win64 (Delphi) utilisant des packages, les symboles sont maintenant chargés correctement.
- Le délai d'attente dans la boîte de dialogue
‘Pas de réponse du kernel de débogage’
a été étendu à 30 secondes. - Le débogage de l'EDI sur une VM, comme Parallels ARM, débogue l'EDI et les packages correctement.
- L'ordre des notifications ThreadCreated et ThreadExited devrait maintenant être totalement cohérent et fourni dans l'ordre dans lequel elles se sont produites.
- Les barres obliques dans la boîte de dialogue Exécuter > Paramètres fonctionnent correctement.
- Les problèmes de dessin dans Variables locales et d'autres fenêtres ont été résolus.
WebStencils
RAD Studio 12.2 introduit WebStencils, une intégration basée sur des scripts côté serveur et un traitement des fichiers HTML avec les technologies WebBroker et RAD Server. Cette fonctionnalité permet de développer des sites web modernes et professionnels basés sur n'importe quelle bibliothèque JavaScript et alimentés par les données extraites et traitées par une application RAD Studio côté serveur. Elle est également appelée moteur de templates, et son implémentation est similaire au traitement ASP.NET Razor.
WebStencils a été conçu pour faciliter l'adoption des technologies Web (WebBroker, DataSnap, RAD Server) en fournissant des scripts côté serveur. Il est ainsi possible de créer des pages HTML avec des outils standard et d'utiliser n'importe quelle bibliothèque CSS et JavaScript tout en ajoutant des données provenant des pages générées à partir de l'application (il peut s'agir par exemple du résultat d'une requête de base de données).
Le module WebStencils facilite le développement de sites Web conçus pour la navigation (blogs, catalogues en ligne, systèmes de commande en ligne, les documentations telles que les dictionnaires ou un wiki). Il peut servir de base à la bibliothèque HTMX pour le développement de sites web. Ces deux technologies se complètent parfaitement. Les pages HTMX bénéficient de la génération de code côté serveur et se connectent à des serveurs REST pour les mises à jour de contenu. Les technologies web Delphi offrent un niveau de qualité élevé pour la génération de pages et la création d'API REST.
Historiquement, les bibliothèques WebBroker et DataSnap utilisaient le composant PageProducer et des composants dérivés pour personnaliser le code HTML renvoyé par une application serveur web. Cette fonctionnalité très limitée permet de proposer un template partagé pour les pages de sites web.
De même, la notation basée sur des balises (<#custom attrib="value">
) n'est pas très facile à utiliser.
La balise précédente deviendra @custom.value
. Le moteur de scripts a pour objectif de réduire au minimum l'accès aux données, les boucles, les instructions conditionnelles, et de fournir un moyen de fusionner un template avec une page donnée.
Alors que l'architecture globale de WebStencils est axée sur le développement web et la génération de code HTML, le moteur de templates peut être utilisé dans de nombreux scénarios, par exemple lors de l'exportation de fichiers de données dans des formats comme XML, JSON, YAML, etc., lors de la production de texte et de documents fusionnant un squelette de base avec des données et lors du traitement des données en général.
Vous trouverez un guide complet sur l'utilisation de cette fonctionnalité sur notre page de documentation WebStencils.
Améliorations relatives aux bibliothèques
La section suivante détaille les améliorations apportées aux différentes bibliothèques de RAD Studio.
Améliorations de RAD Server
L'unité EMS.Services inclut désormais une interface IEMSApiDocumentService, qui permet la personnalisation des métadonnées dans les fichiers doc Swagger générés. Ces métadonnées incluent le titre, la version, la description, et peuvent être utilisées de la façon suivante :
initialization
var LDocSvc: IEMSApiDocumentService;
if TEMSServices.TryGetService<IEMSApiDocumentService>(LDocSvc) then
LDocSvc.SetMetadata('My API', 'ver 1.2.3', 'My public API description');
L'unité EMS.Services permet également de filtrer l'API documentée via Swagger, avec les interfaces IEMSApiDocumentFilter et IEMSApiDocumentService. Par exemple :
{ TMyDocFilter }
type
TMyDocFilter = class(TInterfacedObject, IEMSApiDocumentFilter)
protected
function Apply(const AContext: TEndpointContext; const AResource: TEMSResource;
const AAPIDocPath: TAPIDocPath): Boolean;
end;
function TMyDocFilter.Apply(const AContext: TEndpointContext;
const AResource: TEMSResource; const AAPIDocPath: TAPIDocPath): Boolean;
begin
Result := AAPIDocPath.Path.StartsWith('/public');
end;
var
LInd: Integer;
initialization
var LDocSvc: IEMSApiDocumentService;
if TEMSServices.TryGetService<IEMSApiDocumentService>(LDocSvc) then
LDocSvc.AddFilter(TMyDocFilter.Create as IEMSApiDocumentFilter);
finalization
var LDocSvc: IEMSApiDocumentService;
if TEMSServices.TryGetService<IEMSApiDocumentService>(LDocSvc) then
LDocSvc.RemoveFilter(LInd);
Les améliorations de qualité suivantes ont été apportées dans RAD Studio 12.2 :
- Deux événements supplémentaires ont été ajoutés au composant TEMSDatasetResource : BeforeRequest et AfterRequest. Vous pouvez désormais accéder à la requête avant qu'elle soit traitée automatiquement par le composant lui-même et accéder à la réponse juste avant de l'envoyer au client.
- Les notifications Push de RAD Server ont été remaniées (notamment Firebase APNS) en ajoutant la prise en charge requise pour HTTP/2.
- La prise en charge de Swagger par RAD Server a été étendue au format YAML.
- La démo APIDocAttributes a été mise à jour pour montrer l'utilisation des littéraux chaîne multilignes.
- RAD Server peut générer automatiquement de la documentation Swagger YAML ou JSON pour les API disponibles.
- RAD Server prend en charge la documentation Swagger en mode multi-tenant.
- La propriété X-Embarcadero-Session-Token est maintenant disponible dans SwaggerDocs.
Améliorations relatives à la RTL
Les améliorations de qualité suivantes ont été apportées dans RAD Studio 12.2 :
- Une nouvelle classe TParallelArray a été ajoutée à l'unité System.Threading, avec les méthodes
&For
etSort
, pour permettre l'exécution de certaines opérations en parallèle sur les éléments de tableau et les accélérer considérablement sur les ordinateurs multi-coeurs. - Une nouvelle classe TOrderedDictionary, dérivée de TDictionary<K,V>, a été ajoutée à l'unité System.Generics.Collections. Un dictionnaire conserve l'ordre des éléments ajoutés au dictionnaire.
- La prise en charge des dates RFC822 a été améliorée dans System.DateUtils.
- SQLTimeStampOffsetToDateTime utilise maintenant les informations TZ et renvoie l'heure locale.
- La méthode TDirectory.CreateDirectory de l'unité System.IOUtils déclenche désormais une exception si le dossier ne peut pas être créé.
- La classe TRegistry a été étendue avec la prise en charge améliorée de rdMultiString et les nouvelles méthodes ReadNone et WriteNone. Ces méthodes sont temporairement définies dans une classe d'assistance ; voir ci-dessous :
TRegistryHelper = class helper for TRegistry
public
function ReadNone(const Name: string): Boolean;
procedure WriteNone(const Name: string);
end;
Améliorations relatives à la VCL
Les améliorations de qualité suivantes ont été apportées dans RAD Studio 12.2 :
- RAD Studio 12.2 a remanié l'interface utilisateur utilisée par le contrôle FormsTabBar pour représenter les contrôles associés à une fenêtre enfant masquée. Désormais, si la fiche est masquée, l'état normal utilise un aspect standard (interface utilisateur normale avec onglets), alors que l'état actif utilise une forme d'onglet dessinée avec transparence alpha, tandis que l'aspect du texte, de l'icône et du bouton Fermer correspond à un état normal.
- Les problèmes associés à la mise à l'échelle des cadres sur les moniteurs HighDPI lors de l'exécution et de la conception ont été résolus.
Améliorations relatives à la FMX
Les améliorations de qualité suivantes ont été apportées dans RAD Studio 12.2 :
- La version intégrée de Skia pour Delphi a été mise à jour vers la version 6.2.0.
- La prise en charge du pinceau (ressource Brush) a été améliorée : ce type de pinceau a été ajouté pour toutes les implémentations de canevas sur toutes les plates-formes.
- Les formats standard du Presse-papiers de Windows ont été ajoutés par défaut avec le même nom que les constantes Windows, comme
CF_BITMAP
ouCF_DIBj
. - FireMonkey offre désormais la détection du thème clair/sombre en tant que service de plate-forme pour Windows (en utilisant IFMXSystemAppearanceService).
- Une nouvelle option permet de redimensionner automatiquement les colonnes et lignes TGridPanelLayout à l'aide d'un pourcentage.
- L'attribut targetSdkVersion du fichier manifeste Android peut maintenant être configuré dans la boîte de dialogue Options de projet, section Informations de version.
Mises à jour du lieur iOS et macOS
RAD Studio version 12.2 comporte une version mise à jour du lieur pour les plates-formes Apple. Cela permet en particulier la liaison avec les bibliothèques iOS et macOS construites avec XCode 14, comme par exemple le SDK Firebase iOS (11.0).
Améliorations relatives aux outils Android
Pour offrir aux utilisateurs plus de contrôle sur le packaging des fichiers 'Dex'
et 'bibliothèques natives'
et éviter les différences de comportement des applications pendant les cycles de développement et de distribution, RAD Studio 12.2 propose les options Compresser les fichiers Dex et Compresser les fichiers de bibliothèques natives dans la page Projet > Options> Application > Packaging.
Si vous activez les options Compresser les fichiers Dex et Compresser les fichiers de bibliothèques natives, chaque fichier '.apk'
généré contient des fichiers 'Dex'
et 'bibliothèques natives'
sans alignement zip et compressés.
Si désactivez les options Compresser les fichiers Dex et Compresser les fichiers de bibliothèques natives, les implications sont plus complexes, car la prise en charge des fichiers 'Dex'
et 'bibliothèques natives'
non compressés par la plate-forme est liée aux niveaux d'API.
Les améliorations de qualité suivantes ont été apportées dans RAD Studio 12.2 :
- Le système de build a été mis à jour pour que les opérations sur les ressources Android puissent être effectuées de façon incrémentielle. Le système de build de RAD Studio s'appuie sur l'application en ligne de commande
rclasser
pour générer un fichierR.jar
contenant toutes les classes JavaR
dont les bibliothèques Android importées ont besoin pour accéder aux ressources Android de l'identificateur. - L'importation de bibliothèques Android (fichiers
.aar
) est désormais prise en charge. - L'attribut targetSdkVersion du fichier manifeste Android peut maintenant être configuré dans la boîte de dialogue Options de projet, section Informations de version :
Bibliothèques relatives aux bases de données et à Internet
Les améliorations de qualité suivantes ont été apportées dans RAD Studio 12.2 :
- La taille des en-têtes HTTP peut désormais dépasser 4 Ko pour les modules ISAPI.
- Un problème important en relation avec la technologie ThingPoint et les EdgeModules dans RAD Server a été résolu.
- Le composant TOAuth2Authenticator dispose désormais d'un nouveau gestionnaire d'événement OnNeedClientCertificate, comme TRestConnection. Cela permet à l'utilisateur de se servir d'un certificat client et d'effectuer l'authentification via OAuth2.
- FireDAC ajoute la prise en charge du mot clé
'OFFSET'
de la base de données Firebird 4.