Questo articolo contiene le informazioni necessarie per iniziare a creare app per l'ambiente desktop di Windows.
Windows offre un'ampia gamma di opzioni per la creazione di app, tra cui C++, .NETe altre tecnologie emergenti, ad esempio strumenti open source in WSL e Rust. Con così tante scelte, può essere difficile sapere da dove iniziare.
La libreria dell'interfaccia utente di Windows (WinUI) 3 è il framework dell'interfaccia utente più recente per le app desktop di Windows, incluse le app gestite che usano C# e .NET e app native che usano C++ con l'API Win32. È ancora in fase di sviluppo molto attivo, quindi anche se potrebbe non essere in grado di soddisfare tutte le esigenze oggi sta maturando con ogni versione.
Incorporando il sistema di progettazione Fluent in tutte le esperienze, i controlli e gli stili, WinUI offre esperienze coerenti, intuitive e accessibili usando i modelli di interfaccia utente più recenti. WinUI 3 è disponibile come parte di Windows App SDK. Windows App SDK offre un set unificato di API e strumenti che possono essere usati in modo coerente da qualsiasi app C++ Win32 o C# .NET in un ampio set di versioni del sistema operativo Windows di destinazione.
Le app desktop Win32 (dette anche app desktop classiche) sono il tipo di app originale per le applicazioni Windows native che richiedono l'accesso diretto a Windows e all'hardware. Perciò, questo tipo di app è la scelta ideale per le applicazioni che richiedono il massimo livello di prestazioni e l'accesso diretto all'hardware di sistema.
L'uso dell'API Win32 con C++ consente di ottenere i massimi livelli di prestazioni ed efficienza grazie a un maggiore controllo della piattaforma di destinazione con codice non gestito rispetto a quanto possibile in un ambiente di runtime gestito come WinRT e .NET. Tuttavia, per esercitare un tale livello di controllo sull'esecuzione dell'applicazione occorre una maggiore attenzione per ottenere il giusto risultato, oltre a sacrificare la produttività dello sviluppo per le prestazioni di runtime.
Ecco cosa offre l'API Win32 con C++ per consentirti di creare applicazioni a prestazioni elevate.
Ottimizzazioni a livello di hardware, tra cui controllo rigoroso dell'allocazione delle risorse, durata degli oggetti, layout dei dati, allineamento, compressione dei byte e altro.
Accesso a set di istruzioni orientate alle prestazioni come SSE e AVX tramite funzioni intrinseche.
Efficiente programmazione generica indipendente dai tipi tramite l'uso di modelli.
Contenitori e algoritmi efficienti e sicuri.
DirectX, in particolare Direct3D e DirectCompute (tieni presente che la piattaforma UWP offre anche l'interoperabilità di DirectX).
Usa C++/WinRT per creare app Win32 desktop moderne con accesso di prima classe alle API Windows Runtime (WinRT).
È anche possibile accedere alle funzionalità e alle API moderne della piattaforma Windows fornite da Windows App SDK. Per altre informazioni, vedi Modernizzare le app desktop.
WPF è una piattaforma ben consolidata per le applicazioni Windows gestite con accesso a .NET o .NET Framework e usa anche markup XAML per separare l'interfaccia utente dal codice. Questa piattaforma è progettata per le applicazioni desktop che necessitano di un'interfaccia utente avanzata, personalizzazione degli stili e scenari con uso elevato di grafica. Le competenze di sviluppo WPF sono simili alle competenze di sviluppo di WinUI 3, quindi la migrazione da WPF a WinUI 3 è più semplice rispetto alla migrazione da Windows Form.
È anche possibile accedere alle funzionalità e alle API moderne della piattaforma Windows fornite da Windows App SDK. Per altre informazioni, vedi Modernizzare le app desktop.
Windows Forms è la piattaforma originale per le applicazioni Windows gestite con un modello di interfaccia utente leggero e accesso a .NET o a .NET Framework. Il suo punto di forza è la rapidità con cui gli sviluppatori, compresi quelli che non hanno familiarità con la piattaforma, possono iniziare a creare applicazioni. È una piattaforma di sviluppo rapido di applicazioni basata su form, con un'ampia raccolta predefinita di controlli di trascinamento visivi e non visivi. Windows Form non usa XAML, quindi decidere in un secondo momento di riscrivere l'applicazione in WinUI 3 comporta una riscrittura completa dell'interfaccia utente.
È anche possibile accedere alle funzionalità e alle API moderne della piattaforma Windows fornite da Windows App SDK. Per altre informazioni, vedi Modernizzare le app desktop.
La piattaforma UWP (Universal Windows Platform) fornisce un sistema di tipi, API e un modello applicativo comune per tutti i dispositivi nella piattaforma UWP (Universal Windows Platform). Oltre a usare la piattaforma UWP per creare applicazioni desktop per PC Windows, la piattaforma UWP è anche l'unica piattaforma supportata per scrivere una singola app universale nativa eseguita in Xbox, HoloLens e Surface Hub. Le app della piattaforma UWP possono essere native o gestite.
La piattaforma UWP è una piattaforma altamente personalizzabile che usa il markup XAML per separare l'interfaccia utente (presentazione) dal codice (logica di business). La piattaforma UWP è adatta per le applicazioni desktop che necessitano di un'interfaccia utente avanzata, personalizzazione degli stili e scenari con uso elevato di grafica. Include anche il supporto incorporato per il sistema Fluent Design per l'esperienza utente predefinita e fornisce l'accesso alle API Windows Runtime (WinRT).
Non si avrà accesso alle API fornite da Windows App SDK. Per usare Windows App SDK, sarà necessario eseguire la migrazione dell'app UWP a WinUI 3. Per altre informazioni, vedere Eseguire la migrazione a Windows App SDK.
Opzioni multipiattaforma
WinUI funge anche da base per tecnologie multipiattaforma che offrono esperienze di Windows native eccezionali usando un'ampia gamma di linguaggi di codifica. .NET MAUI e React Native per Windows sfruttano la potenza di WinUI in Windows, abilitando anche l'esecuzione in altri sistemi operativi. Un'altra opzione multipiattaforma, Progressive Web Apps (PWA), sono siti Web che funzionano come le app native installate in Windows e altre piattaforme supportate, funzionando come i normali siti Web nei browser.
.NET Multipiattaforma App UI (MAUI) è un framework open source multipiattaforma per la creazione di applicazioni Android, iOS, macOS e Windows che sfruttano l'interfaccia utente e i servizi nativi di ogni piattaforma da un singolo codebase .NET. Poiché .NET MAUI favorisce le esperienze native della piattaforma, usare WinUI 3 e Windows App SDK in modo che le app ottengano l'esperienza utente più recente in Windows. In questo modo le app possono accedere a tutto ciò che si ottiene con WinUI 3 e hanno la possibilità di raggiungere altre piattaforme.
.NET MAUI per Windows è un'ottima scelta se:
Si vuole condividere il maggior numero possibile di codice .NET tra applicazioni per dispositivi mobili e desktop.
Si vuole distribuire l'applicazione oltre Windows ad altre destinazioni desktop e per dispositivi mobili con esperienze della piattaforma nativa.
Si vuole usare C# e/o XAML per la compilazione di app multipiattaforma.
Si usa Blazor per lo sviluppo Web e se ne desidera includere la totalità o una parte in un'applicazione per dispositivi mobili o desktop.
Le app Web progressive forniscono l'accesso alle tecnologie Web aperte per garantire l'interoperabilità multipiattaforma. Le app Web progressive offrono agli utenti un'esperienza simile a un'app personalizzata per i propri dispositivi. Le app Web progressive sono siti Web che vengono progressivamente migliorati per funzionare come app installate, native su piattaforme di supporto (incluso Windows), mentre funzionano come normali siti Web in altri browser.
Quando sono installate in Windows, le app Web progressive sono esattamente come le altre app. Ad esempio:
È possibile aggiungere un’app Web progressiva al menu Start.
Un’app Web progressiva può essere aggiunta alla barra delle applicazioni.
Le app Web progressive possono gestire i file.
Le app Web progressive possono essere eseguite quando l'utente esegue l'accesso.
Le app Web progressiva possono essere inviate a Microsoft Store in cui milioni di utenti di Windows possono individuarle e installarle facilmente insieme ad altre app di Windows.
React Native è una piattaforma di sviluppo che consente di creare app multipiattaforma.
React Native per Windows offre il supporto React Native agli SDK di Windows 10 e Windows 11, consentendo di usare JavaScript per creare app windows native per tutti i dispositivi supportati da Windows 10 e Windows 11. Sono inclusi PC, tablet, 2 in-1, Xbox, dispositivi realtà mista e così via.
Con React Native per Windows, si scrive la maggior parte o tutto il codice dell'app in JavaScript - o TypeScript - e il framework produce un'applicazione XAML UWP nativa. Se l'app deve chiamare un'API della piattaforma, in genere è possibile farlo tramite uno dei numerosi moduli della community o se un modulo non esiste ancora, è possibile scrivere facilmente un modulo nativo per esporlo.
Ecco alcuni motivi per scegliere React Native per Windows:
Si vuole condividere il più possibile il codice tra le varie piattaforme oppure si dispone di proprietà Web con cui si vuole condividere il codice.
Miglioramento della produttività degli sviluppatori e del ciclo interno grazie all'aggiornamento rapido.
I concetti fondamentali dell'app (prestazioni, accessibilità, internazionalizzazione) sono pari a quelle di un'app UWP nativa.
Si ha esperienza con e una preferenza per JavaScript o TypeScript
È consigliabile sfruttare le librerie solo JavaScript in npmjs.com e molte librerie native.
L'app userà i controlli nativi, l'aspetto visivo, le animazioni e i colori e quindi si sentirà integrata nel linguaggio di progettazione usato in Windows. Inoltre, React Native per le app di Windows non deve compromettere il set di API che possono chiamare, perché il framework consente di chiamare le API della piattaforma, nonché scrivere i propri gestori di visualizzazioni e moduli nativi.
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.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedere https://aka.ms/ContentUserFeedback.