Sviluppo di applicazioni Windows - Procedure consigliate

Le procedure consigliate in questo documento consentono di creare grandi app di Windows che raggiungono e deliziano circa 1,5 miliardi di utenti di PC diversi in tutto il mondo. Questo documento è suddiviso nelle seguenti sezioni:

  1. Esperienza utente: le indicazioni contenute in questa sezione consentono di migliorare l'aspetto, la funzionalità e l'usabilità delle app.
  2. Prestazioni e nozioni fondamentali: le indicazioni contenute in questa sezione consentono di migliorare le prestazioni e l'utilizzo delle risorse dell'app.
  3. Ottimizzazione del sistema operativo/hardware: le indicazioni contenute in questa sezione consentono di ottimizzare la creazione di pacchetti e la distribuzione per un'ampia gamma di configurazioni hardware.
  4. Individuazione e gestione delle applicazioni: le indicazioni contenute in questa sezione semplificano l'individuazione, l'installazione, l'aggiornamento e la disinstallazione dell'app da parte degli utenti.
  5. Accessibilità: le indicazioni contenute in questa sezione consentono di creare esperienze accessibili e inclusive.
  6. Sicurezza e privacy: le indicazioni contenute in questa sezione consentono di ridurre i rischi per la sicurezza e soddisfare le esigenze di privacy degli utenti.

Esperienza utente (UX)

Windows 11 segna un'evoluzione visiva del sistema operativo Windows che migliora l'aspetto, la funzionalità e l'usabilità di Windows. Gli studi mostrano che gli utenti hanno aspettative elevate per le app di Windows:

  • Si aspettano che le app di Windows funzionino con una gamma completa di input.
  • Si aspettano modelli di progettazione e interazione che sembrano nativi nei dispositivi correnti e futuri.
  • Si aspettanp il supporto per i flussi di lavoro di windowing moderni e i punti di integrazione shell.

Quando le applicazioni rispettano gli stili di Windows e i comportamenti standard di Windows, gli utenti non devono imparare di nuovo i modelli di interazione. In questo modo è molto più semplice per gli utenti usare l'app. Un'app che sembra grande può creare una grande impressione, ma un'app che è anche facile da usare e aiuta l'utente a raggiungere i propri obiettivi creerà un'impressione di grande durata.

Windows 11 è basato sui principi di progettazione di Windows 11. Seguendo queste linee guida durante la compilazione delle app, si potranno soddisfare le aspettative dei clienti in un'esperienza di app ottimale. Quando si pensa di incorporare i modelli di interfaccia utente/esperienza utente delle applicazioni Windows più recenti e consigliate nelle applicazioni Windows, è consigliabile concentrarsi su queste 5 aree:

  • Layout
  • Interazione dell'interfaccia utente
  • Stile visivo
  • Comportamento della finestra
  • Punti di integrazione della shell

WinUI 3 offre il supporto predefinito per molte di queste esperienze e stili tramite i controlli comuni. Se non sei in grado di usare WinUI 3, valuta la possibilità di simulare gli stili illustrati nei toolkit di progettazione e nella raccolta WinUI.

Layout

Le applicazioni Windows vengono eseguite in un'ampia gamma di configurazioni che soddisfano le esigenze degli utenti. Testare i riquadri e/o le pagine dell'applicazione in un'ampia gamma di dimensioni, dispositivi, dimensioni delle finestre, impostazioni DPI e impostazioni di scalabilità. L'applicazione dovrebbe funzionare come previsto anche quando viene ridimensionata in dimensioni ridotte.

Compatibilità con DPI

Le applicazioni WinUI vengono ridimensionate automaticamente per ogni visualizzazione in cui sono in esecuzione. Altre tecnologie di programmazione Windows (Win32, WinForms, WPF e così via) non gestiscono automaticamente il ridimensionamento DPI per monitor. Senza ulteriori operazioni per supportare il ridimensionamento DPI per monitor per queste tecnologie, le applicazioni potrebbero apparire sfocate o con dimensioni non corrette. Per altre informazioni, vedere Sviluppo di applicazioni desktop DPI elevate in Windows.

Layout responsivo

Usare tecniche di progettazione reattive per ottimizzare le pagine dell'app per dimensioni diverse delle finestre. Seguire le linee guida per la panoramica o lo scorrimento per garantire che gli utenti possano sempre accedere al contenuto, indipendentemente da quanto si riduca la finestra dell'app.

Interazione dell'interfaccia utente

Gli utenti di Windows possono scegliere tra un'ampia gamma di dispositivi di input per interagire con l'applicazione e Windows ha esperienze di sistema specifiche che gli utenti sono abituati a usare. Quando l'applicazione rispetta queste esperienze, gli utenti possono usare l'applicazione in modo affidabile. Quando l'app non segue queste convenzioni, gli utenti potrebbero trovarla confusa o frustrante.

Esecuzione di comandi su oggetto

Usare comandi su oggetti, ad esempio menu di scelta rapida, comandi di scorrimento rapido e tasti di scelta rapida. Windows 11 migliora il comportamento del menu di scelta rapida del clic con il pulsante destro del mouse, quindi, se l'app crea menu di scelta rapida, fare riferimento alle linee guida di integrazione del menu di scelta rapida più recenti. I controlli di testo WinUI espongono automaticamente comandi taglia/copia/incolla, ma altri controlli potrebbero richiedere ulteriori operazioni per supportare questi comandi.

Interazione testo

Ogni volta che è presente del testo in un'applicazione, gli utenti si aspettano che possano selezionarlo e copiarlo. Se il testo è modificabile, si aspettano che possano anche tagliare e incollare. Fornendo collegamenti coerenti agli utenti, è possibile consentire loro di completare le attività in modo più efficiente. Assicurarsi che queste azioni possano essere eseguite usando tastiera, mouse o trackpad, tocco e penna.

Panoramica & Scorrimento

Non è raro che l'interfaccia utente di un'applicazione si adatti interamente all'interno di una singola pagina che non deve scorrere. Anche se sono presenti solo alcuni elementi dell'interfaccia utente, gli utenti possono ridimensionare liberamente la finestra dell'app e far nascondere alcuni elementi dell'interfaccia utente. Assicurarsi che l'interfaccia utente dell'applicazione supporti correttamente lo scorrimento e la panoramica (usando tastiera, mouse o trackpad, tocco e penna) per consentire agli utenti di accedere a tutti gli elementi dell'interfaccia utente che potrebbero essere stati spostati dall'area della finestra visibile.

Stile visivo

Windows 11 si basa sui principi di progettazione di Windows 11: Semplice, Calmo, Personale, Familiare e Completo + Coerente. Crediamo che le esperienze che seguono questi principi portino esperienze utente eccezionali in Windows.

Materiali: acrilico e mica

Acrilico e Mica sono materiali visivi che forniscono ai controlli interattivi dell'interfaccia utente uno stile di visualizzazione "occluso" distinto. Usare l'acrilico per applicare uno stile semitrasparente a superfici temporanee come menu di scelta rapida, riquadri a comparsa e altri elementi che possono essere oscurati dalla luce. Usare la Mica per aggiungere una tinta adattiva sottile alle superfici dell'interfaccia utente di lunga durata, ad esempio la barra del titolo.

Altre informazioni sui materiali Acrilico e Mica sono disponibili in Cose che puoi fare per rendere la tua app ottimale in Windows 11.

Temi scuri e chiari

I temi scuro e chiaro offrono agli utenti un modo per adattare l'app alle preferenze visive. Windows 11 aggiorna i toni dei colori per essere più morbido sugli occhi evitando il bianco puro e il nero, che rende i colori molto più gradevoli. WinUI supporta il passaggio tra i temi Scuro e Chiaro per impostazione predefinita (vedi risorse del tema XAML). Per le app Win32, vedere Supportare temi scuri e chiari nelle app Win32. (La barra del titolo nelle app Win32 non si adatta automaticamente al tema Scuro. Assicurarsi di seguire le indicazioni sulla barra del titolo nell'articolo).

Elementi dell'interfaccia utente aggiornati

La geometria di Windows 11 è stata creata per supportare esperienze di app moderne. Gli angoli progressivamente arrotondati, gli elementi annidati e gli spazi intercolonna coerenti si combinano per creare un effetto morbido, calmo e accessibile che enfatizza l'unità di scopo e la facilità d'uso.

Le modifiche visive e comportamentali sono integrate in WinUI 3. Usa WinUI 3 dove puoi sfruttare il lavoro già fatto. Se non sei in grado di usare WinUI 3, valuta la possibilità di simulare gli stili illustrati nei toolkit di progettazione e nella raccolta WinUI.

Menu di scelta rapida

Un menu contestuale è un menu di scelta rapida che l'utente richiama facendo clic con il pulsante destro del mouse o toccare e & tenere premuto per rivelare un menu di comandi rilevante per il contesto di controllo con cui l'utente sta interagendo. Gli utenti si aspettano che l'aspetto e il comportamento dei menu di scelta rapida siano coerenti in Windows. Usare i menu di scelta rapida forniti dalla piattaforma ogni volta che è possibile mantenerli coerenti con il resto del sistema.

Iconografia e tipografia

Windows 11 ha aggiornato le icone ("Segoe Fluent Icons"), il supporto migliorato per le icone animate e un nuovo tipo di carattere dell'interfaccia utente ("Segoe UI Variable"). Consigliamo di usare queste nuove icone e font quando possibile per essere coerenti in Windows 11. Il nuovo tipo di carattere offre una geometria molto più morbida e rende il testo molto più leggibile.

Altre informazioni sull'iconografia e la tipografia in Windows sono disponibili in Cose che puoi fare per rendere la tua app ottimale in Windows 11.

Comportamento e stile della finestra

Le applicazioni vengono eseguite in un frame fornito da Windows e gli utenti prevedono che l'aspetto e i comportamenti predefiniti di Windows siano coerenti tra le finestre delle app. Prendere in considerazione il supporto delle funzionalità elencate qui per assicurarsi che l'app abbia l’aspetto e le funzioni che gli utenti si aspettano da Windows 11.

Snap Layout

Lo snapping delle finestre è notevolmente migliorato in Windows 11 e il menu Layout snap è una nuova funzionalità che consente agli utenti di individuare e usare la potenza dello snapping delle finestre. Usare il menu Layout snap per eseguire il test dell'app in layout di snap diversi e assicurarsi che l'app supporti dimensioni di snap diverse, ad esempio schermo 1/2, 1/3 e 1/4.

Se il menu Layout snap non appare per impostazione predefinita nell’applicazione, consultare la sezione Supporto dei layout snap per le applicazioni desktop in Windows 11 per alcune operazioni da eseguire per attivarlo.

Pulsanti barra del titolo e didascalia

I pulsanti della barra del titolo e della didascalia (riduci a icona, ingrandisci, chiudi) sono il modo in cui gli utenti interagiscono con Windows per ridimensionare, spostare e chiudere le finestre dell'app. Avere un'esperienza coerente consentirà alle persone di usare l'applicazione senza problemi. Vedi Barra del titolo dell'app di Windows per informazioni sulla progettazione della barra del titolo e del pulsante didascalia per Windows.

È possibile usare le API di Windows App SDK per integrare il contenuto dell'app con la barra del titolo nelle app WinUI 3, .NET, WinForms e WPF.

Angoli arrotondati

Nella maggior parte dei casi, la finestra della tua app avrà angoli arrotondati per impostazione predefinita in Windows 11. Se la finestra dell'applicazione è stata personalizzata e non ha gli angoli arrotondati, vedere Applica angoli arrotondati nelle app desktop per Windows 11 per alcuni accorgimenti. È anche consigliabile evitare di personalizzare i bordi e le ombreggiature delle finestre, che possono impedire al sistema di arrotondare gli angoli della finestra.

Punti di integrazione della shell

L'integrazione della shell di Windows consente agli utenti di trarre vantaggio dall’app anche quando non è in esecuzione in primo piano o persino visibile sullo schermo. Quando l'app si integra bene con Windows, diventa parte del flusso di lavoro degli utenti con altre app e consente di creare un'esperienza senza problemi.

Notifiche di tipo avviso popup

Le notifiche di tipo avviso popup sono le notifiche di Windows visualizzate nella parte inferiore della schermata dell'utente e nel Centro notifiche.

  • Le notifiche devono essere personalizzate, interattive e utili per gli utenti. Provare a dare agli utenti ciò che vogliono, non quello che si vuole sapere.
  • Le notifiche non dovrebbero essere rumorose. Troppe interruzioni dall'app comportano la disattivazione di questo canale di comunicazione critico per l'app.
  • Rispondere alla finalità dell'utente. La selezione di una notifica dovrebbe avviare l'app nel contesto della notifica. L'unica eccezione a questa linea guida è quando l'utente seleziona un pulsante nella notifica collegata a un'attività in background, ad esempio una risposta rapida.
  • Offrire un'esperienza coerente nel Centro notifiche. Mantenere ordinato il Centro notifiche cancellando le notifiche precedenti.

Per altre informazioni sulle notifiche di tipo avviso popup, vedere Nozioni di base sulla progettazione delle notifiche.

Prestazioni & fondamentali

Gli utenti di Windows si aspettano che le app di Windows presentino prestazioni e nozioni fondamentali eccellenti. Durante la progettazione e la creazione dell'app, è importante tenere presente l'ottimizzazione per l'utilizzo della memoria, il consumo energetico, la velocità di risposta, l'affidabilità e l'impatto sulla sostenibilità a lungo termine. Allocare tempo per testare e misurare i concetti fondamentali e le prestazioni dell'applicazione garantirà agli utenti un'esperienza di prima classe.

Seguire le best practice di questa sezione vi aiuterà a soddisfare le aspettative dei vostri clienti in tutti questi criteri.

Per altre informazioni, vedere la Panoramica delle prestazioni e dei concetti fondamentali, che illustra domande come "Quali sono le prestazioni dell'applicazione e perché è importante?" o "Quali strumenti posso usare per misurare le prestazioni delle applicazioni Windows?", nonché il collegamento a case study, blog correlati, community di supporto e informazioni su come l'ingegneria delle prestazioni interseca con la sostenibilità, riducendo l'impatto che l'applicazione avrà sul nostro pianeta.

Sistema operativo/Ottimizzazione hardware

Le app di Windows possono essere compilate, inserite in pacchetti e distribuite in diversi modi. Le procedure consigliate descritte in questa sezione consentono di ottimizzare questi aspetti dell'applicazione tra configurazioni hardware.

MSIX App Attach e Desktop virtuale Azure

Se si vuole che l'app venga eseguita meglio in un ambiente aziendale, aggiungere il supporto per MSIX App Attach.

MSIX App Attach consente di distribuire applicazioni MSIX a macchine virtuali e fisiche. Viene creato in modo specifico per Desktop virtuale Azure (AVD), un servizio di virtualizzazione di desktop e app in esecuzione nel cloud. L'uso di MSIX App Attach con AVD consente di migliorare i tempi di accesso per gli utenti e di ridurre i costi dell'infrastruttura per l'azienda.

Windows su Arm

Windows può essere eseguito nei dispositivi Arm. I PC Arm traggono vantaggio dalla durata estesa della batteria e dal supporto integrato per le reti dati mobili. Questi PC offrono anche una grande compatibilità delle applicazioni e consentono di eseguire le applicazioni esistenti x86 e x64 non modificate.

Per ottenere prestazioni ottimali, è consigliabile abilitare le app per sfruttare al meglio l'architettura del processore Arm efficiente a livello energetico creando una versione Arm completa o ottimizzando le parti del codebase che trarranno il massimo vantaggio dalle prestazioni native. Per altre informazioni su queste tecniche, vedere Windows in Arm e Arm64EC per le app di Windows 11 in Arm.

Notifiche push

Le notifiche push consentono di inviare informazioni dal servizio cloud all'app in modo ottimizzato per le prestazioni. Le notifiche push includono notifiche non elaborate, notifiche badge e notifiche di tipo avviso popup inviate dal servizio cloud.

  • Usare le notifiche push per riattivare l'app o il client invece di mantenerlo in esecuzione per ottimizzare le prestazioni nel dispositivo dell'utente.
  • I canali di notifica non devono essere usati per inviare annunci pubblicitari.
  • Rispettare le intestazioni retry-after: questo protegge il servizio e garantisce l'esito positivo del recapito delle notifiche.
  • Rimuovere i canali scaduti o revocati dal sistema. Windows Notification Service (WNS) non elabora le richieste per i canali scaduti/revocati.
  • Evitare picchi improvvisi di richieste a WNS. Ciò può causare risposte limitate.
  • Utilizzare l'intestazione MS-CV. Ciò consentirà la tracciabilità end-to-end e la diagnostica.
  • Avere un meccanismo di backup per quando le notifiche non funzionano.
  • Usare Hub di notifica di Azure (ANH). ANH consente di accedere a funzionalità di engagement come destinatari, pianificazione di notifiche e notifiche di trasmissione. Se oggi sei uno sviluppatore solo Windows, l'uso di ANH semplifica la transizione dell'infrastruttura delle notifiche ad altre piattaforme in futuro.

Individuazione e gestione delle applicazioni

Le esperienze di installazione, aggiornamento e disinstallazione affidabili sono elementi importanti di un'esperienza utente coerente e di alta qualità. Le seguenti procedure consigliate consentono di garantire che l'applicazione lasci un'ottima impressione quando viene individuata e gestita dagli utenti:

Individuazione delle applicazioni

  • La presentazione dell'app in Microsoft Store può rendere l'app più individuabile per gli utenti.
  • Se si ospita l'app in più canali (ad esempio, in un sito Web e in Microsoft Store), l'applicazione deve avere un'identità coerente dell'applicazione e un meccanismo di aggiornamento in tutti i canali.
  • Distribuire l'app tramite Microsoft Store per renderla più individuabile per gli utenti. Tenere presente che le app dello Store vengono rese disponibili agli utenti tramite Windows Package Manager WinGet. Se non si pubblica in Microsoft Store, è comunque possibile rendere l'app facilmente individuabile in WinGet tramite il repository WinGet.

Installazione e disinstallazione

  • Supportare un'installazione per utente. In questo modo gli utenti potranno installare più facilmente ed evitare richieste di controllo dell'account utente.
  • Assicurarsi che l'installazione dell'applicazione sia priva di errori, trasparente e ponderata sulla gestione dei file. L'installazione dell'applicazione non deve lasciare alcun file temporaneo.
  • Evitare di richiedere autorizzazioni elevate per installare e richiedere riavvii del sistema operativo quando possibile.
  • Supportare l'installazione invisibile all'utente. Questo aspetto è importante per la gestibilità delle app negli ambienti aziendali.
  • Verificare che l'app sia elencata nell'elenco App -> App installate.
  • Prendere in considerazione l'uso di MSIX per garantire agli utenti un'esperienza di installazione, aggiornamento e disinstallazione senza problemi. MSIX rimuove automaticamente i file binari e i dati dell'app. Per informazioni su come le app in pacchetto gestiscono file e voci del Registro di sistema, vedere Informazioni sull'esecuzione delle app desktop in pacchetto in Windows.
  • Per le app non in pacchetto, assicurarsi che l'applicazione possa essere facilmente disinstallata tramite l'elenco App -> App installate in Impostazioni. Quando l'applicazione viene disinstallata, assicurarsi che vengano rimosse anche voci del menu Start, file, directory, voci del Registro di sistema e file temporanei. È consigliabile offrire agli utenti la possibilità di conservare i dati quando disinstallano l'applicazione.
  • Assicurarsi che durante la disinstallazione l'app rimuova tutti i file binari e i dati dell'applicazione. Il contenuto creato dall'utente deve essere archiviato in posizioni come Documents, che possono quindi essere mantenute dagli utenti anche dopo la disinstallazione dell'app.
  • Evitare di installare o aggiornare file binari di sistema che potrebbero richiedere un riavvio.
  • Eseguire l'integrazione con RestartManager per salvare e ripristinare lo stato tra gli aggiornamenti del sistema operativo.

Aggiornamenti

  • Supportare un meccanismo di aggiornamento che consenta all'app di riavviare quando è conveniente per l'utente. Prendere in considerazione l'uso delle API di riavvio di Windows App SDK per gestire il comportamento delle app per le app WinUI 3.
  • Assicurarsi che il meccanismo di aggiornamento scarichi solo i componenti modificati essenziali che devono essere aggiornati. Ciò può ridurre al minimo la larghezza di banda di rete necessaria.
  • Assicurarsi di fornire un modo per aggiornare e ripristinare l'app. Prendere in considerazione MSIX, che gestisce automaticamente il ripristino degli aggiornamenti. Per altre informazioni, vedere Aggiornamento automatico e ripristino delle app.
  • Prendere in considerazione gli aggiornamenti basati sulle notifiche push o verificare la disponibilità di aggiornamenti all'avvio dell'app o al riavvio.

Risorse aggiuntive

Accessibilità

Le applicazioni Windows accessibili supportano esperienze avanzate e inclusive per il maggior numero possibile di persone, incluse quelle con disabilità (sia temporanee che permanenti), preferenze personali, stili di lavoro specifici o vincoli di situazione (ad esempio spazi di lavoro condivisi, guida, cucina, abbagliamento e così via).

Infatti, l'Organizzazione mondiale della sanità definisce la disabilità non come una caratteristica personale, ma piuttosto come un'interazione non corrispondente tra una persona e il mondo fisico e digitale intorno a lei.

L'accessibilità è valida sia per le persone che per le aziende

L'accessibilità è responsabilità

Più di 1 miliardo di persone in tutto il mondo sperimentano una forma di disabilità. Tuttavia, solo 1 su 10 ha accesso alla tecnologia assistive necessaria per partecipare pienamente alla nostra economia e alla società. In genere, il tasso di disoccupazione per le persone con disabilità è due volte quello delle persone senza disabilità. E le disabilità, siano esse situazionali, temporanee o permanenti, possono colpire chiunque di noi in qualsiasi momento.

L'accessibilità è un'opportunità

Secondo il foglio dati sull'approccio all'accessibilità Microsoft: organizzazioni inclusive che adottano le procedure consigliate per l'impiego e il supporto di persone con disabilità sul posto di lavoro hanno prestazioni migliori della concorrenza e migliorano l'attrazione e il mantenimento dei migliori talenti. I millennials, che saranno il 75% della forza lavoro globale entro il 2020, in genere scelgono datori di lavoro che riflettono i loro valori. Diversità e inclusione sono in cima a tale elenco.

Integrazione dell'accessibilità

Incorporando l'accessibilità nelle app di Windows, è possibile ottimizzare l'engagement degli utenti, aumentare la soddisfazione dei prodotti e incoraggiare la fedeltà dei prodotti. La progettazione e l'implementazione proattiva di esperienze accessibili comportano in genere una riduzione dei costi di sviluppo e manutenzione a lungo termine.

Per indicazioni dettagliate sulla creazione di app di Windows accessibili, vedere Accessibilità in Windows 11 e Windows 10.

Test di accessibilità

Accessibility Insights è una potente suite di strumenti che consente agli sviluppatori di testare l'accessibilità delle app e dei servizi. Ecco alcuni strumenti da sfruttare per testare l'accessibilità:

  1. Esaminare in Accessibility Insights per Windows. Esaminare l'albero di accessibilità per trovare le cose più semplici, ad esempio suggerimenti nelle etichette, ruoli non corretti e così via.
  2. Monitoraggio degli eventi in Accessibility Insights per Windows · Informazioni dettagliate sull'accessibilità. Per altre informazioni sul monitoraggio degli eventi, vedere Supporto dei tipi di controllo di automazione interfaccia utente.
  3. Eseguire controlli automatizzati di Accessibility Insights nelle richieste pull o CI/CD. Per altre informazioni, vedere axe-pipelines-samples.
  4. Correggere tutti i bug individuati, tutti hanno un impatto diretto sull'accessibilità.

Sicurezza e privacy

Un'applicazione non sicura può essere un punto di ingresso che consente a un utente malintenzionato di eseguire attività dannose. Anche se l'app non ha bug di sicurezza, gli utenti malintenzionati possono usare l'app per avviare attacchi tramite phishing e altre forme di social engineering che violano i limiti di sicurezza e la privacy. Le procedure consigliate descritte in questa sezione consentono di ridurre i rischi correlati alla sicurezza e alla privacy degli utenti.

Linee guida sulla sicurezza

  • Seguire il ciclo di vita dello sviluppo della sicurezza per tutti gli sviluppi.
    • La modellazione delle minacce consente di evitare difetti di sicurezza.
    • L'uso di librerie sicure, linguaggi e strumenti riduce al minimo i difetti di implementazione.
    • Le impostazioni predefinite sicure possono impedire problemi di sicurezza causati dall'errore dell'utente.
  • Non richiedere privilegi amministrativi per installare l'app.
    • Idealmente, l'app deve supportare sia installazioni amministrative che installazioni per utente.
    • L'uso della creazione di pacchetti MSIX è un modo per ottenere questo risultato.
  • Non richiedere privilegi amministrativi per eseguire l'app.
    • Se sono presenti determinate funzionalità che richiedono privilegi amministrativi, è consigliabile separarle nei propri processi per ridurre la superficie di attacco.
  • Preferire l’uso di linguaggi con sicurezza della memoria garantita (ad esempio C#, JavaScript o Rust), soprattutto per i percorsi di codice rischiosi, ad esempio l'analisi di dati non attendibili.
  • Usare tutte le mitigazioni della sicurezza fornite dal compilatore e dal set di strumenti (vedere Funzionalità di sicurezza in Microsoft Visual C++ per Visual C++).
  • Usare sempre le librerie standard del linguaggio o del framework scelto per la crittografia e altri codici sensibili alla sicurezza. Non tentare di crearne di proprie.
  • Firmare digitalmente tutti i componenti dell'applicazione, non solo il programma di installazione, ma anche il programma di disinstallazione (se disponibile). Firmare anche tutti i file EXE, DLL e altri file eseguibili che costituiscono l'app.
    • Le firme digitali consentono all'utente di verificare l'autenticità dell'app e consentono agli amministratori aziendali di proteggere i propri dispositivi usando Windows Defender Application Control.
    • L'uso della creazione di pacchetti MSIX è un modo per ottenere questo risultato.
  • Assicurarsi che tutte le comunicazioni di rete siano in un trasporto sicuro, ad esempio SSL.
  • Fornire protezioni o altre mitigazioni che consentono di proteggere gli utenti dall'esecuzione accidentale di azioni dannose, anche quando sono costretti a farlo da utenti malintenzionati.
    • Delle semplici finestre di dialogo "Sei sicuro di voler fare X? Sì/No" in genere non sono efficaci, perché gli utenti sono condizionati a fare clic su "Sì".

La maggior parte delle app moderne raccoglie e usa una grande quantità di dati, inclusi i dati personali, per vari motivi. La telemetria, il miglioramento del prodotto e la monetizzazione sono tre ragioni comuni per l'utilizzo dei dati, ma gli utenti e le autorità di regolamentazione stanno diventando più sensibili alle implicazioni sulla privacy di queste pratiche. Si aspettano trasparenza e controllo sui dati raccolti e usati dalle app. Usare i suggerimenti seguenti per soddisfare le esigenze di privacy degli utenti.

Linee guida sulla privacy

  • Assicurarsi che l'app fornisca un'informativa sulla privacy accurata. Idealmente, fornire sia un documento di riepilogo scritto per un pubblico casuale (gli utenti) che un criterio legale di lunga forma (scritto per i propri avvocati).
  • Acquisire familiarità con le normative sulla privacy nei mercati in cui sarà disponibile l'app e assicurarsi che l'app soddisfi o superi i requisiti per la divulgazione, i diritti di utilizzo, le richieste di eliminazione e così via.
  • Assicurarsi di raccogliere la quantità minima di dati personali necessari per completare le esperienze dell'app.
    • Non raccogliere i dati "per ogni evenienza": dovrebbe esserci un motivo valido per raccogliere tutti i dati, ad esempio quello di voler migliorare l'esperienza del cliente o facilitare la monetizzazione.
  • Ottenere sempre il consenso dell'utente prima di raccogliere e archiviare i dati personali e fornire all'utente un modo semplice per annullare la propria decisione in futuro. Evitare "motivi scuri", ad esempio rendere il pulsante "Sì" più grande o più prominente del pulsante "No" in una finestra di dialogo di consenso.
    • Consultare le normative applicabili per determinare quali divulgazioni e consenso specifici sono necessari per i tipi di dati specificati. Ad esempio, alcune aree possono consentire agli utenti di visualizzare, modificare o eliminare i dati archiviati su di essi.
  • Se è necessario trasmettere i dati in rete, usare sempre connessioni protette, ad esempio tramite TLS.
  • Evitare di archiviare i dati personali in una posizione centralizzata (ad esempio, un sito Web). Se è necessario archiviare i dati personali, ridurre al minimo la quantità di dati archiviati, archiviarla solo per il tempo strettamente necessario e assicurarsi che sia crittografata in modo sicuro.
  • Verificare che tutte le librerie o gli SDK di terze parti usati dispongano anche di procedure consigliate per la privacy. Tieni presente che questo non è limitato solo agli SDK pubblicitari: qualsiasi libreria che si connette a Internet potrebbe influire sulla privacy degli utenti dell'app.