Dévoilée le 10 octobre, .NET 8 RC 2, la prochaine version de la plateforme de développement logiciel de Microsoft, a franchi le stade de seconde et dernière version candidate (RC). La disponibilité générale est prévue pour novembre. Cette version .NET 8 succède à .NET 7, sorti en novembre 2022. Elle sera prise en charge pendant trois ans. La RC 2 bénéficie de plusieurs améliorations, notamment de meilleures performances, de corrections dans l’interface utilisateur du framework .NET MAUI (Multi-platform App UI) et des mises à jour d'Entity Framework. La version .NET 8 bénéficiera d’autres améliorations qui vont de la compilation AOT (ahead-of-time) et de la génération de sources à la sérialisation JSON et au nettoyage de la mémoire.

Les améliorations spécifiques attendues de .NET 8

- Une amélioration de la sérialisation et de la désérialisation System.Text.Json, avec prise en charge intégrée d'un plus grand nombre de types, de nouvelles méthodes d’API JsonNode et autres améliorations.

- La possibilité pour le nettoyage de la mémoire avec le récupérateur de mémoire (GC) d'ajuster la limite de mémoire à la volée. Cette fonctionnalité est considérée comme particulièrement utile dans les scénarios de service cloud, où la demande fluctue.

- L’introduction d’un générateur de source pour offrir une compilation AOT (ahead-of-time) et une configuration compatible avec la découpe dans ASP.NET Core. Ce générateur est une alternative à l'implémentation existante basée sur la réflexion.

- De nouveaux types pour améliorer les performances de l'application, y compris un type System Text.CompositeFormat, utile pour optimiser les chaînes de format qui ne sont pas connues au moment de la compilation.

- Pour la réflexion, un objet System.Type permet d'accéder aux métadonnées des pointeurs de fonction, notamment les conventions d'appel, le type de retour et les paramètres. Pour le moment, la nouvelle fonctionnalité est uniquement implémentée dans le runtime CoreCLR et MetadataLoadContext.

- Une prise en charge SIMD supplémentaire, avec l'introduction de Vector512 et la prise en charge d'Intel Advanced Vector Extensions 512 (AVX-512).

Des éléments de sécurité et autres

- Pour la cryptographie, .NET 8 ajoute la prise en charge des primitives de hachage SHA-3.

- HTTPClient prend désormais en charge le proxy HTTPS, qui crée un canal crypté entre le client et le proxy, afin que toutes les requêtes puissent être gérées avec une confidentialité complète.

- De nouvelles surcharges de Zipfile CreateFromDirectory permettent de collecter tous les fichiers inclus dans un répertoire et de les zipper. Ces surcharges peuvent ensuite stocker le fichier zip résultant dans le flux fourni.

- Le support natif AOT pour les plateformes de type iOS est introduit de manière préliminaire.

- Le type ValidateOptionsResultBuilder est introduit pour faciliter la création d'un objet ValidateOptionsResult. Ce constructeur permet l’accumulation de plusieurs erreurs.

- Des modifications ont été apportées aux images de conteneurs .NET, telles que l'introduction d'un modèle permettant de mélanger et d'assortir les architectures avec des images .NET. De plus, les performances ont été améliorées pour pousser (push) les conteneurs vers des registres distants, en particulier les registres Azure.

- Un nouveau générateur de source qui prend en charge l'interopérabilité avec les interfaces COM.

- Pour les applications Android, la propriété permet d'opter pour une compilation AOT supplémentaire pour les applications Android afin de réduire encore plus la taille de l'application.

La version .NET 8 RC 2 pour Windows, Linux et Mac est téléchargeable à partir du site web Microsoft.