.NET 6 est loin d’avoir fini de nous époustoufler et voici Microsoft avec un autre aperçu de .NET 7. Cependant, cette fois, nous n’allons pas parler de ce que l’aperçu 2 lui-même apporte, mais plutôt de ce à quoi il nous prépare, et cela est:
NativeAOT
Non, vous ne rêvez pas, NativeAOT est presque là. Ahead of Time Compilation construit tout à l’avance, pour éviter d’avoir à “JIT” lorsqu’une application s’exécute pour la première fois. Le projet sort du statut expérimental et passe à la branche d’exécution principale à partir de maintenant. Depuis un certain temps, l’équipe travaille sans relâche pour apporter une bonne compilation Native Ahead-of-Time à dotnet. Bien que l’AOT partiel ait toujours été présent, le “véritable” support complet n’a jamais été prêt à l’emploi.
Il reste encore du travail à faire, mais vous pouvez commencer à vous préparer en suivant ces suggestions pour éviter les complications.
Avantages AOT
La compilation Ahead-of-Time offre de nombreux avantages tels que :
- temps de démarrage plus rapides
- performances généralement prévisibles quelle que soit la plate-forme
Avantages JAT
La compilation juste-à-temps a également ses avantages avec des éléments tels que :
- des performances souvent plus rapides car il cible la plate-forme sur laquelle il est sur le point de s’exécuter
- être capable de s’adapter et de recompiler dynamiquement pour apporter des améliorations
- plus petite empreinte disque
Les deux approches ont leur place, la clé ici est le choix, désormais les développeurs auront la liberté de choisir le modèle qui correspond le mieux à leurs besoins. Bien que n’étant pas pour tout le monde, cette fonctionnalité rendra sûrement une grande partie de la communauté des développeurs heureuse.
Pour ceux qui ne le savent pas, il existe de nombreux endroits où AOT est mis en œuvre sous une forme, une forme ou une mode. Un exemple de cela est Xamarin.iOS qui parvient à réaliser à la fois un démarrage rapide de l’application et des tailles de fichiers considérablement réduites. Avec Xamarin.Android, c’est un peu une autre histoire. Le problème ici a toujours été la taille du fichier, même si le temps de démarrage est considérablement amélioré, vous vous retrouvez toujours avec des fichiers binaires un peu volumineux. En théorie, il existe des moyens d’améliorer cela. Par exemple, en implémentant une compilation statique complète, je ne sais pas pourquoi cela n’a jamais été réalisé sur Android alors que c’était possible pour iOS. Si vous connaissez la raison, veuillez vous exprimer dans les commentaires ci-dessous.
Il y a une tonne d’autres améliorations et de nouvelles fonctionnalités dans le cadre de .NET 7 Preview 2. Améliorations apportées à ARM64, nouveau générateur de source Regex et plus encore ! Vous pouvez en savoir plus sur tout cela en vous rendant sur le blog officiel de l’annonce.