AccueilActualités informatiquePrêt pour la production : première version candidate de .NET 6

Prêt pour la production : première version candidate de .NET 6

Après un total de sept aperçus, la version publiée hier est la première des deux versions candidates de .NET 6. Elle offre non seulement une stabilisation de certaines fonctions déjà publiées, comme le rechargement à chaud, mais aussi de nombreuses nouvelles fonctions pour les développeurs web.

Alors que .NET 6, y compris ASP.NET Core 6.0 et Entity Framework Core 6.0, recevront une licence de mise en service de Microsoft dans la version RC1, ce qui leur permettra d’être utilisés en production, cela exclut spécifiquement le développement d’applications multiplateformes avec .NET Multi-Platform App UI (.NET MAUI) pour Android, iOS, macOS et Windows. Scott Hunter explique dans un article de blog qu’ils n’atteindront pas un état complet même à la date annoncée de sortie de .NET 6, le 9 novembre 2021, et qu’ils ont donc reporté la sortie de ce type d’application au deuxième trimestre de 2022. Au moins l’installation de .NET MAUI est maintenant possible directement via Visual Studio 2022, qui a été publié en parallèle comme Preview 4. Avec Live Preview, les développeurs peuvent voir l’état actuel de l’application.

Aperçu en direct d’une application MAUI dans Visual Studio 2022.

Sommaire

Dans le cas du cadre web Blazor 6.0 inclus dans .NET 6, la version RC1 se concentre sur des scénarios d’interopérabilité étendue entre C# et JavaScript. Pour intégrer Blazor dans des applications JavaScript existantes, il est maintenant possible de rendre des composants Blazor individuels à partir de code JavaScript. Sur cette base, un exemple sur GitHub montre l’utilisation de Blazor dans des applications à page unique basées sur Angular et React. Microsoft travaille également à rendre les composants Blazor disponibles en tant que composants Web standard. Toutefois, le paquet NuGet Microsoft.AspNetCore.Components.CustomElements, qui permet de créer des éléments personnalisés HTML, n’en est qu’au stade expérimental alpha.

Lire aussi

Grâce à JavaScript Initializer, un développeur peut désormais exécuter du code JavaScript avant et après le chargement des applications Blazor et des bibliothèques de classe Razor. Après avoir fourni un flux de données rapide de JavaScript à C# dans l’aperçu 7, la RC1 offre maintenant le chemin inverse de C# à JavaScript avec la classe .NET. DotNetStreamReference; en JavaScript, les données entrent sous forme de tableau tampon ou de flux lisible. Les fichiers JavaScript, qui auparavant devaient toujours être situés dans le dossier wwwroot, peuvent être assignés directement aux fichiers Razor dans Blazor 6 en leur donnant l’extension de nom de fichier .razor.js ou .cshtml.js.

La classe NavigationManager supports avec GetUriWithQueryParameter() et GetUriWithQueryParameters() deux nouvelles méthodes de traitement des chaînes de requête. Dans le type de paramètre d’événement MouseEventArgs il y a maintenant les valeurs PageX et PageY.

En tant qu’alternative aux websockets, Blazor Server a permis une communication continue navigateur-serveur via HTTP long polling depuis la première version. Microsoft a désactivé le repli automatique vers cette stratégie dans Blazor Server 6.0 afin que le polling long ne soit pas utilisé par erreur. Pour Blazor WebAssembly, dont le chargement des DLL était auparavant bloqué par certains pare-feu et applications de sécurité, Blazor 6.0 offre désormais un processus de chargement personnalisable. Selon l’article du blog, Microsoft ne révélera les détails à ce sujet que bientôt.

L’annonce actuelle mentionne déjà un certain nombre d’améliorations pour OpenAPI, la liaison des paramètres et la gestion des erreurs pour la nouvelle programmation simplifiée de WebAPI. La configuration de HTTP/3 est également plus facile.

Le mappeur ORM Entity Framework Core de Microsoft prend désormais en charge les tables de base de données temporelles dans la version 6 RC1, qui stockent l’historique des valeurs dans les enregistrements. Une table temporelle est définie avec l’ajout IsTemporal() dans l’API Fluent. La requête est alors effectuée avec les nouveaux opérateurs TemporalAsOf(), TemporalAll(), TemporalBetween(), TemporalFromTo() et TemporalContainedIn(). La prise en charge des tables temporelles s’applique à toutes les bases de données relationnelles. Microsoft lui-même propose cette fonctionnalité pour son serveur SQL. D’autres fabricants de bases de données peuvent l’inclure dans leurs pilotes.

Conférence en ligne sur .NET 6

Le 23 novembre 2021, le développeur heise et dpunkt.verlag en coopération avec www.IT-Visions.de organise une conférence en ligne sur la prochaine version LTS (Long-Term Support) de la plateforme de développement .NET de Microsoft, avec le programme betterCode() .NET 6. Sa sortie est prévue pour novembre et constitue la nouvelle base de tous les programmes basés sur la plate-forme de développement de Microsoft, qu’il s’agisse d’applications de bureau avec Windows Forms et WPF, d’applications web avec ASP.NET, d’applications mobiles basées sur Universal Windows Platform et .NET MAUI ou de jeux Unity. Les billets et de plus amples informations sur le programme de la conférence betterCode() .NET 6 sont disponibles sur le site web de la conférence.

Lors de la rétro-ingénierie de bases de données avec des tables intermédiaires N:M pures, le commandlet PowerShell génère Scaffold-DbContext ne génère plus de classes pour les tables intermédiaires et construit à la place deux relations directes avec ICollection<T>. Cette fonctionnalité existe depuis la version 5.0, mais elle n’a pas été exploitée par rétro-ingénierie jusqu’à présent. Cette fois encore, l’équipe de développement a abandonné certaines fonctionnalités prévues, comme la prise en charge des types de colonnes JSON.

Microsoft fait volte-face sur les espaces de noms implicites, que l’aperçu 7 avait automatiquement importés dans tous les projets .NET 6 via Global Using (une fonctionnalité de C# 10). Cet automatisme a entraîné des problèmes lors de la mise à jour du code du programme qui utilisait des classes portant le même nom dans d’autres espaces de noms. À partir de la RC1, les espaces de noms implicites ne sont actifs que si le fichier de projet .csproj se trouve dans un fichier d’espace de noms. <PropertyGroup> explicitement la balise <ImplicitUsings>enable</ImplicitUsings> se produit. C’est uniquement le cas pour les nouveaux projets C# créés avec .NET 6 dans Visual Studio 2022 ; les projets plus anciens qui sont mis à niveau vers .NET 6 ne reçoivent pas la balise. Dans les nouveaux projets, les développeurs C# peuvent supprimer les espaces de noms implicites en supprimant la balise ou en utilisant la commande <ImplicitUsings>disable</ImplicitUsings> les désactiver. Alternativement, on peut aussi désactiver des espaces de noms individuels dans un fichier <ItemGroup> avec <Using Remove="Namensraum"> désactiver


(carte)

Plus d'articles