Microsoftlivré le troisième preview (bêta) de .NET 6, la plate-forme de développement logiciel open-source de prochaine génération du fournisseur qui poursuit le travail d’unification de .NET commencé avec .NET 5. Prévue pour novembre, la version de production de .NET 6 devrait contribuer à améliorer le développement d’applications cloud, desktop et mobile. La preview 2 de .Net 6 a été publié le 11 mars, après un premier aperçu livré le 17 février. D'ici la sortie de la version de productiondont le support sera assuré pendant trois ansMicrosoft prévoit de livrer d’autres previews mensuelles. Chaque aperçu portera sur les thèmes, les « epics » et les « user stories » de .NET 6 pour le développement d'applications serveur/cloud, de bureau, IoT et mobiles.  

Microsoft .NET 6 intégrera des fonctionnalités pour Android, iOS et MacOS actuellement présentes dans la plateforme mobile open source .NET de Xamarin. Microsoft étend également l'outil de développement d'applications web client Blazorpour permettre aux développeurs de créer une application client hybride combinant des interfaces utilisateur (UI) web et natives utilisables sur machines desktop et mobile. Blazor WebAssembly a été la première plateforme unifiée livrable dans .NET 5. Publiée en novembre 2020, .NET 5 a marqué le début de l'unification de la plateforme et jeté les bases qui permettront aux développeurs Xamarin d’utiliser la plateforme .NET unifiée lors de l’arrivée de .NET 6.0. L'unification de .NET revient à créer unseule plateforme .NET réunissant les technologies .NET Core, .NET Framework et Xamarin/Mono distinctes. Certaines portions de .NET Framework avaient déjà été transférées vers .NET Core. Pour rappel, .NET 5 avait déjà commencé à combiner .NET Core et Mono/Xamarin dans une bibliothèque de classes de base et une chaîne d'outils. 

Disponible en téléchargement 

La preview 3 est téléchargeable sur dotnet.microsoft.com. Lors de l'annonce, le 8 avril, Microsoft avait précisé les ajouts et améliorations apportés à cet aperçu : 

- Une API non sécurisée, CollectionsMarshal.GetValueRef : elle permet de mettre à jour plus rapidement les valeurs des structures dans les dictionnaires. Cette API est destinée aux scénarios à haute performance. 

- Les performances du casting d'interface ont été améliorées de 16 % à 38 %, ce qui est particulièrement utile pour la correspondance de motifs C# vers et entre les interfaces. 

- La génération de code a été améliorée dans RyuJIT à l’aide de multiples modifications, afin de rendre le processus plus efficace ou le code résultant plus rapide. 

- La prise en charge anticipée de .NET Hot Reload est désormais disponible pour les projets ASP.NET Core et Blazor utilisant dotnet watch. Hot Reload applique les changements de code à une application en cours d'exécution sans la redémarrer et sans perdre l'état de l'application. Les modifications de code que ne peuvent pas être effectuées sur l'application en cours d'exécution pourront être appliquées en reconstruisant et en redémarrant l'application. C’est la première étape d'un projet plus complet visant à mettre cette technologie à la disposition de tous les développeurs .NET, prenant en charge le développement desktop (WPF, WinUIWinForms), les scénarios clients multiplateformes dans .NET MAUI (Multi-platform App UI), et bien plus encore. Hot Reload sera pris en charge par d'autres plateformes dans les futures versions de .NET 6. 

 

Dans la preview 2 de .Net 6, Microsoft avait apporté des améliorations à l'API et aux bibliothèques, amélioré la performance du runtime et livré les premières builds de .NET MAUI (Multi-platform App UI), une boîte à outils d'interface utilisateur (UI) moderne basée sur XamarinL’avis de publication de la preview 2 mettait également l'accent sur des thèmes de la plate-forme, par exemple, l'amélioration des performances de la « boucle interne »autrement dit l'optimisation des outils et des flux de travail utilisés fréquemment et de manière répétée par les développeurs pour mettre à jour, construire et tester leur code. Par exemple les Hot Reload ou rechargements à chaud amélioreront la productivité des développeurs en leur permettant de modifier le code pendant l'exécution d'une application, même sans débogueur.  

Développer pour Windows et MacOS 

Les performances de démarrage du runtime, les modèles d'application, le CLI dotnet et MSBuild font également l'objet d'une attention particulière dans le cadre du thème des boucles internes. Un autre thème concerne l'amélioration de l'expérience dans le développement d'applications client, y compris celui d’un produit mobile plus unifié pour .NET. Dans le cadre de cette initiative, le développement d'iOS, d'Android et de MacOS sera intégré dans l'expérience du SDK .NET et utilisera les bibliothèques .NET. En outre, le framework Xamarin.Forms inter-UI évolue vers .NET MAUI, ce qui permettra aux développeurs de créer des applications pour Android, Windows et MacOS à partir de la même base de code. Les applications Blazor fonctionneront en mode natif sur Windows et MacOS via .NET MAUI. 

Microsoft a également signalé l'ajout d'API et des améliorations dans les bibliothèques .NET. Par exemple, JsonSerializer (System.Tex.Json) permet désormais d'ignorer les cycles lors de la sérialisation d'un graphe d'objets, tandis que la nouvelle collection PriorityQueue<TElement.TPriority> permet l'ajout de nouveaux éléments avec une valeur et une priorité. La preview 2 a également apporté une meilleure analyse des formats numériques standard ainsi que des améliorations au niveau de l'exécution et du JIT. Dans l'aperçu 1MAUI prenait en charge pour la première fois les plateformes Android et iOS. Les prochaines versions ajouteront la prise en charge des machines desktop MacOS et Windows. Blazor, qui repose sur MAUI, s'appuie sur la pile UI pour fournir un conteneur d'application natif et des contrôles de conteneur d'application natifs.