Différences avec WPF .NET

Cet article décrit les différences entre Windows Presentation Foundation (WPF) sur .NET et .NET Framework. WPF pour .NET est un framework open source forked from the original WPF for .NET Framework source code.

Il existe quelques fonctionnalités de .NET Framework que .NET ne prend pas en charge. Pour plus d’informations sur les technologies non prises en charge, consultez les technologies .NET Framework non disponibles sur .NET.

Projets de style SDK

.NET utilise des fichiers projet de style SDK. Ces fichiers projet sont différents des fichiers projet .NET Framework traditionnels gérés par Visual Studio. Pour migrer vos applications WPF .NET Framework vers .NET, vous devez convertir vos projets. Pour plus d’informations, consultez Comment mettre à niveau une application de bureau WPF vers .NET 7.

Références du package NuGet

Si votre application .NET Framework répertorie ses dépendances NuGet dans un fichier packages.config , migrez vers le <PackageReference> format suivant :

  1. Dans Visual Studio, ouvrez le volet Explorateur de solutions.
  2. Dans votre projet WPF, cliquez avec le bouton droit sur packages.config>Migrate packages.config vers PackageReference.

Le menu contextuel de Explorateur de solutions dans Visual Studio, affichant l’élément « Migrer packages.config ».

Une boîte de dialogue s’affiche montrant les dépendances NuGet de niveau supérieur calculées et demandant quels autres packages NuGet doivent être promus au niveau supérieur. Sélectionnez OK et le fichier packages.config sera supprimé du projet et <PackageReference> les éléments seront ajoutés au fichier projet.

Lorsque votre projet utilise <PackageReference>, les packages ne sont pas stockés localement dans un dossier Packages , ils sont stockés globalement. Ouvrez le fichier projet et supprimez tous les <Analyzer> éléments qui ont fait référence au dossier Packages . Ces analyseurs sont automatiquement inclus avec les références de package NuGet.

Sécurité d'accès du code

La sécurité d’accès au code (CAS) n’est pas prise en charge par .NET. Toutes les fonctionnalités associées au cas sont traitées en fonction de l’hypothèse de confiance totale. WPF pour .NET supprime le code lié au système d’administration centrale. La surface d’API publique de ces types existe toujours pour s’assurer que les appels à ces types réussissent.

Les types liés au cas définis publiquement ont été déplacés hors des assemblys WPF et dans les assemblys de bibliothèque .NET Core. Les assemblys WPF ont un transfert de type défini sur le nouvel emplacement des types déplacés.

Assembly source Assembly cible Type
WindowsBase.dll System.Security.Permissions.dll MediaPermission
MediaPermissionAttribute
MediaPermissionAudio
MediaPermissionImage
MediaPermissionVideo
WebBrowserPermission
WebBrowserPermissionAttribute
WebBrowserPermissionLevel
System.Xaml.dll System.Security.Permissions.dll XamlLoadPermission
System.Xaml.dll System.Windows.Extension.dll XamlAccessLevel

Remarque

Pour réduire les frictions de portage, les fonctionnalités de stockage et de récupération des informations relatives aux propriétés suivantes ont été conservées dans le XamlAccessLevel type.

  • PrivateAccessToTypeName
  • AssemblyNameString