.NET 6 est sorti !

Par:
fredericmazue

mar, 09/11/2021 - 11:24

Microsoft vient d'annoncer la disponibilité générale de .NET 6. Cette nouvelle mouture du framework .NET, qui est la première version qui prend en charge nativement Apple Silicon (Arm64), offre une plate-forme unifiée pour les applications de navigateur , de cloud , de bureau , d'IoT et mobiles.

La plate-forme sous-jacente, souligne Microsoft, a été mise à jour pour répondre aux besoins de tous les types d'applications et pour faciliter la réutilisation du code dans toutes les applications. De nouvelles fonctionnalités et améliorations sont disponibles pour toutes les applications en même temps, de sorte que votre code exécuté dans le cloud ou sur un appareil mobile se comporte de la même manière.

.NET 6 est une version de support à long terme (LTS) qui sera prise en charge pendant trois ans. Ce support à long terme est assuré sur plusieurs systèmes d'exploitation, y compris macOS Apple Silicon et Windows Arm64.

Des performances améliorées

Les apports de .NET 6 sont très nombreux. Nous ne pouvons pas tout mentionner ici. Remarquons tout d'abord que Microsoft assure que .NET 6 apporte 'des gains de performances énormes' par rapport aux versions précédentes. Outre l'efficacité améliorée de l"API JSON, Microsoft indique avoir retravaillé les entrées/sorties de fichiers. Ainsi FileStream a été presque entièrement réécrit en mettant l'accent sur l'amélioration des performances d'E/S de fichiers asynchrones. Sous Windows, l'implémentation n'utilise plus d'API bloquantes et Microsoft annonce que celle-ci peut être 'jusqu'à quelques fois plus rapide', sans fournir de chiffres précis toutefois.

PGO dynamique

En ce qui concerne les performances, l'optimisation dynamique guidée par profil (PGO) peut, selon Redmond, améliorer considérablement les performances en régime permanent. Par exemple, PGO donne une amélioration de 26% (510K -> 640K) des requêtes par seconde pour la suite TechEmpower JSON « MVC ».

Dynamic PGO s'appuie sur la compilation à plusieurs niveaux , qui permet aux méthodes d'être d'abord compilées très rapidement (appelées « niveau 0 ») pour améliorer les performances de démarrage, puis d'être recompilées par la suite (appelées « niveau 1 ») avec de nombreuses optimisations activées une fois que cette méthode s'est avérée efficace. Ce modèle permet d'instrumenter des méthodes en Tier 0 pour permettre diverses observations sur l'exécution du code. Lorsque ces méthodes sont réinitialisées au niveau 1, les informations recueillies à partir des exécutions de niveau 0 sont utilisées pour mieux optimiser le code de niveau 1. C'est l'essence du mécanisme.

Toutefois Dynamic PGO aura des temps de démarrage légèrement plus lents que l'exécution par défaut, car du code supplémentaire s'exécute dans les méthodes de niveau 0 pour observer le comportement de la méthode.

C# 10 et F6

C# 10 offre des améliorations du langage telles que les structures d'enregistrement, l'utilisation implicite et de nouvelles fonctionnalités lambda, tandis que le compilateur ajoute des générateurs de source incrémentiels. F# 6 ajoute de nouvelles fonctionnalités, notamment l'async basée sur les tâches, le débogage de pipeline et de nombreuses améliorations de performances .

Rechargement à chaud

Le rechargement à chaud Hot Reload est une fonctionnalité de performance, axée sur la productivité des développeurs. Il permet d'apporter une grande variété de modifications de code à une application en cours d'exécution, réduisant ainsi le temps que vous devez passer à attendre que les applications se reconstruisent, redémarrent ou reviennent au même endroit où vous vous trouviez après avoir modifié le code.

Ainsi que l'avait annoncé Scott Hunter fin octobre afin de répondre au mécontentement de la communauté open source, Hot Reload est accessible non seulement via Visual Studio 2022 mais aussi via l'outil CLI dotnet watch. Vous pouvez utiliser Hot Reload avec une grande variété de types d'applications tels que ASP.NET Core, Blazor, .NET MAUI, Console, Windows Forms (WinForms), WPF, WinUI 3, Azure Functions et autres.

De nouvelles APIs

Nous citerons encore, parmi les apports de .NET 6, l'ajout de nouvelles APIs pour HTTP/3, les traitements JSON et mathématiques, et la manipulation directe de la mémoire, notamment.

Disponibilité

.NET 6, disponible pour Linux, macOS et Windows, peut-être téléchargé ici. Des images pour Docker peuvfeut être téléchargées ici