Bienvenue à .NET 8 ! Le premier aperçu est prêt à être téléchargé : demandez votre copie du premier aperçu de .NET 8 et commencez à créer des applications dès aujourd'hui. Faites défiler vers le bas pour voir la liste des fonctionnalités incluses dans cet aperçu. .NET 8 est une version de support à long terme (LTS). Ce billet de blog couvre les principaux thèmes et objectifs qui déterminent la priorité et la sélection des améliorations à développer. Les versions d'aperçu et les versions candidates de .NET 8 seront livrées tous les mois. Comme d'habitude, la version finale sera livrée en novembre à l'occasion de la conférence .NET.Les versions de .NET comprennent des produits, des bibliothèques, un moteur d'exécution et des outils, et représentent une collaboration entre plusieurs équipes au sein et en dehors de Microsoft. Les thèmes plus larges abordés dans ce billet de blog n'englobent pas tous les scénarios et investissements clés pour .NET 8. Ils représentent de vastes domaines, mais ne sont qu'une partie de l'ensemble des travaux importants réalisés pour .NET 8. Nous prévoyons d'importants investissements dans ASP.NET Core, Blazor, EF Core, WinForms, WPF et d'autres plateformes.
Bienvenue à .NET 8
À la fin de l'année dernière, nous avons livré .NET 7, le résultat d'une collaboration entre l'équipe .NET et l'incroyable communauté qui a soutenu la version avec plus de 28 000 contributions de plus de 10 000 membres de la communauté. .NET 7 est le cadre de choix pour la création d'applications aujourd'hui. La version unifie la plate-forme avec un support natif pour ARM64 et un support amélioré pour Linux. Elle contribue à la modernisation de vos applications grâce à des outils tels que .NET MAUI, qui permet de créer des applications mobiles et de bureau multiplateformes à partir de la même base de code. Il inclut des améliorations de la performance des API et facilite la création et le déploiement d'applications natives distribuées en nuage. .NET 7 simplifie l'expérience de création d'applications en réduisant la quantité de code nécessaire grâce aux améliorations apportées à C# 11 et en permettant de créer et de configurer des API avec seulement quelques lignes de code. Les nombreuses améliorations apportées aux outils, des tunnels de développement qui facilitent le débogage des intégrations d'API en nuage à la création de conteneurs directement à partir du SDK .NET, aident les développeurs à être plus productifs.
Nous mettrons à jour les nouveautés de .NET 8 tout au long de la version. Il décrira les principales fonctionnalités de l'ensemble de la version, tandis que les articles de blog se concentreront sur les nouvelles fonctionnalités de chaque version préliminaire.
Vous pouvez lire ce que nous avons livré dans la première version préliminaire en faisant défiler la page. Tout d'abord, jetons un coup d'œil sur ce qu'est la vision pour .NET 8.
La meilleure plateforme et les meilleurs outils pour les développeurs natifs du cloud
Nous pensons que les développeurs .NET doivent être en mesure de transférer rapidement leurs applications vers le cloud, de les faire évoluer sans compromettre les performances et de les faire évoluer en fonction des données et des commentaires exploitables concernant les applications en production. Nous allons investir pour faciliter la gestion de l'expérience complète de bout en bout, du développement et des tests locaux à l'intégration et au déploiement continus. Notre objectif est de faciliter la mise en œuvre d'architectures de microservices et la création et le déploiement de conteneurs.
Une expérience formidable grâce à l'utilisation de MAUI et Blazor hybrides pour le développement multiplateforme mobile et bureau
À l'époque de .NET 7, nous avons publié le SDK .NET Multi-platform App UI (MAUI) et la prise en charge des outils Visual Studio. .NET MAUI fournit un cadre pour la création d'applications natives pour les appareils mobiles et de bureau qui fonctionnent sous Android, iOS, macOS et Windows avec un seul code C#. Outre la prise en charge de l'interface utilisateur XAML, vous pouvez également utiliser Blazor pour créer des applications hybrides avec des composants d'interface utilisateur Razor qui peuvent accéder aux plates-formes natives des appareils et être partagés entre le mobile, le bureau et le Web. L'équipe .NET prévoit de s'appuyer sur ces expériences et de se concentrer sur l'amélioration de la qualité, de la stabilité, des performances et de l'intégration du SDK et des outils.
Momentum : l'accent est mis sur la qualité et les performances, en fonction de vos commentaires
Chaque version de .NET apporte des améliorations en termes de performances, de qualité, de stabilité et de facilité d'utilisation des API, des bibliothèques et des frameworks qui composent l'écosystème .NET actif et en pleine expansion. Bon nombre de ces améliorations ont été identifiées et classées par ordre de priorité par les clients et les membres de la communauté. .NET 8 suivra la même tendance, en s'appuyant sur vos commentaires très appréciés pour nous aider à guider notre vision et à nous concentrer sur nos objectifs.
Soyez à niveau et restez à jour
L'assistance à la mise à niveau de .NET est un outil précieux qui aide les développeurs à faire migrer leurs applications des anciennes versions de .NET Framework vers les nouvelles versions. La dernière version de cet outil est dotée de fonctionnalités améliorées qui prennent en charge de nouveaux scénarios et traitent davantage de cas. Grâce à cet outil, les développeurs peuvent désormais mettre à niveau leurs applications vers .NET 6 ou .NET 7 en toute simplicité.
L'outil peut détecter et suggérer automatiquement les modifications à apporter au code pour assurer la compatibilité avec les nouvelles versions du framework. En outre, il peut gérer des scénarios plus complexes, comme la mise à niveau d'applications qui utilisent des bibliothèques tierces et l'intégration de nouvelles fonctionnalités de la plate-forme. Ces améliorations font de l'assistance à la mise à niveau de .NET un outil indispensable pour les développeurs qui souhaitent maintenir leurs applications à jour et tirer parti des dernières fonctionnalités de .NET. Cet outil a récemment été introduit en tant qu'extension de Visual Studio pour vous aider à effectuer la mise à niveau depuis le confort de Visual Studio.
Cibler .NET 8
Pour cibler .NET 8, vous devez d'abord vous assurer que le SDK .NET 8 est installé à partir du site officiel de Microsoft. Ensuite, vous pouvez créer un nouveau projet et préciser que vous souhaitez cibler .NET 8 en définissant le cadre cible approprié dans les paramètres du projet.
Vous pouvez également mettre à jour un projet existant pour cibler .NET 8 en modifiant le cadre cible dans les propriétés du projet. Pour ce faire, cliquez avec le bouton droit de la souris sur le projet dans Visual Studio ou votre IDE préféré, sélectionnez "Propriétés", puis l'onglet "Application". À partir de là, vous pouvez choisir la version du framework cible que vous souhaitez utiliser. Ceci définira le framework cible approprié :
| Code : | Sélectionner tout |
<TargetFramework>net8.0</TargetFramework>
Gardez à l'esprit que cibler .NET 8 peut nécessiter des modifications de votre code ou de vos dépendances, car il peut y avoir des changements dans les API ou d'autres fonctionnalités des versions précédentes de .NET. Nous vous conseillons de consulter la documentation et les notes de mise à jour de .NET 8 pour vous assurer que votre code et vos dépendances sont compatibles avec la nouvelle version.
Nouveautés de .NET 8 Preview 1
Notre premier aperçu regorge de nouvelles fonctionnalités que vous pouvez essayer dès aujourd'hui. Voici un résumé de ce à quoi vous pouvez vous attendre.
Native AOT
Les premières fonctions NativeAOT ont été livrées dans .NET 7 et ciblaient les applications console. La compilation Ahead-of-Time (AOT) est une fonctionnalité importante de .NET qui peut avoir un impact significatif sur les performances des applications .NET. L'équipe .NET se concentrera sur l'affinage de certains éléments fondamentaux pour .NET 8 tels que la taille. La publication d'une application avec Native AOT crée une version entièrement autonome de votre application qui n'a pas besoin d'un runtime séparé car tout est inclus dans un seul fichier. Depuis l'aperçu 1, ce fichier unique est plus petit. En fait, les versions Linux sont maintenant jusqu'à 50 % plus petites.
Voici les tailles d'une application "Hello, World" avec Native AOT qui inclut l'intégralité du runtime .NET :
Native AOT continuera à s'étendre et à cibler d'autres scénarios d'application dans .NET 8.
Au cas où vous ne seriez pas familier avec AOT, voici quelques avantages qu'il procure :
- Empreinte mémoire réduite : Le code compilé par AOT nécessite moins de mémoire que le code compilé par JIT, car le compilateur JIT génère du code intermédiaire qui n'est pas nécessaire dans les applications compilées par AOT. Cela peut être particulièrement bénéfique pour les appareils disposant d'une mémoire limitée, tels que les systèmes embarqués et les appareils mobiles.
- Amélioration du temps de démarrage : Le code compilé par AOT démarre plus rapidement que le code compilé par JIT, car il élimine la nécessité pour le compilateur JIT de générer du code intermédiaire et d'optimiser le code pour l'environnement matériel et logiciel spécifique. Cela peut être particulièrement bénéfique pour les applications qui doivent démarrer rapidement, comme les services système, les "fonctions" sans serveur et les tâches d'arrière-plan.
- Amélioration de l'autonomie de la batterie : Le code compilé AOT consomme moins d'énergie par rapport au code compilé JIT, car il élimine la nécessité pour le compilateur JIT de générer du code intermédiaire et d'optimiser le code pour l'environnement matériel et logiciel spécifique. Cela peut être particulièrement bénéfique pour les appareils qui dépendent des batteries, comme les appareils mobiles.
Images de conteneurs .NET
Les développeurs .NET peuvent utiliser des images de conteneur pour empaqueter et déployer leurs applications dans un format léger et portable qui fonctionne dans différents environnements et peut être facilement déployé dans le nuage. Le Preview 1 comprend les améliorations suivantes dans la façon dont les images de conteneurs peuvent être utilisées pour les applications .NET :
Mise à jour de la distribution Linux par défaut vers Debian 12 : Les images de conteneurs utilisent maintenant Debian 12 (Bookworm), la version LTS (Long-term support) qui a été livrée plus tôt cette année. Afin de donner à notre communauté suffisamment de temps pour la transition, nous essayons de l'adopter avec le Preview 1.
Changement de balisage : les images de conteneur de l'aperçu .NET 8 utiliseront le balisage 8.0-preview (et non 8.0) et passeront à 8.0 avec les versions candidates. L'objectif de cette approche est de décrire plus clairement les versions préliminaires comme telles. Ce changement a été effectué suite à une demande de la communauté.
Exécuter les images de conteneurs avec des utilisateurs non root : Bien que les images de base des conteneurs soient presque toujours configurées pour s'exécuter avec l'utilisateur root - un paramètre qui tend à être conservé en production - ce n'est pas toujours la meilleure approche. Cependant, il est difficile de configurer chaque application pour qu'elle ait un utilisateur différent, et les images de conteneurs ne sont pas fournies avec un utilisateur non root approprié aux charges de travail des conteneurs.
.NET 8 offre une meilleure solution. À partir de l'aperçu 1, toutes les images de conteneurs que nous publions pourront être utilisées par un utilisateur non root. Voici un exemple de la ligne unique utilisée pour exécuter un conteneur en tant que non-root pour Dockerfiles :
| Code : | Sélectionner tout |
USER app
En outre, vous pouvez maintenant lancer des images de conteneur avec -u app. Le port par défaut est passé du port 80 au port 8080. Il s'agit d'un changement de rupture qui était nécessaire afin d'activer le scénario non-root, puisque le port 80 est un port privilégié.
Runtime et bibliothèques
Méthodes utilitaires pour travailler avec l'aléatoire
System.Random et System.Security.Cryptography.RandomNumberGenerator ont tous deux gagné des méthodes utilitaires pour choisir de manière aléatoire des éléments dans l'ensemble d'entrée ("avec remplacement"
La méthode Shuffle est utile pour réduire le biais de formation dans l'apprentissage automatique (ainsi, la première chose n'est pas toujours la formation et la dernière chose est toujours le test) :...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.