3 nouveautés intéressantes de .NET 6

Le Framework .NET s’est imposé au podium des framework web les plus utilisés dans le monde. Ces derniers temps, Microsoft, non sans confiance envers sa technologie, a décidé d’itérer avec une release majeure de .NET par an.

Cette nouvelle mouture, .NET 6, est sortie il y a déjà quelques mois.

C’est une release Long Term Support (LTS) avec 3 ans de support.

Je vais vous parler dans cet article de ce qui attise le plus ma curiosité dans cette nouvelle version.

Let’s go !

HTTP/3

Crédit: ZDnet

HTTP/3, c’est le prochain standard du protocole HTTP.

Il permet, en loucedé, de remplacer le protocole TCP par QUIC, qui se base sur UDP.

L’UDP étant de nature plus “directe” que le TCP, les connexions seront beaucoup plus rapides. De plus, avec QUIC, lors d’une connexion en HTTPS, les informations relatives au certificat sont envoyées en un seul paquet au lieu de plusieurs (le triple-handshake de HTTP pouvant générer des latences).

Lors d’une connexion sécurisée, chaque trame de donnée est sécurisée de manière indépendante.

Pour des cas d’usage comme le streaming ou les connexions sur terminaux mobiles (qui font légion aujourd’hui), cela va considérablement augmenter la réactivité des applications web.
 
 
Pour plus d’informations concernant HTTP/3, je vous recommande cet article.
HTTP/3 est disponible en préversion dans .NET 6. Pour commencer à développer dessus, rendez-vous à la fin de cet article de Microsoft.

Apple Silicon

Continuons avec quelque-chose qui me tient à cœur: l’interopérabilité. Et pas des moindres ! Grâce à .NET 6, .NET est maintenant compatible avec les processeurs M1 et M2 d’Apple.
 
Féru de Mac, j’attendais cette mise à jour avec beaucoup d’impatience.
Ne possédant pas de Mac sous Apple Silicon, je suis tout de même curieux de voir comment .NET s’exécute sur ces machines.
 
Je suis également attentif envers les usages que l’on peut tirer de l’arrivée de .NET dans ce prochain chapitre de Mac.
 
Voici ce qu’on pourrait attendre dans le futur:
– Une meilleure intégration de .NET MAUI (La nouvelle plateforme de développement d’applis cross-plateforme pour client lourd mobile et bureau), à la fois sur iOS et macOS
– De meilleures performances 
– La possibilité pour un EC2 au sein d’AWS sous Apple Silicon d’héberger une appli ASP.NET Core

System.Text.Json source generators

Parlons maintenant de choses plus concrètes: Le code !
 
Si vous êtes développeur .NET en 2022, vous avez probablement déjà développé une app qui doit sérialiser ou désérialiser du JSON.
 
Nos fidèles serviteurs Newtonsoft.Json, et maintenant System.Text.Json sont désormais monnaie courante quand il s’agit de transformer un JSON en classe concrète.
L’usage direct des méthodes statiques JsonConvert.SerializeObject ou encore JsonSerializer.Serialize est devenu un réflexe pour beaucoup de développeurs .NET.
 
 
Sauf qu’il y a un problème avec ces usages directs: de basses performances.
En effet, ces méthodes s’appuient sur la réflexivité. Un procédé d’analyse au run-time des classes et autres types valeurs.
Ces librairies ont besoin de collecter un certain nombre de méta-données concernant un type avant de pouvoir le sérialiser/désérialiser.
 
Ces méta-données permettent de construire un graphe d’un schéma JSON, pour une sérialisation parfaite et sans erreur.
Auparavant, seule la réflexivité permettait de fournir ces métadonnées.
 
Bien heureusement, avec .NET 5 et l’arrivée des générateurs de source, Microsoft a pu introduire au sein de .NET 6 des générateurs de source pour la sérialisation JSON.
 
Pour faire court, les générateurs de source sont comme un code custom qui s’exécute à la compilation. 
C’est un code C# qui génère du code C#. Cela permet beaucoup d’usages: Génération de modèle, génération de mapping, découverte de classes techniques, marshalling… la liste est longue.
Vous pouvez vous-même créer votre propre générateur de sources, le SDK est facile à prendre en main.
 
Comme dit plus haut, .NET 6 fournit son propre générateur de source, dédié à la sérialisation JSON.
 
Il collecte ainsi ces fameuses métadonnées (dont nous parlions plus tôt) lors de la compilation et non plus lors de l’exécution.
 
Ainsi, les temps d’exécution des programmes qui font souvent appel à de la sérialisation JSON se retrouve drastiquement réduit.
 
Voilà une excellente nouvelle !
Pour plus d’informations sur les générateurs de source de System.Text.Json, jetez un oeil à cet article !

Conclusion

Nous venons de voir 3 nouveautés du Framework .NET 6. Avec de telles optimisations, plus aucune excuse pour migrer sa codebase!
 
 
Sur ce blog, nous couvrirons d’autres sujets liés aux nouveautés de l’écosystème craft Microsoft. Restez à l’affut de nos prochains articles !

Auteur : Christopher Jamme de Lagoutine

Christopher Jamme de Lagoutine

Software Craftsman à Code Insider, Christopher a acquis au fil de son expérience de solides bases en ingénierie web, en intégration continue et en architecture cloud. Durant son temps libre, il aime développer des applications natives.

Vous aimerez aussi...

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.