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 di WPF per .NET Framework.
Esistono alcune funzionalità di .NET Framework che .NET non supporta. Per ulteriori informazioni relative alle tecnologie non supportate, vedere tecnologie .NET Framework non supportate su .NET.
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 ai pacchetti NuGet
Se l'app .NET Framework elenca le relative dipendenze NuGet in un file packages.config, eseguire la migrazione al formato <PackageReference>
:
- In Visual Studio, aprire il riquadro Esplora Soluzioni .
- Nel progetto WPF fare clic con il pulsante destro del mouse su packages.config>Eseguire la migrazione di packages.config a 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 di packages.config verrà rimosso dal progetto e gli elementi <PackageReference>
verranno aggiunti al file di progetto.
Quando il progetto usa <PackageReference>
, i pacchetti non vengono archiviati in locale in una cartella pacchetti, ma sono archiviati a livello globale. Apri il file di progetto e rimuovi tutti gli elementi <Analyzer>
che fanno riferimento alla cartella dei pacchetti . Questi analizzatori vengono inclusi automaticamente nei riferimenti al pacchetto NuGet.
Sicurezza di accesso al codice
La sicurezza dall'accesso di codice non è supportata da .NET. Tutte le funzionalità correlate a CAS vengono trattate con il presupposto di attendibilità totale. WPF per .NET rimuove il codice correlato a CAS. L'interfaccia pubblica delle API 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 sono configurati per inoltrare i tipi verso la nuova posizione dei tipi spostati.
Assembly di origine | Assembly di destinazione | Digitare |
---|---|---|
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 nel trasferimento, la funzionalità per l'archiviazione e il recupero di informazioni correlate alle seguenti proprietà è stata mantenuta nel tipo XamlAccessLevel
.
PrivateAccessToTypeName
AssemblyNameString
.NET Desktop feedback