
et met l'accent sur des améliorations de performance, des optimisations des bibliothèques et une expérience développeur enrichie
Microsoft a présenté en avant-première .NET 10, qui sera une version de support à long terme, avec de nouvelles fonctionnalités, dont un premier aperçu de C# 14. Les notes de mise à jour de .NET 10 Preview 1 font état d'améliorations apportées à l'ensemble de la plateforme .NET, y compris le moteur d'exécution, les bibliothèques de base, Entity Framework, les langages C#, F# et Visual Basic, ASP.NET, Windows Forms, Windows Presentation Foundation (WPF) et MAUI (Multi-Platform App UI).
Le cycle de publication habituel de .NET comprend une série d'avant-premières au cours desquelles des fonctionnalités sont ajoutées, suivies d'une première version candidate vers le mois de septembre et d'une version complète en novembre. On peut donc s'attendre à ce que d'autres nouvelles fonctionnalités de .NET 10 soient ajoutées en temps voulu.
Microsoft a déployé le premier aperçu de .NET 10, une nouvelle version majeure de la plateforme de développement logiciel phare de l'entreprise. Probablement disponible en novembre, .NET 10 introduit C# 14 et apporte des améliorations majeures au runtime .NET, au SDK, aux bibliothèques, à ASP.NET Core, à Blazor et à .NET MAUI, a indiqué l'entreprise.
Microsoft a présenté .NET 10 Preview 1, qui apporte une série d'améliorations et de corrections au niveau des performances, des bibliothèques et de l'expérience des développeurs.
« Aujourd'hui, nous sommes ravis d'annoncer la première version preview de .NET 10 », a déclaré James Montemagno, Principal Lead Program Manager for Developer Community, dans un billet de discussion GitHub daté du 25 février. « Nous venons de livrer notre première version preview, ajoutant quelques améliorations majeures à travers .NET Runtime, SDK, bibliothèques, C#, ASP.NET Core, Blazor, .NET MAUI, et plus encore. »
Les améliorations apportées par C# 14 comprennent une prise en charge de première classe des types System.Span<T> et System.ReadOnlySpan<T> dans le langage. Cela implique de nouvelles conversions implicites qui permettent une programmation plus naturelle avec ces types, a déclaré Microsoft. Cette prise en charge améliore les performances sans risque pour la sécurité. Toujours en C# 14, l'argument de nameof peut être un type générique non lié. C# 14 permet également aux développeurs d'ajouter des modificateurs de paramètres tels que scoped, ref, in ou out, ou ref readonly aux paramètres des expressions lambda sans spécifier le type de paramètre.
C# 14 inclut les propriétés avec champ, déjà présentées en avant-première dans C# 13. En C#, les propriétés sont souvent définies sous une forme abrégée, avec un champ caché qui stocke la valeur de la propriété. Le nouveau mot-clé field permet aux développeurs d'accéder à cette propriété, tout en continuant à utiliser la définition concise de la propriété.
Une autre fonctionnalité probable de C# 14, les membres d'extension, est répertoriée comme étant en cours de développement, mais n'est pas présentée dans cet aperçu.
Pour le moteur d'exécution .NET 10, la réduction de la charge d'abstraction des fonctionnalités populaires du langage est un domaine d'intérêt clé pour .NET 10. Pour atteindre cet objectif, Microsoft a étendu la capacité du compilateur JIT (juste à temps) à dé-virtualiser les appels de méthode pour couvrir les méthodes d'interface de tableau. En outre, au cours de l'exécution, le compilateur JIT allouera en pile de petits tableaux de taille fixe de types de valeurs qui ne contiennent pas de pointeurs de collecte mémoire lorsqu'il peut garantir que l'objet ne survivra pas à sa méthode parentale.
Pour les bibliothèques .NET 10, des API sont introduites qui fonctionnent avec des étendues de caractères, élargissant la normalisation au-delà des types de chaînes et aidant à éviter les allocations inutiles.
La compression Zip est plus efficace dans les nouvelles bibliothèques .NET 10, avec des performances plus rapides et une utilisation plus faible de la mémoire. Un cas particulier, l'ajout d'un fichier de 2 Go à une archive existante, montre une réduction de 99,8 % du temps d'exécution et une réduction encore plus importante de l'utilisation de la mémoire, selon la documentation de la mise à jour.
ASP.NET intègre désormais la prise en charge d'OpenAPI 3.1, qui deviendra la valeur par défaut pour les documents OpenAPI générés, décrite comme une « mise à jour significative de la spécification OpenAPI ».
Le JavaScript mettant en œuvre le cadre Blazor sera désormais livré en tant que ressource web statique, ce qui permettra de le compresser et de réduire sa taille de 76 %.
Windows Forms, toujours populaire pour les applications Windows de bureau, reçoit de nouvelles API de presse-papiers utilisant la sérialisation JSON pour surmonter les problèmes de sécurité avec BinaryFormatter.
Entity Framework dispose d'une nouvelle méthode LeftJoin pour LINQ (Language Integrated Query), ce qui simplifie le code qui exécute ce type de requête.
La version Preview 1 fait suite au lancement de .NET 9 en novembre dernier, au cours duquel l'équipe de développement s'est concentrée sur des outils tels que .NET Aspire et l'IA, et ces points restent d'actualité, puisque l'entreprise a également livré .NET Aspire 9.1. Il s'agit d'une pile d'opinions, prête pour le cloud, qui permet de créer des applications cloud-natives résilientes, observables et configurables à l'aide de .NET. Microsoft a déclaré que la version 9.1 se concentrait sur des correctifs de « qualité de vie ».
En ce qui concerne .NET MAUI (multi-platform app UI), l'équipe reste concentrée sur les « améliorations de la qualité », ce qui peut être interprété soit comme une réponse nécessaire aux préoccupations des développeurs, soit comme un manque d'activité. La qualité du produit a également été au centre des modifications apportées à .NET MAUI dans .NET 9, bien que les développeurs aient également reçu l'important composant HybridWebView.
.NET 10 fait suite à la sortie de .NET 9 en novembre dernier. Dans les autres nouvelles fonctionnalités et améliorations de .NET 10 Preview 1, nous pouvons citer :
- Le langage F# offre une meilleure gestion des structures génériques non gérées et ajoute un cache de conversions de types, activé uniquement lors des exécutions du compilateur.
- Pour le SDK .NET 10, une fonction d'audit NuGet permet désormais d'élaguer les références de paquets fournis par le framework et non utilisés par le projet.
- Visual Basic ajoute la prise en charge des contraintes non gérées. Le compilateur Visual Basic respecte désormais l'attribut OverloadResolutionPriorityAttribute utilisé pour résoudre les ambiguïtés entre les surcharges de méthodes. Cela signifie que les nouvelles surcharges basées sur Span, plus rapides, sont désormais préférées par le compilateur.
- ASP.NET Core ajoute la prise en charge de la génération de documents OpenAPI 3.1. OpenAPI 3.1 est une mise à jour importante de la spécification OpenAPI, avec une prise en charge complète de JSON Schema draft 2020-12, a déclaré Microsoft. Les documents OpenAPI peuvent également être générés au format YAML.
- L'attribut RouteAttribute de Blazor prend désormais en charge la mise en évidence de la syntaxe de l'itinéraire pour aider à visualiser la structure du modèle d'itinéraire.
- Pour Entity Framework, .NET 10 ajoute une prise en charge LINQ de première classe pour la méthode LeftJoin, ce qui simplifie l'écriture de ces requêtes, selon Microsoft.
- Dans .NET 10, .NET MAUI est livré sous la forme d'une charge de travail .NET et de plusieurs paquets NuGet, ce qui permet aux développeurs d'associer facilement des projets à des versions spécifiques et de prévisualiser facilement des versions inédites ou expérimentales, a déclaré Microsoft.
Voici un résumé des nouveautés, tiré d'une présentation de l'entreprise :
Améliorations au niveau de l'exécution
- Dévirtualisation des méthodes d'interface de tableau : Le compilateur JIT optimise désormais les appels virtuels sur les interfaces de tableaux, ce qui améliore les performances des manipulations de tableaux.
- Allocation de pile pour les tableaux de type valeur : Les petits tableaux de type valeur de taille fixe peuvent désormais être alloués à la pile, ce qui réduit les allocations au tas.
- Prise en charge d'AVX10.2 : Support préliminaire pour Advanced Vector Extensions (AVX) 10.2, visant les futurs processeurs x64, bien qu'actuellement désactivé par défaut.
Mises à jour de la bibliothèque
[LIST][*]Gestion améliorée des certificats : La nouvelle méthode FindByThumbprint prend en charge les algorithmes de hachage au-delà de SHA-1 pour une meilleure sécurité.[*]Prise en charge des données PEM : Les développeurs peuvent lire les données encodées PEM directement à partir de fichiers encodés ASCII ou UTF-8.[*]Prise en charge de la date seule dans ISOWeek : La classe ISOWeek inclut maintenant des surcharges qui acceptent le type DateOnly.[*]Normalisation des chaînes avec Span : Les API de normalisation de chaînes prennent désormais en charge les portées pour une utilisation plus[/*]...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.