Differenze con WPF .NET

Questo articolo descrive le differenze tra Windows Presentation Foundation (WPF) in .NET e .NET Framework. WPF per .NET è un framework open source copiato tramite fork dal codice sorgente originale wpf per .NET Framework.

Esistono alcune funzionalità di .NET Framework che .NET non supporta. Per altre informazioni sulle tecnologie non supportate, vedere Tecnologie .NET Framework non disponibili in .NET.

Importante

La documentazione di Desktop Guide per .NET 7 e .NET 6 è in fase di costruzione.

Progetti in stile SDK

.NET usa file di progetto in stile SDK. Questi file di progetto sono diversi dai file di progetto .NET Framework tradizionali gestiti da Visual Studio. Per eseguire la migrazione delle app WPF di .NET Framework a .NET, è necessario convertire i progetti. Per altre informazioni, vedere Come aggiornare un'app desktop WPF a .NET 7.

Riferimenti al pacchetto NuGet

Se l'app .NET Framework elenca le relative dipendenze NuGet in un file packages.config , eseguire la migrazione al <PackageReference> formato:

  1. In Visual Studio aprire il riquadro Esplora soluzioni.
  2. Nel progetto WPF fare clic con il pulsante destro del mouse su packages.config Migrate packages.config to PackageReference .config.in PackageReference.In your WPF project, right-click packages.config>Migrate packages.config to PackageReference.

Upgrading to PackageReference.

Verrà visualizzata una finestra di dialogo che mostra le dipendenze NuGet di primo livello calcolate e chiede quali altri pacchetti NuGet devono essere alzati di livello superiore. Selezionare OK e il file packages.config verrà rimosso dal progetto e <PackageReference> gli elementi verranno aggiunti al file di progetto.

Quando il progetto usa <PackageReference>, i pacchetti non vengono archiviati in locale in una cartella Packages , vengono archiviati a livello globale. Aprire il file di progetto e rimuovere tutti gli <Analyzer> elementi che fanno riferimento alla cartella Packages . Questi analizzatori vengono inclusi automaticamente nei riferimenti al pacchetto NuGet.

Sicurezza dall'accesso di codice

La sicurezza dall'accesso di codice non è supportata da .NET. Tutte le funzionalità correlate al sito di amministrazione centrale vengono trattate in base al presupposto di attendibilità totale. WPF per .NET rimuove il codice correlato a CAS. La superficie dell'API pubblica di questi tipi esiste ancora per garantire che le chiamate a questi tipi abbiano esito positivo.

I tipi correlati a CAS definiti pubblicamente sono stati spostati dagli assembly WPF e negli assembly della libreria .NET core. Gli assembly WPF hanno l'inoltro dei tipi impostato sulla nuova posizione dei tipi spostati.

Assembly di origine Assembly di destinazione Tipo
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

Nota

Per ridurre al minimo l'attrito delle porte, la funzionalità per l'archiviazione e il recupero di informazioni correlate alle proprietà seguenti è stata mantenuta nel XamlAccessLevel tipo .

  • PrivateAccessToTypeName
  • AssemblyNameString