Nouveautés de .NET MAUI pour .NET 8

Dans .NET 8, .NET MAUI s’est concentré sur la qualité. Dans .NET 8, 1 618 demandes de tirage (pull request) ont été fusionnées pour mettre fin à 689 problèmes. Cela comprend notamment des modifications de l’équipe .NET MAUI ainsi que de la communauté .NET MAUI. Ces modifications devraient entraîner une augmentation significative de la qualité de .NET 8.

Important

En raison de l’utilisation de dépendances externes sous-jacentes, telles que Xcode ou Android SDK Tools, la stratégie de prise en charge de l’interface utilisateur d’application multiplateforme .NET (.NET MAUI) est différente de la stratégie de prise en charge .NET et .NET Core. Pour plus d’informations, consultez Stratégie de prise en charge de .NET.

Dans .NET 8, .NET MAUI est fourni sous la forme d’une charge de travail .NET et de plusieurs packages NuGet. L’avantage de cette approche est qu’elle vous permet d’épingler facilement vos projets à des versions spécifiques, tout en vous permettant d’avoir facilement un aperçu des builds non publiées ou expérimentales. Quand vous créez un projet .NET MAUI, les packages NuGet nécessaires sont automatiquement ajoutés au projet.

Cet article répertorie les nouvelles fonctionnalités de .NET MAUI pour .NET 8 et fournit des liens vers des informations plus détaillées de chacun.

Pour plus d’informations sur les nouveautés de .NET 8, consultez Nouveautés de .NET 8.

Nouvelle fonctionnalité

Bien que cette version de .NET MAUI se concentre sur la qualité, elle propose aussi de nouvelles fonctionnalités permettant de nouveaux scénarios dans vos applications.

Contrôles

Bureau

Modules de reconnaissance des mouvements

Intégration de la plateforme

XAML

Dépannage

Divers

Dépréciation et suppression de type

Les types ou membres suivants ont été dépréciés :

Les types ou membres suivants ont été supprimés :

Changements de comportement

Le comportement suivant a changé depuis la version précédente :

  • Utiliser le contrôle Map à partir de XAML nécessite désormais la déclaration d’espace de noms xmlns suivante : xmlns:maps="http://schemas.microsoft.com/dotnet/2021/maui/maps".
  • La mise en cache d’images est désactivée sur Android lors du chargement d’une image à partir d’un flux avec la méthode ImageSource.FromStream. Cela est dû au manque de données à l’origine de la création d’une clé de cache raisonnable.
  • Sur iOS, les pages défilent automatiquement lorsque le clavier d’entrée réversible couvre un champ d’entrée de texte, afin que le champ se trouve au-dessus du clavier d’entrée réversible. La méthode KeyboardAutoManagerScroll.Disconnect, dans l’espace de noms Microsoft.Maui.Platform, peut être appelée pour désactiver ce comportement par défaut. La méthode KeyboardAutoManagerScroll.Connect peut être appelée pour réactiver le comportement après sa désactivation.
  • La façon de définir la couleur d’un onglet dans une application Shell a changé sur certaines plateformes. Pour plus d’informations, consultez Apparence d’onglet.
  • Il n’est pas nécessaire de spécifier une valeur pour la propriété de build $(ApplicationIdGuid) dans le fichier projet de votre application. Cela provient du fait que les applications Windows .NET MAUI ne nécessitent plus de GUID en tant qu’ID d’application et utilisent plutôt la valeur de la propriété de build $(ApplicationId) comme ID d’application. Par conséquent, le même ID d’application au format de domaine inverse est désormais utilisé sur toutes les plateformes, telles que com.mycompany.myapp.
  • Les applications Mac Catalyst .NET MAUI ne sont plus limitées à 50 éléments de menu dans la barre de menus.
  • La méthode PlatformImage.FromStream, dans l’espace de noms Microsoft.Maui.Graphics, peut désormais être utilisée pour charger des images sur Windows au lieu d’avoir à utiliser la classe W2DImageLoadingService.
  • Sur Android, les animations respectent les paramètres d’animation système. Pour plus d’informations, consultez Animation de base.

Performances

.NET MAUI 8 présente de nombreux changements. Ces modifications peuvent être classées dans cinq domaines :

Pour plus d'informations, consultez Améliorations des performances de .NET 8 dans .NET MAUI.

Mise à niveau de .NET 7 vers .NET 8

Pour mettre à niveau vos projets de .NET 7 vers .NET 8, installez .NET 8 et la charge de travail .NET MAUI avec Visual Studio 17.8+, ou avec le programme d’installation autonome et la commande dotnet workload install maui.

Ensuite, ouvrez votre fichier .csproj et modifiez les monikers du framework cible (TFM) 7 en 8. Si vous utilisez un TFM, par exemple net7.0-ios13.6, veillez à correspondre à la version de la plateforme ou supprimez-le entièrement. L’exemple suivant montre les TFM pour un projet .NET 7 :

<TargetFrameworks>net7.0-android;net7.0-ios;net7.0-maccatalyst;net7.0-tizen</TargetFrameworks>
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows'))">$(TargetFrameworks);net7.0-windows10.0.19041.0</TargetFrameworks>

L’exemple suivant montre les TFM pour un projet .NET 8 :

<TargetFrameworks>net8.0-android;net8.0-ios;net8.0-maccatalyst;net8.0-tizen</TargetFrameworks>
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows'))">$(TargetFrameworks);net8.0-windows10.0.19041.0</TargetFrameworks>

Les références de package explicites doivent également être ajoutées à votre fichier .csproj pour les packages NuGet .NET MAUI suivants :

<ItemGroup>
    <PackageReference Include="Microsoft.Maui.Controls" Version="$(MauiVersion)" />
    <PackageReference Include="Microsoft.Maui.Controls.Compatibility" Version="$(MauiVersion)" />
</ItemGroup>

La variable $(MauiVersion) est référencée à partir de la version de .NET MAUI que vous avez installée. Vous pouvez remplacer cela en ajoutant la propriété de build $(MauiVersion) à votre fichier .csproj :

<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <TargetFrameworks>net8.0-android;net8.0-ios;net8.0-maccatalyst</TargetFrameworks>
        <UseMaui>True</UseMaui>
        <MauiVersion>8.0.3</MauiVersion>
    </PropertyGroup>
</Project>

Cela peut être utile lors de l’utilisation de builds ad hoc à partir du flux nocturne ou de builds téléchargées à partir de demandes de tirage.

En outre, la propriété de build $(ApplicationIdGuid) peut être supprimée de votre fichier .csproj dans .NET 8. Pour plus d’informations, consultez Modifications de comportement.

Avant de créer votre application mise à niveau pour la première fois, supprimez les dossiers bin et obj.

Remarque

Le modèle de projet pour une application .NET MAUI dans .NET 8 active le contexte nullable pour le projet avec la propriété de build $(Nullable). Pour plus d’informations, consultez Nullable.

Voir aussi