IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Rider 2022.2 est disponible, l'EDI .NET multiplateforme de JetBrains vient avec plus de fonctionnalités C# 11,
Des améliorations de performance et un meilleur support d'Unreal Engine

Le , par Michael Guilloux

11PARTAGES

3  0 
Rider 2022.2 améliore de façon globale les performances, avec notamment l'optimisation du démarrage et du moteur d'analyse de l'ensemble de la solution. La prise en charge de C# 11 a été étendue pour couvrir les membres requis, les opérateurs checked définis par l'utilisateur, les chaînes brutes et les modèles de listes. Dans cette version, vous pouvez appliquer les mêmes paramètres de disposition des fenêtres à l'ensemble des solutions sur lesquelles vous travaillez. D'autre part, la prise en charge d'Unreal Engine comporte deux nouvelles actions, New Unreal Module et New Unreal Plugin, et il est désormais possible de spécifier des serveurs de symboles pour obtenir des symboles de bibliothèque en cours de débogage.

Performances

Environnement d'exécution .NET 6 pour le backend Windows

Jetbrains a migré le backend Windows de Rider vers l'environnement d'exécution de .NET 6. Il utilise désormais l'environnement d'exécution .NET 6 pour exécuter le service backend sur tous les systèmes d'exploitation pris en charge : Windows, macOS et Linux. Grâce aux optimisations portant directement sur l'environnement d'exécution .NET 6, les performances globales de Rider ont été améliorées par rapport à la version v2022.1.

Dans la lignée de ce changement, JetBrains a également remplacé NGen par l'utilitaire CrossGen afin de créer des images natives sous Windows après avoir installé Rider. Dans la mesure où CrossGen fonctionne avec l'environnement d'exécution .NET et est multiplateformes, cela permet de démarrer Rider et d'ouvrir les solutions plus rapidement.

Veuillez noter que Rider n'exécute pas CrossGen pendant l'installation, mais uniquement au premier démarrage de Rider. Par conséquent, le premier lancement peut être un peu lent, mais tous les lancements suivants sont plus rapides.

Améliorations du « démarrage à froid »

Les solutions s'ouvrent plus rapidement lorsque vous les lancez pour la première fois (« démarrage à froid ») et que Rider n'a aucune information les concernant. Lors du démarrage à froid, tous les projets sont chargés deux fois : d'abord, l'EDI charge les projets afin d'obtenir les informations sur chacun d'entre eux. Ensuite, « NuGet restore » est exécuté et, une fois cette opération terminée, les projets sont chargés une seconde fois.

L'éditeur de logiciels a optimisé la première phase de chargement des projets afin que Rider extraie uniquement les informations nécessaires pour restaurer les packages NuGet. Les mesures internes démontrent que la nouvelle implémentation est environ 40 % plus rapide.


Optimisations de l'analyse de l'ensemble de la solution

Cette version a été l'occasion d'optimiser l'utilisation de la mémoire de Rider avec l'activation du mode Analyse de l'ensemble de la solution, aussi bien en termes de trafic de la mémoire (nombre d'allocations mémoire) que de consommation.

Le moteur d'analyse de l'ensemble de la solution utilise la mémoire pour stocker la liste de problèmes dans la solution, ainsi que pour stocker les informations d'utilisation type/membre, afin de générer des rapports d'utilisation portant sur l'ensemble de la solution (inspections de code telle que « membre public jamais utilisé »). Les données d'utilisation sont « chaudes », ce qui signifie qu'elles doivent être constamment mises à jour pendant la modification du code, et ne peuvent pas être transférées sur le disque. Cela risque de consommer un volume significatif de mémoire si votre solution contient de nombreux types et membres de type.

JetBrains a examiné les données stockées en mémoire et identifié des modèles qui lui permettaient de les dédupliquer/normaliser. L'entreprise a également utilisé des types de collection spécialisés pour réduire encore plus l'ensemble de travail. Ces optimisations ont permis de multiplier par 5 à 10 l'utilisation de la mémoire et d'accélérer le chargement de l'analyse de l'ensemble de la solution.

C# 11

Cette version introduit la prise en charge d'encore plus de fonctionnalités de la version Preview de C# 11.

Membres requis

Dans C# 11, les types class, struct et record peuvent à présent déclarer une liste de membres requis. Il s'agit de la liste de toutes les propriétés et de tous les champs considérés comme requis et elle doit être initialisée en même temps que l'instance d'un type. Ces listes sont automatiquement héritées des types de base et contribuent ainsi à offrir une expérience utilisateur fluide et à réduire la quantité de code répétitif et standard.

En plus de reconnaître le mot-clé required pour les membres de type class, struct ou record, Rider assure également la prise en charge du mot-clé required :

  • la saisie semi-automatique inclut le mot-clé required ;
  • la plupart des erreurs et des avertissements de compilateur sont disponibles ;
  • le modificateur required a été ajouté à Modifiers order sur la page Preferences/Settings | Editor | Code Style | C# | Syntax Style.


JetBrains a ajouté le nouveau correctif rapide Add initializer for required members pour les cas où un objet de type a été créé sans initialiser les membres. Cela génère automatiquement tous les membres required manquants pour votre objet et il ne vous reste plus qu'à remplir les valeurs du membre avec des données significatives.

Opérateurs « checked » définis par l'utilisateur

Les opérateurs checked définis par l'utilisateur aident les développeurs à créer des opérateurs définis par l'utilisateur qui agissent sur des types où le dépassement arithmétique est un concept valide. Rider affiche l'intégralité des erreurs et des avertissements du compilateur. Afin d'assurer une prise en charge complète des opérateurs checked définis par l'utilisateur, Rider comporte deux inspections supplémentaires et une action contextuelle.

  • JetBrains a mis à jour l'inspection Unchecked/checked context is redundant pour prendre en compte les opérateurs checked lorsqu'ils sont utilisés dans ce contexte.

  • Si vous disposez d'un ensemble d'opérateurs définis par l'utilisateur et certains d'entre eux comportent déjà d'une version checked, Rider vous aidera à propager les opérateurs checked au reste de l'ensemble. Une nouvelle inspection appelée The operator does not have a matching checked operator while other operators do vous signale les opérateurs qui ne disposent pas encore d'un opérateur checked et propose un correctif rapide permettant de générer les versions checked automatiquement.

  • Et si vous n'avez pas encore utilisé les opérateurs checked dans votre base de code, mais souhaitez commencer à les y ajouter, vous trouverez la nouvelle action contextuelle appelée Create matching checked operator très pratique. Elle est disponible pour tous les opérateurs définis par l'utilisateur et génère la version checked d'un opérateur en un clic, directement depuis le menu contextuel ouvert par Alt+Entrée.

Chaînes brutes

C# 11 améliore la capacité d'intégration d'autres langages ou formats de texte au code C# en introduisant le concept de chaînes « brutes ».

Rider assure une prise en charge basique des chaînes « brutes », ce qui inclut les erreurs de compilateur, l'analyse correcte et le surlignage en couleur de la syntaxe """, les paires de guillemets doubles et les emplacements réservés dans les chaînes interpolées (syntaxe {{...}}).


Modèles de listes

C# 11 continue d'élargir l'ensemble des modèles disponibles dans le langage. Cette version de C# introduit la mise en correspondance des structures de type liste, telles que les tableaux, les chaînes et les collections de type List<T>.

Rider 2022.2 prend intégralement en charge les modèles de liste avec la vérification d'erreurs, la saisie semi-automatique et l'analyse du code. Nous travaillons sur de nouvelles inspections de code qui permettront de suggérer l'utilisation de modèles de liste dans le code existant et des actions de refactorisation supplémentaires.


Plus de fonctionnalités C# 11

Rider 2022.2 prend entièrement en charge le nouvel opérateur décalage à droite non signé (>>>), ce qui inclut la prise en charge de la surcharge de l'opérateur >>> défini par l'utilisateur.

Rider 2022.2 prend aussi en charge la simplification de l'utilisation des valeurs Span<char> en remplacement des instances de chaînes, car C# 11 permet de comparer directement les constantes de chaîne avec des valeurs de type Span<char> et ReadOnlySpan<char>.

Analyse du code

Instructions de haut niveau

.NET 6 a introduit de nouveaux modèles de projet avec les déclarations de haut niveau de C# 9. Les instructions de haut niveau simplifient la déclaration d'une classe Program ou d'une méthode public static void Main(string[] args). Mais parfois une déclaration explicite class Program est nécessaire ou préférable. Rider 2022.2 ajoute la nouvelle action contextuelle To explicit 'Program' class pour convertir le code dans cet ancien style.


Dans le même temps, si vous disposez déjà d'une classe de démarrage Program et souhaitez migrer vers les instructions de haut niveau, JetBrains a prévu la nouvelle action contextuelle Convert to top-level code.

Mises à jour de la prise en charge de INotifyPropertyChanged

Dans cette version, JetBrains a remanié la prise en charge de INotifyPropertyChanged. Elle ne dépend plus d'annotations externes pour détecter des API INotifyPropertyChanged, ce qui a permis de prendre en charge automatiquement davantage de frameworks MVVM et de classes de base INotifyPropertyChanged. JetBrains utilise maintenant la méthode SetField dont la syntaxe est plus concise pour les notifications INotifyPropertyChanged.

Il est désormais aussi possible d'ajouter des notifications property change pour l'ensemble des propriétés du type ou du fichier.

Refactorisations dans le menu Alt+Entrée

Afin d'améliorer la visibilité des refactorisations, JetBrains a examiné les refactorisations les plus couramment utilisées et introduit des actions contextuelles connexes dans le menu ouvert par Alt+Entrée qui dépendent du contexte actuel.

L'éditeur de logiciels a ajouté l'action contextuelle Extract method qui correspond à l'appel du menu par Alt+Entrée depuis un fragment de code. Notons également que les refactorisations Change Signature, Transform Parameters, Convert to extension method et Convert Property To Method sont désormais toutes disponibles en tant qu'actions contextuelles pour les signatures de membres.

Autres

Entre autres nouveautés pour l'analyse du code, on note :
  • Plus de suggestions d'utilisation d'un opérateur nameof.
  • Les correctifs rapides provenant des modèles Structural Search And Replace (SSR) peuvent désormais être appliqués au niveau d'un fichier, d'un dossier, d'un projet ou de l'ensemble d'une solution. Cela affecte notamment les modèles personnalisés des utilisateurs, les inspections de code intégrées de Rider et tous les correctifs correspondants basés sur les actions SSR.
  • Rider 2022.2 peut désormais détecter certains modèles d'affectation dans votre code et suggérer du code C# plus idiomatique grâce à la reconnaissance de modèles.
  • Rider 2022.2 peut désormais remplacer certains schémas is dans les expressions ?: par la version plus concise as dans l'expression ??, ce qui élimine effectivement une variable temporaire.

Interface/expérience utilisateur

Disposition par défaut des fenêtres

JetBrains a implémenté une option permettant d'appliquer les mêmes paramètres d'affichage des fenêtres à toutes les solutions sur lesquelles vous travaillez. Par exemple, si vous déplacez une fenêtre d'outil vers la droite, elle y restera pour toutes vos solutions.

Ce comportement s'appliquera par défaut aux nouveaux utilisateurs de Rider. Sinon, vous pouvez l'activer dans le menu principal en sélectionnant Windows | Layout Settings | Use the Same Layout for All Projects.


Configurations de solutions repensées

Dans cette version, JetBrains a repensé l'affichage des configurations de solutions. Des projets tels que Unity, Unreal Engine ou Xamarin comportent souvent de nombreuses configurations, cibles et plateformes. Auparavant, les combinaisons de toutes ces entités produisaient un nombre considérable d'éléments dans le menu Solution Configurations. À partir de la version 2022.2, vous n'aurez plus à parcourir une longue liste d'éléments pour sélectionner la combinaison exacte de configuration, cible et plateforme. Vous pouvez simplement cliquer sur chaque type de paramètre un par un, jusqu'à obtenir la combinaison voulue.


Afin d'alléger la barre d'outils principale, JetBrains a aussi déplacé la liste de configuration de la solution vers le menu déroulant de l'icône de build (marteau vert). Les retours et les statistiques obtenus ont montré que les utilisateurs ne changent pas leurs configurations de solution suffisamment souvent pour justifier la présence d'un widget spécifique sur la barre d'outils. Toutefois, si nécessaire, vous pouvez accéder aux configurations via le triangle déroulant situé à côté de l'icône marteau verte. Vous y retrouverez la liste habituelle.

Si vous souhaitez replacer les configurations de la solution dans la barre d'outils, il vous suffit de sélectionner l'option Show Configuration on Toolbar dans la liste. La liste de configurations de la solution continue à s'afficher sur la barre d'outils lorsque vous travaillez sur des projets Unity, Unreal Engine ou Xamarin, car les configurations sont davantage utilisées pour ces types de projets.


Widget Run/Debug redimensionnable

En réponse aux commentaires de la communauté, l'éditeur de logiciels a ajouté une option permettant de modifier la largeur du widget Run/Debug dans la barre d'outils principale. Si la barre d'outils a suffisamment d'espace pour étendre le widget Run/Debug, vous pouvez faire glisser le coin gauche de l'icône de widget et la redimensionner. Cela permet de créer davantage d'espace pour ce widget quand vous vous le souhaitez ou en avez besoin.

Action Merge All Project Windows

Pour macOS, JetBrains a introduit la possibilité d'organiser votre espace de travail en fusionnant toutes les fenêtres de projet ouvertes en une seule, chaque fenêtre devenant un onglet distinct. Pour effectuer cette action, allez dans Window | Merge All Project Windows.

Écran d'accueil

JetBrains a modifié l'affichage de la barre de progression Cloning repository sur l'écran d'accueil de Rider. Elle s'affiche maintenant directement dans la liste Projects pour plus de clarté et de facilité d'utilisation.


Paramètres de saisie semi-automatique du code

Vous pouvez désormais accéder aux paramètres Code Completion Settings et configurer vos préférences directement à partir du bouton du menu (trois points verticaux) dans la fenêtre contextuelle de saisie semi-automatique.


Prise en charge de MAUI

JetBrains a introduit une version anticipée de la prise en charge de .NET Multi-platform App UI (.NET MAUI). Dans cette version, on notera la prise en charge des projets qui ciblent les plateformes Android et iOS. Vous pouvez utiliser des configurations d'exécution pour exécuter et déboguer votre projet, ainsi que pour déployer votre application sur un appareil cible. Veuillez noter que macOS, Mac Catalyst, Blazor Hybrid et WinUI ne sont pas encore complètement pris en charge.

Solution Explorer

Refactorisation Safe Delete

JetBrains a implémenté la refactorisation Safe Delete au niveau du projet. Vous pouvez l'appeler avec la clé Delete ou l'action Refactor This sur un projet dans Solution Explorer. Rider recherche ensuite les utilisations du projet sélectionné. Si des utilisations sont trouvées, les conflits sont affichés et, dans le cas contraire, le projet est supprimé et Rider efface toutes les références ou importations restantes. Une option permet également de supprimer un projet sans toutes ces vérifications. Pour cela, décochez simplement l'option Search for usages lorsque la boîte de dialogue Safe Delete s'affiche et Rider n'exécutera plus cette recherche.


Meilleure prise en charge des filtres de la solution

Rider 2022.2 facilite considérablement la manipulation des solutions filtrées. Vous avez maintenant la possibilité de filtrer un ou plusieurs projets, un dossier de solution ou même tous les projets d'une solution. Pour ce faire, utilisez l'action Solution Filter | Remove project du menu contextuel d'un projet, d'un dossier de solution ou du nœud racine de la solution dans la vue Solution Explorer. Pour voir les projets qui ont été filtrés, activez le mode Show All Files dans la vue Solution Explorer et utilisez l'action Solution Filter | Add Project dans le menu contextuel.


En supplément de ces opérations de base, Rider fournit désormais deux actions plus avancées, Load Direct Project Dependencies et Load Entire Project Dependency Tree. Ces actions amènent Rider à vérifier toutes les dépendances du projet cible et à charger les projets nécessaires afin de vous permettre de commencer immédiatement à travailler sur la solution filtrée.

Explorateur d'assemblies

Assembly Explorer permet de mieux présenter les assemblies ReadyToRun (R2R) et NGen :

  • La présentation des assemblies ReadyToRun (R2R) et NGen dans Assembly Explorer a été améliorée. Une petite icône de symbole de processeur et les libellés ngen ou R2R s'affichent à présent près de chaque nom d'assembly.
  • L'arborescence Metadata comporte l'en-tête ReadyToRun.

Autres fonctionnalités

  • La vue Solution Explorer affiche les fichiers source générés par les générateurs de code source. Vous les trouverez dans la section Dependencies | <Nom du framework cible> | Source Generators.
  • Dans les vues Solution Explorer, File System et Unity Explorer, les projets sont classés par ordre alphabétique.

Développement de jeux

Prise en charge d'Unreal Engine

  • Nouveau module Unreal : la création d'un nouveau module avec logique de jeu implique une longue liste de tâches : ajouter un dossier, ajouter un fichier Build.cs dans ce dossier, créer une classe qui initialise le module, mettre à jour les fichiers .uproject et Target.cs, etc. La nouvelle version de Rider comporte une action qui automatise toutes ces tâches : Add | New Unreal Module.

  • Nouveau plugin Unreal : si vous avez déjà essayé de créer des plugins dans Unreal Editor, cette nouvelle action vous paraîtra familière. Il est désormais possible de créer différents types de plugin directement depuis Rider. Pour cela, utilisez simplement l'action Add | New Unreal Plugin pour générer tous les fichiers nécessaires au nouveau plugin.

  • Serveurs de symboles : lors du débogage, les symboles de bibliothèque ne sont pas toujours disponibles sur votre machine locale. Dans ce cas, vous pouvez utiliser un serveur de symboles. Dans la version Windows de Rider, il est désormais possible de configurer le débogueur pour utiliser le serveur de symbole de votre choix.

  • Prise en charge des tests Spec : Rider prend désormais en charge les tests Spec à partir des tests d'automatisation d'Unreal Engine. Si vous avez un ensemble de tests définis dans la méthode Define après la macro DEFINE_SPEC ou les macros BEGIN_DEFINE_SPEC et END_DEFINE_SPEC, Rider est en mesure de les découvrir, ce qui vous permet de les exécuter et de les observer dans la vue Unit Tests.

  • Appels de fonction de type Emplace : Rider comprend à présent que les appels de fonction de type Emplace (tels que TArray<..>::Emplace) impliquent la construction d'objets. Par conséquent, il vous avertit en cas d'arguments non valides passés au constructeur. Lorsque vous saisissez des arguments, des indications de type et des informations sur les paramètres s'affichent. Vous pouvez également accéder directement à la définition d'un constructeur depuis un appel Emplace et inversement.

Prise en charge d'Unity

  • Une nouvelle barre d'outils est disponible pour les projets Unity et l'état de connexion s'affiche à présent dans la barre d'outils et non plus dans la barre d'état. D'autre part, les boutons lecture/pause/pas-à-pas ont été retirés de la barre d'outils par défaut, mais peuvent être rajoutés.
  • JetBrains a ajouté des inspections pour s'assurer que les valeurs de retour des méthodes Mathf sont utilisées.
  • Il n'est plus nécessaire de redémarrer l'éditeur Unity pour lancer le processus de profilage. Le profileur peut désormais s'attacher à des processus Unity en cours d'exécution, ou s'en détacher.

Autres améliorations

Plugins

  • Diverses améliorations pour dotCover
  • Rider intègre désormais dotMemory, l'outil de profilage de mémoire de JetBrains.
  • dotTrace dotUltimate : il n'est plus nécessaire de redémarrer l'éditeur Unity pour lancer le processus de profilage. Le profileur peut désormais s'attacher à des processus Unity en cours d'exécution, ou s'en détacher.
  • Markdown : il est désormais possible de générer facilement un sommaire dans les fichiers Markdown à partir des en-têtes de documents. Cette nouvelle action est disponible à partir des menus contextuels Insert et Generate que vous pouvez appeler à l'aide du raccourci Alt+Insertion ou en cliquant sur le bouton droit. Rider insère un sommaire à la position du curseur et l'entoure des balises <!-- TOC -->. Vous pouvez ainsi le modifier ultérieurement en appelant le même menu.


Développement web

  • Prise en charge des composants autonomes Angular
  • Mises à jour pour Vue 3
  • Prise en charge de TypeScript 4.7

Prise en charge des bases de données

  • Nous avons introduit deux nouveaux modes de résolution : Playground et Script.
  • L'authentification Windows est encore une fois disponible pour les serveurs Microsoft SQL.
  • Les classements et les jeux de caractères sont désormais générés avec le DDL du tableau pour Microsoft SQL Server.
  • Rider assure à présent la prise en charge basique de 3 bases de données supplémentaires : DuckDB, Mimer SQL et Apache Ignite.


Nouveautés et téléchargement de Rider 2022.2

Une erreur dans cette actualité ? Signalez-le nous !