Domande frequenti per sviluppatori Windows

Questo articolo è destinato a promuovere una conoscenza comune dell'esperienza di sviluppo e della direzione del prodotto di Windows. Le risposte a queste domande si applicano a Windows App SDK versione 1.0.

Informazioni generali

Cosa devo usare per compilare app di Windows?

Per lo sviluppo di applicazioni desktop di Windows, Windows App SDK/WinUI 3 potrebbe essere una scelta ottimale. Questa combinazione di tecnologie ha esito positivo UWP/WinUI 2 per le app desktop.

Altre opzioni possono essere più appropriate a seconda di ciò che stai creando e di come lo stai creando:

  • Se Windows App SDK/WinUI 3 non soddisfa le tue esigenze, potresti usare UWP/WinUI 2.
  • Se la destinazione è multipiattaforma:React Native e .NET MAUI ti consentono di creare app multipiattaforma. .NET MAUI è un'ottima scelta per gli sviluppatori C#. React Native risulterà familiare agli sviluppatori JavaScript/TypeScript.
  • Gli sviluppatori Web possono usare WebView2 come host dell'applicazione. In questo modo puoi usare la tecnologia Web per creare app desktop che possano accedere alle API di Windows SDK e Windows App SDK. Puoi anche usare React Native per Windows.
  • Per gli sviluppatori C++ le app desktop, Windows App SDK /WinUI 3 sono un'ottima scelta. Se stai creando un gioco, prendi in considerazione l'uso di DirectX.
  • Se sei uno sviluppatore Rust consulta Rust per Windows.

Esistono altre tecnologie di sviluppo che possono essere più appropriate a seconda delle esigenze e delle preferenze tecnologiche. Altre informazioni sulla scelta di una tecnologia di sviluppo.

Dove posso trovare un confronto semplice tra le tecnologie di sviluppo di Windows?

SDK per app di Windows / WinUI 3

Che cos'è Windows App SDK?

Windows App SDK è una piattaforma di sviluppo di applicazioni Windows che consente di creare app desktop belle, moderne e compatibili con le versioni precedenti (fino a Windows 10 1809). WinUI 3 è il framework dell'interfaccia utente fornito con Windows App SDK.

Qual è la differenza tra Windows App SDK e Windows SDK?

Entrambi sono software development kit (SDK) che consentono di creare app di Windows.

Windows App SDK è una nuova piattaforma di sviluppo che consente di creare app desktop moderne che possano essere installate tra le versioni di Windows (fino a Windows 10 1809). Quando usi Windows App SDK per creare un'app, potrai accedere alle funzionalità più recenti della piattaforma di sviluppo di Windows. Windows App SDK include WinUI 3.

Windows SDK è una piattaforma di sviluppo che consente di creare app UWP e app win32/desktop. È progettato per le API Windows associate a versioni specifiche del sistema operativo.

SDK per app di Windows non sostituisce Windows SDK. Windows App SDK è invece un complemento a Windows SDK. Fornisce un'astrazione comoda e disaccoppiata del sistema operativo intorno al ricco catalogo di API del sistema operativo Windows a cui è già possibile accedere tramite Windows SDK. Quando crei app con Windows App SDK, potresti finire con l’usare alcune API di Windows SDK a seconda delle funzionalità necessarie. Nel corso del tempo, verranno elevate altre funzionalità di Windows SDK in Windows App SDK.

Posso usare Windows App SDK/WinUI 3 nell'app di Windows esistente?

Tieni presente che WinUI 3 (un framework dell'interfaccia utente) viene fornito con Windows App SDK (un framework di sviluppo della piattaforma Windows).

In generale, non puoi utilizzare WinUI 3 a meno che non sia possibile migrare completamente il framework dell'interfaccia utente. Stiamo lavorando a una funzionalità denominata isole XAML che ti consente di ospitare contenuto WinUI 3 in altri framework dell'interfaccia utente (WPF, Win32).

Dovresti essere in grado di usare gli elementi di Windows App SDK in qualsiasi app Win32/desktop, a seconda della modalità di compilazione dell'app esistente. Le app UWP non sono supportate da Windows App SDK/WinUI 3.

Ciò significa che le app WPF/MFC/WinForms possono usare le API di Windows App SDK non correlate a WinUI 3. Esempi di queste API includono il ciclo di vita dell'app, il windowing e le notifiche di tipo avviso popup.

È necessario usare Visual Studio per creare app WinUI 3?

È consigliabile usare Visual Studio 2022 versioni 17.1 e successive per sviluppare app Windows App SDK/WinUI 3. L'uso della versione più recente di Visual Studio consente di accedere a funzionalità di sviluppo avanzate, ad esempio Ricaricamento rapido.

È possibile usare altri IDE e flussi di lavoro di sviluppo, ma Visual Studio è attualmente l'unico IDE ufficialmente supportato per Windows App SDK/WinUI 3. Tieni presente che MSBuild è necessario per compilare progetti che usano XAML o Windows App SDK/WinUI 3.

Quando creo un'app con Windows App SDK/WinUI 3, sto creando un'app WinUI 3?

Sì: "app WinUI 3" è il termine che ti consigliamo di usare.

Posso aggiornare in modo incrementale l'app WinUI 2 a WinUI 3 sostituendo gradualmente i componenti winUI 2 con componenti WinUI 3?

N.: Windows App SDK non può essere usato nelle app UWP e WinUI 2 non può essere combinato con WinUI 3. Consulta Informazioni sulla migrazione dalla piattaforma UWP a Windows App SDK.

Quanto è difficile eseguire la migrazione di un'app UWP a Windows App SDK/WinUI 3?

La migrazione dei componenti dell'interfaccia utente è in genere semplice (per C# e C++/WinRT). In caso contrario, il costo della migrazione dalla piattaforma UWP a Windows App SDK/WinUI 3 dipende principalmente da questi fattori:

  1. Personalizzazione di file di progetto e MSBuild: la migrazione del progetto potrebbe richiedere un impegno notevole, a seconda che si usino funzionalità MSBuild avanzate o meno.
  2. Migrazione dell'API .NET: se l'app UWP si basa su .NET, sarà necessario eseguire l'aggiornamento a .NET 6. Nella maggior parte dei casi, l'adozione di .NET 6 è semplice.
  3. Librerie dei componenti dell'interfaccia utente: se usi le librerie dei componenti dell'interfaccia utente, saranno necessarie nuove versioni di queste librerie destinate a WinUI 3.
  4. Se il codice sorgente della piattaforma UWP è scritto nell’ormai superato C++/CX, sarà necessario eseguire alcune operazioni di conversione del codice sorgente. Consulta Passare a C++/WinRT da C++/CX.

Per ulteriori informazioni sulla migrazione UWP, consulta Informazioni sulla migrazione da UWP a Windows App SDK.

Se dispongo di un'app UWP esistente nello Store, posso pubblicare una nuova app WinUI 3 in pacchetto usando gli stessi identificatori?

Sì, le app aggiornate possono essere pubblicate senza dover aggiornare l'identità dell'applicazione. Gli utenti che hanno la versione precedente verranno aggiornati alla nuova versione. Queste indicazioni si applicano solo alle app desktop. Le app Xbox, HoloLens e Surface Hub non possono ancora eseguire la migrazione a WinUI 3.

Come si crea un pacchetto o si distribuisce l'app WinUI 3?

Dove posso trovare le linee guida per la migrazione di Windows App SDK?

Devo usare il markup XAML se voglio usare WinUI 3?

N.: I controlli dell'interfaccia utente possono essere creati nel codice. Esistono tuttavia molti vantaggi per rappresentare l'interfaccia utente di WinUI 3 sotto forma di markup XAML dichiarativo, ad esempio un'esperienza di sviluppo migliorata.

Se esegui la migrazione dall piattaforma UWP a WinUI 3, probabilmente sarai in grado di riutilizzare molti markup XAML e codice correlato all'interfaccia utente (ma dovrai aggiornare alcune delle sintassi). Se si esegue la migrazione da WPF a WinUI 3, sarà possibile riutilizzare molti dei concetti, ma il set di controlli e le API saranno diversi.

Visual Studio dispone di una finestra di progettazione o di una finestra di progettazione grafica per WinUI 3?

N.: Sappiamo che questa è una lacuna nell'esperienza di sviluppo di WinUI 3. Gli strumenti come il ricaricamento rapido XAML possono essere utili in molti scenari.

Windows App SDK include WinUI 3?

Sì. WinUI 3 viene fornito come parte di Windows App SDK.

Windows App SDK include WinUI 2?

N.: WinUI 2 fa parte della piattaforma UWP.

WinUI 2 e WinUI 3 sono basati sulla stessa tecnologia?

Non esattamente. Anche se WinUI 3 è stato avviato dal codebase winUI 2, sono tecnologie distinte. WinUI 2 e WinUI 3 sono framework dell'interfaccia utente basati su XAML che funzionano in .NET e C++. Tieni presente che WinUI 2 e WinUI 3 non sono compatibili tra loro.

Posso usare WinUI 3 senza usare Windows App SDK?

N.: WinUI 3 viene fornito come parte di Windows App SDK.

Posso usare WinUI 3 in un'app non in pacchetto?

Sì. Tutte le tecnologie in Windows App SDK funzionano in app non in pacchetto, tra cui WinUI 3.

Qual è la differenza tra le isole XAML e WinUI 3?

Le isole XAML consentono di ospitare controlli WinUI moderni insieme all'interfaccia utente Win32 esistente da altri framework, ad esempio WinForms e WPF. Attualmente, le isole XAML sono supportate con la maggior parte dei controlli XAML di sistema e WinUI 2. Per altre informazioni, vedere qui. Il supporto delle isole XAML per i controlli WinUI 3 è attualmente in fase di sviluppo.

Se uso WinUI 3, la mia app risulterà moderna sia su Windows 11 che su Windows 10?

Sì, l'interfaccia utente dell'app erediterà i principi di progettazione dell'interfaccia utente Fluent più recenti in tutte le versioni supportate di Windows 11 e Windows 10 fino alla versione 1809 negli scenari in pacchetto e non in pacchetto.

Posso usare sfondi Mica (Windows 11) o Acrylic (Windows 10) nelle app create con Windows App SDK?

Per il momento no. Questa cosa attualmente è in fase di sviluppo.

Dove posso trovare esempi di WinUI 3?

Consulta Applicazioni di esempio per lo sviluppo di Windows. Alcuni repository rilevanti:

Piattaforma UWP e WinUI 2

Le app UWP possono essere distribuite al di fuori del Microsoft Store?

Sì. Se il pacchetto MSIX è firmato, il certificato di firma deve essere valido e attendibile nel dispositivo di destinazione.

Posso combinare controlli dell'interfaccia utente XAML UWP con controlli dell'interfaccia utente Win32, WPF o WinForms?

Sì: le isole XAML ti consentono di eseguire questa operazione. Ulteriori informazioni sulle isole XAML.

Sviluppo multipiattaforma

Posso iniziare con WinUI 3 e App SDK e successivamente integrare .NET MAUI se eventualmente voglio usare scenari multipiattaforma?

Non al momento. Anche se le app .NET MAUI usano Windows App SDK/WinUI 3 durante l'esecuzione in Windows, è consigliabile iniziare con .NET MAUI o React Native per Windows se si prevede la necessità di usare più piattaforme.

Cosa devo usare per creare app che funzionino su Windows e Xbox?

Se l'app deve supportare Xbox, HoloLens o IoT, ti consigliamo di usare la piattaforma UWP. Windows App SDK non supporta queste piattaforme. Per lo sviluppo di giochi, è consigliabile usare Microsoft Game Development Kit.

Cosa devo usare per creare app che funzionino su Windows e Surface Hub?

Se stai puntando sia a Windows che a Surface Hub, ti consigliamo di usare la piattaforma UWP.

Come posso creare app Web progressive native-feeling (PWA) su Windows?

Creazione di pacchetti, distribuzione e aggiornamenti

Qual è la differenza tra le app in pacchetto, non in pacchetto e in pacchetto con la posizione esterna?

Per le definizioni di app in pacchetto, non in pacchetto e in pacchetto con la posizione esterna, consulta Panoramica della distribuzione. L’argomento spiega inoltre i vantaggi e gli svantaggi di ogni opzione.

L'app WinUI 3 verrà aggiornata automaticamente per gli utenti finali?

Un'app Windows App SDK/WinUI 3 può essere distribuita tramite lo Store, un file con estensione .appinstaller o nel pacchetto MSI o setup.exe esistente. Lo Store e AppInstaller supportano gli aggiornamenti automatici per gli utenti finali che hanno abilitato l'aggiornamento automatico, ma l'app MSI/setup.exe deve avere un proprio updater.

Posso usare Windows App SDK senza usare MSBuild?

In linea generale, no. WinUI 3 e Windows App SDK richiedono MSBuild, motivo per cui Visual Studio è un prerequisito per lo sviluppo di applicazioni Windows App SDK/WinUI 3. Anche se tecnicamente è possibile creare app di Windows App SDK che non usano WinUI 3 usando altre toolchain, questo non viene supportato.

Prestazioni e ottimizzazione

Cosa posso fare per rendere l'app di Windows ideale per gli utenti finali?

Compatibilità

Gli utenti dovranno mai aggiornare Windows per usare l'app Windows App SDK/WinUI 3?

Gli utenti con Windows 10, versione 1809 e successive potranno installare le app WinUI 3/Windows App SDK senza aggiornare il sistema operativo.

Posso scegliere Arm64 come destinazione con l'app WinUI 3?

Sì.

Deprecazione e migrazioni

La piattaforma UWP/WinUI 2 è deprecata?

N.: UWP e WinUI 2 sono ancora supportati e riceveranno correzioni di bug, affidabilità e sicurezza. Tuttavia, la maggior parte delle nuove funzionalità, incluso il supporto per i runtime .NET più recenti, verranno aggiunte solo a Windows App SDK /WinUI 3.

Quando dovrei eseguire la migrazione di un'app UWP/WinUI 2 a WinUI 3?

Gli sviluppatori UWP non dovrebbero sentire alcuna pressione nel dover eseguire la migrazione delle app a Windows App SDK, se sono soddisfatti della piattaforma UWP e del relativo set di funzionalità. La scelta migliore per alcune app potrebbe essere quella di non eseguire mai la migrazione. Le app che vogliono trarre vantaggio dalla piattaforma Windows e dagli investimenti .NET più recenti di Microsoft, devono prendere in considerazione il passaggio a Windows App SDK. Consulta Eseguire la migrazione da UWP a Windows App SDK).

Quando *non* dovrei eseguire la migrazione di un'app UWP/WinUI 2 a WinUI 3?

Ti consigliamo di continuare a usare la piattaforma UWP se stai creando per Xbox, Surface Hub o HoloLens.

WPF è deprecato?

N.: WPF è ancora supportato e riceve anche alcuni aggiornamenti delle funzionalità.

WinForms è deprecato?

N.: WinForms è ancora supportato e riceve anche alcuni aggiornamenti delle funzionalità.

Windows Runtime (WinRT) è deprecato?

N.: WinRT fa riferimento a un'interfaccia ABI (Application Binary Interface) che consente di interagire tra più lingue. WinRT è l'evoluzione di COM. Windows App SDK offre la maggior parte delle funzionalità tramite le API WinRT.

Note sulla versione

Dove posso trovare le note sulla versione per Windows App SDK?