Mapping delle API UWP all'SDK per app di Windows
Questo argomento confronta le principali aree di funzionalità nei diversi moduli in cui vengono visualizzati nella piattaforma UWP e nella SDK per app di Windows. Il contenuto di questa guida alla migrazione supporta il passaggio da XAML UWP a SDK per app di Windows XAML, passando a un framework dell'interfaccia utente diverso, ad esempio Windows Presentation Foundation (WPF), non rientra nell'ambito di queste linee guida.
Funzionalità | UWP | SDK per app di Windows (app in pacchetto) | Note sulla migrazione |
---|---|---|---|
Packaging | MSIX L'app ha un'identità |
MSIX L'app ha un'identità |
Le app UWP che eseguono la migrazione al SDK per app di Windows devono rimanere su MSIX per garantire un'esperienza di installazione e disinstallazione pulita attendibili, nonché l'accesso a tutte le API, incluse quelle che richiedono l'identità. |
Contenitore | App contenitore - security = LowIL - L'accesso al file system viene negoziato Accesso al Registro di sistema |
Contenitore: MSIX - security = MediumIL - Accesso al file system uguale all'utente, AppData scrive virtualizzato - Scritture virtualizzate del Registro di sistema HKCU |
Il passaggio a un livello di integrità superiore con il SDK per app di Windows consente all'app di avere funzionalità maggiori. Tuttavia, tenere presente la virtualizzazione se si vogliono espandere le funzionalità dell'applicazione migrata per scrivere in HKCU o AppData. |
Attivazione e creazione di istanze | Identità del pacchetto + Attivazione coreApplication, a istanza singola per impostazione predefinita | Identità del pacchetto, Main/WinMain + SDK per app di Windows attivazione, multiistanza per impostazione predefinita | Assicurarsi che l'applicazione possa gestire il comportamento a più istanze o usare AppInstance per gestire le istanze. |
Gestione ciclo di vita | Sospensione/ripresa | Notifiche di alimentazione/stato | È possibile usare le notifiche di modifica di Power/State per ridurre il carico di sistema. |
Attività in background | Attività in background InProc e OOP | Attività in background InProc e OOP | È possibile continuare a usare le attività in background OOP. Se l'app richiede la comunicazione con il processo principale, valutare il meccanismo IPC, perché l'attività in background OOP è in esecuzione in LowIL e il processo principale SDK per app di Windows è in esecuzione in MediumIL. È necessario eseguire la migrazione di qualsiasi attività in background inproc alle attività in background COM. Vedere Creare e registrare un'attività in background COM winmain. Per le attività in background di C# OOP, vedi Creare componenti Windows Runtime con C#/WinRT e l'esempio di attività In background. |
Windowing | CoreWindow, AppWindow (anteprima) | HWND, AppWindow v2 | Il comportamento delle finestre è cambiato in modo significativo in SDK per app di Windows. Vedere Migrazione della funzionalità di windowing. |
Messaggistica | CoreDispatcher e DispatcherQueue | DispatcherQueue, WndProc | DispatcherQueue supporta le app Win32. Per altri dettagli sul passaggio da CoreDispatcher a DispatcherQueue, vedere Migrazione delle funzionalità di threading. |
MSDN Platform | XAML di sistema, WebView, DirectX e altri | WinUI 3, Webview2, DirectX e altri | Per maggiori informazioni, vedere Migrazione WinUI. |
Rendering del testo | DirectWrite | DWriteCore | Consente alle applicazioni di accedere alle funzionalità di DWrite più recenti e ricevere nuovi aggiornamenti DWrite separati dalla pianificazione della versione del sistema operativo. Per altre info, vedi Migrazione di DirectWrite to DWriteCore. |
Risorse | MRT | MRTCore | Per altre informazioni, vedere Migrazione da MRT a MRTCore. |
Runtime .NET | .NET Native | .NET 6+/C# 9 | Windows App SDK fornisce l'accesso al runtime .NET moderno e l'accesso alle nuove funzionalità di linguaggio. Tuttavia, la compilazione .NET ReadyToRun non è uguale a .NET Native, pertanto è consigliabile valutare i compromessi delle prestazioni. |
Grafica 2D | Win2D | Win2D per WinUI 3 | Attualmente stiamo lavorando a una versione di Win2D che funziona con il SDK per app di Windows, in corso. Per altre informazioni, vedi la documentazione. |
Componenti Windows Runtime | Modelli di progetto del componente Windows Runtime per la piattaforma UWP | - C++: usare il modello di progetto Componente Windows Runtime (WinUI 3). - C#: Usare C#/WinRT per creare componenti Windows Runtime in una libreria di classi .NET. |
Attualmente stiamo lavorando al supporto per creare componenti Windows Runtime usando C#/WinRT per l'uso nei SDK per app di Windows e WinUI 3. |
Vedi anche
Collabora con noi su GitHub
L'origine di questo contenuto è disponibile in GitHub, in cui è anche possibile creare ed esaminare i problemi e le richieste pull. Per ulteriori informazioni, vedere la guida per i collaboratori.