Lire en anglais

Partager via


Nouveautés de .NET 9

Découvrez les nouvelles fonctionnalités de .NET 9 et trouvez des liens vers d’autres documents.

.NET 9, le successeur de .NET 8, a une attention particulière sur les applications natives cloud et les performances. Il sera pris en charge pendant 18 mois en tant que version de support à terme standard (STS). Vous pouvez télécharger .NET 9 ici.

Nouveau pour .NET 9, l'équipe d'ingénierie publie des mises à jour en préversion de .NET 9 sur Discussions GitHub. C’est un endroit idéal pour poser des questions et fournir des commentaires sur la sortie.

Environnement d’exécution .NET

Le runtime .NET 9 inclut un nouveau modèle d’attribut pour les commutateurs de fonctionnalités avec prise en charge du découpage. Les nouveaux attributs permettent de définir des commutateurs de fonctionnalités que les bibliothèques peuvent utiliser pour activer/désactiver des zones de fonctionnalité.

Le nettoyage de la mémoire inclut une fonctionnalité d’adaptation dynamique à la taille de l’application utilisée par défaut au lieu de Server GC.

Le runtime inclut également de nombreuses améliorations des performances, notamment les optimisations de boucle, l'inline, la vectorisation Arm64 et la génération de code.

Pour plus d’informations, consultez Nouveautés du runtime .NET 9.

Bibliothèques .NET

System.Text.Json introduit la prise en charge des annotations de types de référence nullables et l’exportation de schémas JSON à partir de types. Il ajoute de nouvelles options qui vous permettent de personnaliser la mise en retrait du json écrit et de lire plusieurs valeurs JSON au niveau racine à partir d’un seul flux.

Dans LINQ, les nouvelles méthodes CountBy et AggregateBy permettent d’agréger l’état par clé sans avoir à allouer de regroupements intermédiaires via GroupBy.

Pour les types de collection, le type System.Collections.Generic.PriorityQueue<TElement,TPriority> inclut une nouvelle méthode Remove(TElement, TElement, TPriority, IEqualityComparer<TElement>) que vous pouvez utiliser pour mettre à jour la priorité d’un élément dans la file d’attente.

Pour le chiffrement, .NET 9 ajoute une nouvelle méthode de hachage one shot sur le type de CryptographicOperations. Il ajoute également de nouvelles classes qui utilisent l’algorithme KMAC.

Pour la réflexion, le nouveau type PersistedAssemblyBuilder vous permet de sauvegarder un assembly émis. Cette nouvelle classe inclut également la prise en charge de PDB, ce qui signifie que vous pouvez émettre des informations de symboles et l’utiliser pour déboguer un assembly généré.

La classe TimeSpan inclut de nouvelles méthodes From* qui vous permettent de créer un objet TimeSpan à partir d’un int (au lieu d’un double). Ces méthodes permettent d’éviter les erreurs provoquées par une imprécision inhérente dans les calculs à virgule flottante.

Pour plus d’informations, consultez Nouveautés des bibliothèques .NET 9.

Kit de développement logiciel (SDK) .NET

Le kit SDK .NET 9 introduit des ensembles de charges de travail, dans lesquels toutes vos charges demeurent à une version spécifique unique jusqu’à la réalisation d’une mise à jour explicite. Pour les outils, une nouvelle option pour dotnet tool install permet aux utilisateurs (au lieu des auteurs d’outils) de décider si un outil est autorisé à s’exécuter sur une version plus récente du runtime .NET que la version cible de l’outil. De plus,:

  • Les tests unitaires ont une meilleure intégration MSBuild qui vous permet d’exécuter des tests en parallèle.
  • Les audits de sécurité NuGet s’exécutent sur les références de package direct et transitif, par défaut.
  • L’enregistreur d’événements de terminal est activé par défaut et a également amélioré la facilité d’utilisation. Par exemple, le nombre total d’échecs et d’avertissements est maintenant résumé à la fin d’une build.
  • Les nouveaux analyseurs de script MSBuild (« vérifications de build ») sont disponibles.
  • Le Kit de développement logiciel (SDK) peut détecter et ajuster les incompatibilités de version entre le SDK .NET et MSBuild.
  • La commande dotnet workload history affiche l’historique des installations de charge de travail et des modifications pour l’installation actuelle du Kit de développement logiciel (SDK) .NET.

Pour plus d’informations, consultez Nouveautés du Kit de développement logiciel (SDK) pour .NET 9.

Blocs de construction IA

.NET 9 introduit une couche unifiée d’abstractions C# via les packages Microsoft.Extensions.AI et Microsoft.Extensions.VectorData. Ces abstractions facilitent l’interaction avec les services IA, notamment les modèles de langage petits et volumineux (SLMs et LLMs), les incorporations, les magasins vectoriels et les intergiciels.

.NET 9 inclut également de nouveaux types de capteurs qui étendent les fonctionnalités d’IA. TensorPrimitives et le nouveau type de Tensor<T> étendent les fonctionnalités d’IA en activant un encodage, une manipulation et un calcul efficaces des données multidimensionnelles. Vous trouverez ces types dans la dernière version du package System.Numerics.Tensors .

TensorPrimitives

  • Étendu de la méthode élargie : augmentation de 40 à près de 200 surcharges, incluant désormais des opérations numériques similaires à Math, MathF et INumber<T>, mais pour des étendues de valeurs.
  • Améliorations des performances : de nombreuses opérations sont désormais optimisées par SIMD pour de meilleures performances.
  • Surcharges génériques : prend en charge tous les types T qui implémentent une certaine interface, ce qui permet d’aller au-delà des simples plages de valeurs de type float, dans .NET.

Tenseur<T>

  • S’appuie sur TensorPrimitives pour des opérations mathématiques efficaces.
  • Fournit une interopérabilité efficace avec des bibliothèques IA (ML.NET, TorchSharp, ONNX Runtime) sans copie si possible.
  • Permet une manipulation facile et efficace des données avec des opérations d’indexation et de découpage.
  • Expérimental dans .NET 9.

ML.NET

ML.NET est une infrastructure multiplateforme open source qui permet l’intégration de modèles Machine Learning personnalisés dans des applications .NET.

ML.NET 4.0 apporte les améliorations suivantes :

  • Nouvelles façons de configurer par programmation les options de MLContext.
  • Chargez des modèles ONNX en tant que Stream.
  • Améliorations apportées aux dataFrames.
  • Nouvelles fonctionnalités pour les générateurs de jetons .
  • (Expérimental) Ports TorchSharp des familles de modèles Llama et Phi.
  • (Expérimental) API de pipeline CausalLM.

Pour plus d’informations, consultez Nouveautés de ML.NET.

Générateurs de jetons

La bibliothèque Microsoft.ML.Tokenizers fournit aux développeurs .NET des fonctionnalités d’encodage et de décodage de texte en jetons. Pour les scénarios d’IA, il est important de gérer le contexte, calculer le coût et le prétraitement du texte lors de l’utilisation de modèles locaux.

La dernière version introduit de nouvelles fonctionnalités significatives pour les tokenizers :

  • Tiktoken pour les modèles GPT (3, 3,5, 4, 4o, o1) et Llam3
  • Llama (basé sur PhrasePiece) pour les modèles Llama et Mistral
  • CodeGen pour les modèles de génération de code comme codegen-350M-mono
  • Phi2 (basé sur CodeGen) pour le modèle Microsoft Phi2
  • WordPiece
  • BERT (basé sur WordPiece) pour les modèles pris en charge par BERT comme optimum--all-MiniLM-L6-v2

.NET Aspire

.NET Aspire est un ensemble d’outils, de modèles et de packages puissants pour la création d’applications observables et prêtes pour la production. La dernière version de .NET Aspire inclut des améliorations apportées au tableau de bord et à la gestion du cycle de vie des ressources. Il ajoute également de nouvelles intégrations et API pour une plus grande flexibilité pendant le développement. .NET Aspire 9 fonctionne avec les applications .NET 9 et .NET 8. Pour plus d’informations, consultez Nouveautés de .NET Aspire 9.

ASP.NET Core

les applications ASP.NET Core créées avec .NET 9 sont sécurisées par défaut, ont étendu la prise en charge de la compilation anticipée et ont amélioré la surveillance et le suivi. Avec les améliorations des performances, vous verrez un débit plus élevé et un temps de démarrage plus rapide, et tout cela avec moins d’utilisation de la mémoire. ASP.NET Core dans .NET 9 inclut :

  • Gestion optimisée des fichiers statiques, tels que JavaScript et CSS, au moment de la génération et de la publication avec un versionnage automatique par empreinte.
  • Blazor : nouveaux modèles d’application hybride et web, détection du mode de rendu de composant, nouvelle expérience de reconnexion avec le rendu du serveur.
  • API : prise en charge intégrée de la génération de documents OpenAPI à l’aide de Microsoft.AspNetCore.OpenAPI, avec une prise en charge native AOT améliorée.
  • Amélioration de la sécurité avec de nouvelles API pour l’authentification et l’autorisation.
  • Configuration plus facile pour un certificat de développement approuvé sur Linux pour activer HTTPS pendant le développement.

Voici quelques-unes des fonctionnalités et améliorations de .NET 9. Pour plus d’informations, consultez Nouveautés de ASP.NET Core 9.0.

.NET MAUI

L’objectif de l’interface utilisateur d’application multiplateforme .NET (.NET MAUI) dans .NET 9 est d’améliorer les performances et la fiabilité, et d’intégrer des intégrations plus approfondies pour les applications de bureau et mobiles. .NET MAUI inclut une nouvelle implémentation plus performante de CollectionView et de CarouselView pour iOS et Mac Catalyst, des mises à jour des contrôles existants, de nouveaux événements de cycle de vie des applications, ainsi que des améliorations de Native AOT et de réduction pour améliorer la taille de l'application et le temps de démarrage. De plus,:

  • Un nouveau contrôle de bureau TitleBar est disponible pour Windows.
  • Un nouveau contrôle HybridWebView facilite l’inclusion de contenu compatible JavaScript à partir de frameworks tels que ReactJS, Vue.jset Angular.
  • Entry prend désormais en charge des modes clavier supplémentaires.
  • Les gestionnaires de contrôle se déconnectent automatiquement de leurs contrôles lorsque cela est possible.
  • MainPage est déconseillé au profit du paramétrage de la page principale de l’application en substituant la classe Application.CreateWindow(IActivationState).

Pour plus d’informations sur ces nouvelles fonctionnalités et plus encore, consultez Nouveautés de .NET MAUI pour .NET 9.

EF Core

Entity Framework Core inclut des mises à jour significatives du fournisseur de base de données pour Azure Cosmos DB pour NoSQL. Il inclut également quelques étapes vers la compilation AOT et les requêtes précompilées, entre autres améliorations. Pour plus d’informations, consultez Nouveautés d’EF Core 9.

C# 13

C# 13 est fourni avec le Kit de développement logiciel (SDK) .NET 9 et inclut les nouvelles fonctionnalités suivantes :

  • Collections params
  • Nouveau type de lock et sa sémantique
  • Nouvelle séquence d’échappement - \e
  • Améliorations du type naturel du groupe de méthodes
  • Accès d’indexeur implicite dans les initialiseurs d’objets
  • Activer les variables locales ref et les contextes unsafe dans les itérateurs et les méthodes asynchrones
  • Activer ref struct types pour implémenter des interfaces
  • Autoriser l'utilisation des types struct ref comme arguments pour les paramètres de type dans les génériques.
  • Les propriétés partielles et les indexeurs sont désormais autorisés dans partial types.
  • La priorité de résolution de surcharge permet aux auteurs de bibliothèque de désigner une surcharge comme meilleure que d’autres.

En outre, C# 13 ajoute une fonctionnalité en préversion : propriétés stockées field.

Pour plus d’informations, consultez Nouveautés de C# 13.

F# 9

F# 9 est fourni avec le Kit de développement logiciel (SDK) .NET 9 et inclut les nouvelles fonctionnalités suivantes :

  • Types références Nullables
  • Propriétés de l’union discriminée .Is*
  • Les modèles actifs partiels peuvent retourner une valeur booléenne au lieu d’une option d’unité
  • Préférer les méthodes d’extension aux propriétés intrinsèques lorsque des arguments sont fournis
  • Expressions de calcul vides
  • Les directives de hachage sont autorisées à prendre des arguments non-chaînes
  • Directive #help étendue dans fsi pour afficher la documentation dans la boucle REPL (read-eval-print loop)
  • Autoriser #nowarn à prendre en charge le préfixe FS sur les codes d’erreur pour désactiver les avertissements
  • Avertissement concernant l’attribut TailCall sur des fonctions non récursives ou des valeurs liées par 'let'
  • Appliquer des cibles d’attribut
  • Fonctions aléatoires pour les collections
  • Prise en charge des expressions de collection C# pour les listes et les ensembles F#
  • Améliorations de la productivité, des performances et des outils des développeurs

Pour plus d’informations, consultez Nouveautés de F# 9.

Windows Presentation Foundation

WPF dans .NET 9 apporte une prise en charge améliorée de la création d’applications modernes avec plusieurs améliorations de thèmes et bien plus encore :

  • Prise en charge du thème Fluent de Windows.
  • Prise en charge des thèmes ajoutée pour les modes clair et sombre de Windows.
  • Les thèmes prennent désormais en charge la couleur d’accentuation de Windows.
  • Le rendu de police a été amélioré pour prendre en charge les ligatures utilisant des traits d’union.
  • BinaryFormatter n’est plus pris en charge.

Pour plus d’informations, consultez Nouveautés de WPF pour .NET 9.

Windows Forms

WinForms dans .NET 9 prend en charge de nouveaux thèmes, des améliorations pour le développement asynchrone, et bien plus encore :

  • Form et TaskDialog support ShowDialogAsync maintenant. (Fonctionnalité expérimentale)
  • BinaryFormatter n’est plus pris en charge.
  • Prise en charge expérimentale pour le rendu de l’application en mode sombre, tel que supporté par Windows.
  • FolderBrowserDialog et ToolStrip avaient des améliorations mineures.
  • La bibliothèque System.Drawing a apporté de nombreuses améliorations, notamment l’habillage des effets GDI+, la prise en charge de ReadOnlySpanet une meilleure génération de code d’interopérabilité.

Pour plus d’informations, consultez Nouveautés de Windows Forms pour .NET 9.

Voir aussi