Questo articolo contiene le informazioni necessarie per iniziare a creare app per Windows.
Windows offre un'ampia gamma di linguaggi, framework e strumenti per la creazione di app, tra cui WinUI, React Native for Desktop, WPF, C++, C#, .NET e un'ampia gamma di framework multipiattaforma. Qui vengono fornite informazioni utili per decidere l'opzione migliore.
WinUI
È consigliabile usare WinUI e Windows App SDK per creare app con un aspetto accattivante che sfruttano le versioni più recenti di Windows. Se non si ha familiarità con lo sviluppo di Windows o se si inizia a lavorare su una nuova app di Windows, WinUI offre le risorse necessarie per creare ottime app per Windows 11.
WinUI è un livello di interfaccia utente basato sul linguaggio markup XAML che contiene controlli e stili moderni per la creazione di app di Windows. Come livello di interfaccia utente nativo per Windows App SDK, incorpora Fluent Design, offrendo a ogni app di Windows l'aspetto accattivante che i clienti si aspettano.
Windows App SDK è un set di nuovi componenti e strumenti per sviluppatori che rappresenta l'evoluzione più recente della piattaforma per lo sviluppo di app di Windows. Windows App SDK offre un set unificato di API e strumenti che possono essere usati in modo coerente dalle app desktop in Windows 11 fino a Windows 10, versione 1809.
Mentre WinUI è il livello di interfaccia utente nativo, è possibile usare Windows App SDK con le app WPF, WinForms o Win32. Se sono già state sviluppate app per Windows in precedenza, ma si sta cercando di iniziare a usare Windows App SDK in un'app esistente, vedere le Guide specifiche per framework.
React Native for Desktop
React Native è una piattaforma di sviluppo che consente di creare app multipiattaforma.
React Native for Desktop include React Native per Windows e macOS, portando il supporto React Native in Windows SDK. React Native for Desktop consente 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 di realtà mista e così via.
Con React Native for Desktop, scrivi 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 for Desktop:
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, le app React Native per desktop non devono 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.
WPF è un framework ben consolidato per le applicazioni desktop di Windows con accesso a .NET o a .NET Framework. Come WinUI, anch'esso usa il markup XAML per separare l'interfaccia utente dal codice. WPF offre un set completo di funzionalità per lo sviluppo di applicazioni che includono controlli, data binding, layout, grafica 2D e 3D, animazioni, stili, modelli, documenti, supporti, testo e tipografia. WPF fa parte di .NET e, pertanto, è possibile compilare applicazioni che incorporano altri elementi dell'API .NET.
Inoltre, ora è possibile integrare nelle applicazioni WPF in pacchetto un ambiente sandbox che offre un ulteriore livello di sicurezza. Questo miglioramento richiede modifiche minime o nulle al codice grazie alla nuova funzionalità di sicurezza Isolamento dell'app Win32.
Suggerimento
Se si è già investito in WPF, è possibile continuare a usarlo e sfruttare le opzioni di modernizzazione in .NET 9. È possibile creare le app sapendo che Microsoft sta continuando a investire in WPF. Vedere le domande frequenti sullo sviluppatore di Windows per ulteriori informazioni.
Molte app per Windows vengono scritte con Win32, Windows Forms o UWP. Ognuno di questi framework è supportato e continuerà a ricevere correzioni di bug, affidabilità e sicurezza, ma livelli di investimento diversi per nuove funzionalità e stili. Per altre informazioni su questi tipi di app, vedere le schede seguenti.
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ò, il tipo di app Win32 è 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.
Usa C++/WinRT per creare app Win32 desktop moderne con accesso di prima classe alle API Windows Runtime (WinRT).
Inoltre, ora è possibile integrare nelle applicazioni Win32 un ambiente sandbox che offre un ulteriore livello di sicurezza. Questo miglioramento richiede modifiche minime o nulle al codice grazie alla nuova funzionalità di sicurezza Isolamento dell'app Win32.
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 comporta una riscrittura completa dell'interfaccia utente.
Inoltre, ora è possibile integrare nelle applicazioni Windows Forms in pacchetto un ambiente sandbox che offre un ulteriore livello di sicurezza. Questo miglioramento richiede modifiche minime o nulle al codice grazie alla nuova funzionalità di sicurezza Isolamento dell'app Win32.
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.
Nota
L'app UWP esistente continuerà a funzionare come previsto. Tuttavia, per sfruttare le funzionalità moderne in WinUI 3 e il SDK per app di Windows consigliamo di eseguire la migrazione dell'app.
Non si avrà accesso alle API fornite da Windows App SDK o da .Net 6 e versioni successive. Per usare Windows App SDK, si dovrà eseguire la migrazione dell'app UWP a WinUI e a Windows App SDK. Per altre informazioni, vedere Eseguire la migrazione a Windows App SDK.
Altre opzioni multipiattaforma
Se è necessario che l'app sia multipiattaforma, oltre a React Native for Desktop, è consigliabile prendere in considerazione .NET MAUI o un'app Web progressiva (PWA). Sono disponibili molte altre opzioni (ecco un elenco di opzioni popolari), ma queste sono degli ottimi punti di partenza.
.NET MAUI sfrutta 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.
Per ulteriori informazioni, vedere le schede seguenti.
.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é favorisce le esperienze native della piattaforma, .NET MAUI usa WinUI 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 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.
Confronto tra le funzionalità dei framework di sviluppo di app
È disponibile un'ampia gamma di opzioni per lo sviluppo di applicazioni per Windows. L'opzione migliore dipende dai requisiti dell'applicazione, dal codice esistente e dalla familiarità con la tecnologia. La tabella seguente elenca i framework di sviluppo di app più diffusi disponibili in Windows e le funzionalità supportate da ogni framework.
Funzionalità
.NET MAUI
Blazor Hybrid
React Native for Desktop
XAML UWP (Windows.UI.Xaml)
Win32 (MFC o ATL)
WinForms
WinUI 3
WPF
Lingua
C#
C#
JavaScript, TypeScript
C#, C++, Visual Basic
C++, Rust
C#, Visual Basic
C#, C++
C#, Visual Basic
Lingua dell'interfaccia utente
XAML/Codice
Razor
JSX
XAML
Codice
Codice
XAML
XAML
Finestra di progettazione interfaccia utente (trascinare & rilasciare)
Windows non è ideale solo per lo sviluppo di app che vengono eseguite su Windows, ma è anche un ambiente potente per lo sviluppo di app destinate a qualsiasi piattaforma. Altre informazioni sugli strumenti e sulle opzioni disponibili per ottimizzare lo sviluppo.
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.
Feedback su Windows developer
Windows developer è un progetto di open source. Selezionare un collegamento per fornire feedback:
Gli sviluppatori Windows hanno diverse opzioni per la creazione di applicazioni eseguite in Windows. Questo modulo presenta i framework dell'interfaccia utente di Windows disponibili per lo sviluppo di Windows. Fornisce inoltre indicazioni su come scegliere il framework migliore per l'applicazione.