Udostępnij za pośrednictwem


Różnice w WPF .NET

W tym artykule opisano różnice między programem Windows Presentation Foundation (WPF) na platformie .NET i programie .NET Framework. WPF for .NET to platforma typu open source rozwidlenia z oryginalnego kodu źródłowego WPF dla platformy .NET Framework.

Istnieje kilka funkcji programu .NET Framework, których platforma .NET nie obsługuje. Aby uzyskać więcej informacji na temat nieobsługiwanych technologii, zobacz technologie platformy .NET Framework niedostępne na platformie .NET.

Projekty w stylu zestawu SDK

Platforma .NET używa plików projektu w stylu zestawu SDK. Te pliki projektu różnią się od tradycyjnych plików projektów .NET Framework zarządzanych przez program Visual Studio. Aby przeprowadzić migrację aplikacji .NET Framework WPF do platformy .NET, musisz przekonwertować projekty. Aby uzyskać więcej informacji, zobacz Jak uaktualnić aplikację klasyczną WPF do platformy .NET 7.

Odwołania do pakietów NuGet

Jeśli aplikacja .NET Framework wyświetla jej zależności NuGet w pliku packages.config, przeprowadź migrację do formatu <PackageReference>:

  1. W programie Visual Studio otwórz okienko Eksplorator rozwiązań.
  2. W projekcie WPF kliknij prawym przyciskiem myszy pozycję packages.config>Migrate packages.config to PackageReference.

kontekstowe menu Eksploratora rozwiązań w programie Visual Studio z wyświetlonym elementem

Zostanie wyświetlone okno dialogowe przedstawiające obliczone zależności NuGet najwyższego poziomu i z pytaniem, które inne pakiety NuGet powinny zostać podniesione do najwyższego poziomu. Wybierz pozycję OK, a plik packages.config zostanie usunięty z projektu, a elementy <PackageReference> zostaną dodane do pliku projektu.

Gdy projekt używa <PackageReference>, pakiety nie są przechowywane lokalnie w folderze Packages, są one przechowywane globalnie. Otwórz plik projektu i usuń wszystkie elementy <Analyzer>, które odwoływały się do folderu pakietów . Te analizatory są automatycznie dołączane do referencji pakietów NuGet.

Bezpieczeństwo dostępu do kodu

Zabezpieczenia dostępu kodu (CAS) nie są obsługiwane przez platformę .NET. Wszystkie funkcje związane z usługą CAS są traktowane zgodnie z założeniem pełnego zaufania. WPF dla platformy .NET usuwa kod związany z protokołem CAS. Publiczny obszar interfejsu API tych typów nadal istnieje, aby zapewnić, że wywołania do tych typów kończą się powodzeniem.

Publicznie zdefiniowane typy związane z serwerem CAS zostały przeniesione z zestawów WPF i do podstawowych zestawów bibliotek .NET. Zestawy WPF mają przekierowanie typów ustawione do nowej lokalizacji przeniesionych typów.

Zestaw źródłowy Zestaw docelowy Typ
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

Notatka

Aby zminimalizować trudności związane z portowaniem, pozostawiono funkcję przechowywania i pobierania informacji dla poniższych właściwości w typie XamlAccessLevel.

  • PrivateAccessToTypeName
  • AssemblyNameString