Che cos'è un'app UWP (Universal Windows Platform)?What's a Universal Windows Platform (UWP) app?

Le app UWP sono eseguibili in un'ampia varietà di dispositivi, supportano un'interfaccia utente adattiva, l'input utente in linguaggio naturale, uno Store, un centro per i partner e servizi cloud

Un'app UWP è:A UWP app is:

  • Sicura: le app UWP dichiarano le risorse del dispositivo e i dati a cui accedono.Secure: UWP apps declare which device resources and data they access. L'utente deve autorizzare tale accesso.The user must authorize that access.
  • In grado di usare un'API comune in tutti i dispositivi che eseguono Windows 10.Able to use a common API on all devices that run Windows 10.
  • In grado di usare funzionalità specifiche del dispositivo e di adattare l'interfaccia utente alle dimensioni, alle risoluzioni e ai DPI dello schermo di dispositivi diversi.Able to use device specific capabilities and adapt the UI to different device screen sizes, resolutions, and DPI.
  • Disponibile nel Microsoft Store in tutti i dispositivi (o solo a quelli specificati) che eseguono Windows 10.Available from the Microsoft Store on all devices (or only those that you specify) that run on Windows 10. Il Microsoft Store offre diversi modi per realizzare profitti con un'app.The Microsoft Store provides multiple ways to make money on your app.
  • In grado di essere installata e disinstallata senza rischio o danni per il computer.Able to be installed and uninstalled without risk to the machine or incurring "machine rot".
  • Coinvolgente: è possibile usare riquadri animati, notifiche push e attività utente che interagiscono con Sequenza temporale di Windows e la funzionalità di ripristino della ricerca dal punto in cui è stata interrotta di Cortana per coinvolgere gli utenti.Engaging: use live tiles, push notifications, and user activities that interact with Windows Timeline and Cortana's Pick Up Where I Left Off, to engage users.
  • Programmabile in C#, C++, Visual Basic e Javascript.Programmable in C#, C++, Visual Basic, and Javascript. Per l'interfaccia utente, usa XAML, HTML o DirectX.For UI, use XAML, HTML, or DirectX.

Diamo un'occhiata a queste caratteristiche nel dettaglio.Let's look at these in more detail.

SicuraSecure

Le app UWP dichiarano nel proprio manifesto le funzionalità del dispositivo di cui necessitano, ad esempio l'accesso al microfono, alla posizione, alla Webcam, ai dispositivi USB, ai file e così via.UWP apps declare in their manifest the device capabilities they need such as access to the microphone, location, Webcam, USB devices, files, and so on. L'utente deve accettare e autorizzare tale accesso prima che all'app sia consentito l'uso della funzionalità.The user must acknowledge and authorize that access before the app is granted the capability.

Una superficie API comune per tutti i dispositiviA common API surface across all devices

Windows 10 introduce la piattaforma UWP (Universal Windows Platform), che offre una piattaforma per app comune su tutti i dispositivi che eseguono Windows 10.Windows 10 introduces the Universal Windows Platform (UWP), which provides a common app platform on every device that runs Windows 10. Le API di base UWP sono le stesse in tutti i dispositivi Windows.The UWP core APIs are the same on all Windows devices. Se l'app usa solo le API di base, funzionerà in qualsiasi dispositivo Windows 10, indipendentemente dal fatto che sia destinata a un PC desktop, a Xbox o a un visore VR realtà mista e così via.If your app only uses the core APIs, it will run on any Windows 10 device no matter whether you are targeting a desktop PC, Xbox, Mixed-reality headset, and so on.

Un'app UWP scritta in C++ /WinRT o C++ /CX ha accesso alle API Win32 che fanno parte della piattaforma UWP.A UWP app written in C++ /WinRT or C++ /CX has access to the Win32 APIs that are part of the UWP. Queste API Win32 sono implementate in tutti i dispositivi Windows 10.These Win32 APIs are implemented by all Windows 10 devices.

Gli SDK di estensione espongono le funzionalità esclusive di tipi di dispositivi specificiExtension SDKs expose the unique capabilities of specific device types

Se la destinazione sono le API universali, l'app può essere eseguita in tutti i dispositivi che eseguono Windows 10.If you target the universal APIs, your app can run on all devices that run Windows 10. L'app UWP può comunque usufruire anche delle API specifiche del dispositivo.But if you want your UWP app to take advantage of device specific APIs, you can.

Gli SDK di estensione permettono di chiamare API specializzate per dispositivi diversi.Extension SDKs let you call specialized APIs for different devices. Se, ad esempio, l'app UWP è destinata a un dispositivo IoT, è possibile aggiungere l'SDK di estensione IoT al progetto per usufruire delle funzionalità specifiche dei dispositivi IoT.For example, if your UWP app targets an IoT device, you can add the IoT extension SDK to your project to target features specific to IoT devices. Per altre informazioni sull'aggiunta di SDK di estensione, vedere la sezione SDK di estensione in Panoramica delle famiglie di dispositivi.For more information about adding extension SDKs, see the Extension SDKs section in Device families overview.

L'app può essere scritta in modo che venga eseguita solo su un particolare tipo di dispositivo, quindi limitarne la distribuzione nel Microsoft Store a solo quel tipo di dispositivo.You can write your app so that you expect it to run only on a particular type of device, and then limit its distribution from the Microsoft Store to just that type of device. In alternativa, è possibile eseguire test condizionali sulla presenza di un'API in fase di esecuzione e adattare il comportamento dell'app di conseguenza.Or, you can conditionally test for the presence of an API at runtime and adapt your app's behavior accordingly. Per altre informazioni, vedere la sezione Scrittura di codice in Panoramica delle famiglie di dispositivi.For more information, see the Writing Code section in Device families overview.

Il video seguente offre una breve panoramica delle famiglie di dispositivi e della scrittura di codice adattivo:The following video provides a brief overview of device families and adaptive coding:

Input e controlli adattiviAdaptive controls and input

Gli elementi dell'interfaccia utente rispondono alle dimensioni e ai DPI dello schermo regolando il layout e le proporzioni dell'app.UI elements respond to the size and DPI of the screen the app is running on by adjusting their layout and scale. Le app UWP funzionano bene con più tipi di input, ad esempio tastiera, mouse, tocco, penna e controller Xbox One.UWP apps work well with multiple types of input such as keyboard, mouse, touch, pen, and Xbox One controllers. Se è necessario personalizzare ulteriormente l'interfaccia utente in base a dimensioni di schermo o dispositivi specifici, sono disponibili nuovi strumenti e pannelli di layout che permettono di progettare un'interfaccia utente in grado di adattarsi ai vari dispositivi e fattori di forma su cui l'app potrebbe essere in esecuzione.If you need to further tailor your UI to a specific screen size or device, new layout panels and tooling help you design UI that can adapt to the different devices and form factors that your app may run on.

Dispositivi Windows

Con le funzionalità seguenti Windows ti aiuta a progettare l'interfaccia utente per più dispositivi di destinazione:Windows helps you target your UI to multiple devices with the following features:

  • Controlli universali e pannelli di layout facilitano l'ottimizzazione dell'interfaccia utente in base alla risoluzione dello schermo del dispositivo.Universal controls and layout panels help you to optimize your UI for the screen resolution of the device. I controlli come i pulsanti e i dispositivi di scorrimento, ad esempio, si adattano automaticamente alla densità DPI e alle dimensioni dello schermo del dispositivo.For example, controls such as buttons and sliders automatically adapt to device screen size and DPI density. I pannelli di layout aiutano a regolare il layout del contenuto in base alle dimensioni dello schermo.Layout panels help adjust the layout of content based on the size of the screen. Il ridimensionamento adattivo si modifica in base alle differenze di risoluzione e DPI di più dispositivi.Adaptive scaling adjusts to resolution and DPI differences across devices.
  • La gestione comune dell'input permette di ricevere l'input tramite tocco, una penna, un mouse, una tastiera oppure un controller come quello di Microsoft Xbox.Common input handling allows you to receive input through touch, a pen, a mouse, a keyboard, or a controller such as a Microsoft Xbox controller.
  • Strumenti che facilitano la progettazione dell'interfaccia utente in modo che si adatti alle diverse risoluzioni dello schermo.Tooling that helps you to design UI that can adapt to different screen resolutions.

Alcuni aspetti dell'interfaccia utente della tua app si adatteranno automaticamente a più dispositivi.Some aspects of your app's UI will automatically adapt across devices. Potrebbe tuttavia essere necessario adattare la progettazione dell'esperienza utente della tua app in base al dispositivo su cui viene eseguita.Your app's user-experience design, however, may need to adapt depending on the device the app is running on. Un'app di foto, ad esempio, dovrebbe adattare l'interfaccia utente quando viene eseguita su un piccolo dispositivo palmare, per garantirne un utilizzo ideale con una sola mano.For example, a photo app could adapt its UI when running on a small, handheld device to ensure that usage is ideal for single-handed use. Quando l'app di foto viene eseguita su un computer desktop, l'interfaccia utente dovrebbe adattarsi per sfruttare al meglio lo spazio aggiuntivo sullo schermo.When a photo app is running on a desktop computer, the UI should adapt to take advantage of the additional screen space.

Esiste un solo Store per tutti i dispositiviThere's one store for all devices

Uno Store per app unificato rende la tua app disponibile ai dispositivi Windows 10, ad esempio PC, tablet, Xbox, HoloLens, Surface Hub e ai dispositivi IoT (Internet of Things).A unified app store makes your app available on Windows 10 devices such as PC, tablet, Xbox, HoloLens, Surface Hub, and Internet of Things (IoT) devices. È possibile inviare l'app allo Store e renderla disponibile per tutti i tipi di dispositivi o soltanto per quelli selezionati.You can submit your app to the store and make it available to all types of devices, or only those you choose. In questo modo, invierai e gestirai tutte le tue app per i dispositivi Windows in un'unica posizione.You submit and manage all your apps for Windows devices in one place. Si desidera modernizzare un'app desktop C++ dotandola di funzionalità della piattaforma UWP e venderla nel Microsoft Store?Have a C++ desktop app that you want to modernize with UWP features and sell in the Microsoft store? Nessun problema.That's okay, too.

Le app UWP si integrano con Application Insights per l'analisi e i dati di telemetria dettagliati, uno strumento strategico per capire gli utenti e migliorare le app.UWP apps integrate with Application Insights for detailed telemetry and analytics—a crucial tool for understanding your users and improving your apps.

Monetizzare la tua appMonetize your app

È possibile scegliere come monetizzare l'app.You can choose how you'll monetize your app. Esistono diversi modi per realizzare profitti con un'app.There are a number of ways to make money with your app. Tutto quello che occorre fare è scegliere il più adatto, ad esempio:All you need to do is choose the one that works best for you, for example:

  • Il download a pagamento è la soluzione più semplice.A paid download is the simplest option. Basta indicare il prezzo.Just name the price.
  • Le versioni di valutazione consentono agli utenti di provare l'app prima di acquistarla e offrono opportunità di esposizione e conversione più semplici rispetto alle più tradizionali opzioni "freemium".Trials let users try your app before buying it, providing easier discoverability and conversion than the more traditional "freemium" options.
  • Prezzi di vendita per accattivarsi gli utenti.Sale prices to incentivize users.
  • Sono disponibili anche acquisti in-app e annunci.In-app purchases and ads are also available.

Le app nel Microsoft Store sono facili da installare, disinstallare e aggiornareApps from the Microsoft Store provide a seamless install, uninstall, and upgrade experience

Tutte le app UWP vengono distribuite mediante un sistema di creazione di pacchetti che protegge l'utente, il dispositivo e il sistema.All UWP apps are distributed using a packaging system that protects the user, device, and system. Gli utenti non si pentono di avere installato un'app perché, quando vengono disinstallate, le app UWP non si lasciano dietro alcun elemento eccetto i documenti creati con il loro utilizzo.Users never need regret installing an app because UWP apps can be uninstalled without leaving anything behind except the documents created with the app.

Le app possono essere distribuite e aggiornate senza problemi.Apps can be deployed and updated seamlessly. La creazione dei pacchetti delle app può essere suddivisa in moduli in modo che sia possibile scaricare contenuto ed estensioni su richiesta.App packaging can be modularized so that you can download content and extensions on demand.

Consente di offrire informazioni pertinenti e in tempo reale agli utenti per invogliarli a tornareDeliver relevant, real-time info to your users to keep them coming back

Esistono molti modi per mantenere alto l'interesse degli utenti verso un'app UWP:There are a variety of ways to keep users engaged with your UWP app:

  • Riquadri animati e riquadri nella schermata di blocco che presentano informazioni contestualmente rilevanti e tempestive.Live tiles and lock screen tiles that show contextually relevant and timely info from your app at a glance.
  • Notifiche push che visualizzano avvisi importanti in tempo reale per attirare l'attenzione dell'utente.Push notifications that bring real-time alerts to your user’s attention.
  • Le attività utente consentono agli utenti di riprendere da dove avevano lasciato, anche cambiando dispositivo.User Activities allow users to pick up where they left off in your app, even across devices.
  • Il centro notifiche organizza le notifiche dall'app.The Action Center organizes notifications from your app.
  • Con l'esecuzione in background e i trigger l'app si attiva quando serve all'utente.Background execution and triggers bring your app into action when the user needs it.
  • La tua app può usare dispositivi vocali e Bluetooth a basso consumo per aiutare gli utenti a interagire con il mondo che li circonda.Your app can use voice and Bluetooth LE devices to help users interact with the world around them.
  • Integra Cortana per aggiungere la funzionalità dei comandi vocali all'app.Integrate Cortana to add voice command capability to your app.

Usa una linguaggio che già conosciUse a language you already know

Le app UWP usano Windows Runtime, un'API nativa fornita dal sistema operativo.UWP apps use the Windows Runtime, the native API provided by the operating system. Questa API è implementata in C++ ed è supportata in C#, Visual Basic, C++ e JavaScript.This API is implemented in C++ and is supported in C#, Visual Basic, C++, and JavaScript. Alcune opzioni per la scrittura di app UWP includono:Some options for writing UWP apps include:

  • Interfaccia utente XAML e C#, VB o C++XAML UI and C#, VB, or C++
  • Interfaccia utente DirectX e C++DirectX UI and C++
  • JavaScript e HTMLJavaScript and HTML

Effettua la configurazioneGet set up

Vedere Per iniziare per scaricare gli strumenti necessari per iniziare a creare app e, successivamente, scrivere la prima app.Check out Get set up to download the tools you need to start creating apps, and then write your first app.

Progettare l'appDesign your app

Il sistema di progettazione Microsoft si chiama Fluent.The Microsoft design system is named Fluent. Il sistema Fluent Design è un set di funzionalità UWP e procedure consigliate per la creazione di app che funzionano in modo ottimale in tutti i tipi di dispositivi Windows.The Fluent Design System is a set of UWP features combined with best practices for creating apps that perform beautifully on all types of Windows-powered devices. Le esperienze con Fluent si adattano perfettamente su tutti i dispositivi, dai tablet ai portatili, dai PC ai televisori e ai dispositivi di realtà virtuale.Fluent experiences adapt and feel natural on devices from tablets to laptops, from PCs to televisions, and on virtual reality devices. Per un'introduzione su Fluent Design, vedere Sistema Fluent Design per app UWP.See The Fluent Design System for UWP apps for an introduction to Fluent Design.

Una buona progettazione è il processo durante il quale si stabilisce in che modo gli utenti interagiranno con l'app, quale sarà il suo aspetto e come funzionerà.Good design is the process of deciding how users will interact with your app, in addition to how it will look and function. L'esperienza utente ha un ruolo fondamentale nella determinazione del livello di gradimento dell'app da parte degli utenti, quindi non trascurare questo passaggio.User experience plays a huge part in determining how happy people will be with your app, so don't skimp on this step. Nozioni di base sulla progettazione offre un'introduzione alla progettazione di un'app di Windows universale.Design basics introduces you to designing a Universal Windows app. Per informazioni sulla progettazione di app UWP apprezzate dagli utenti, vedi Introduzione alle app UWP (Universal Windows Platform) per i progettisti.See the Introduction to Universal Windows Platform (UWP) apps for designers for information on designing UWP apps that delight your users. Prima di iniziare a scrivere codice, vedi le informazioni di base sui dispositivi che ti aiuteranno a valutare attentamente l’esperienza di interazione per l’uso dell’app in tutti i diversi fattori di forma che sceglierai come destinazione.Before you start coding, see the device primer to help you think through the interaction experience of using your app on all the different form factors you want to target.

Oltre all’interazione su diversi dispositivi, pianifica la tua app in modo da cogliere i vantaggi del funzionamento su più dispositivi.In addition to interaction on different devices, plan your app to embrace the benefits of working across multiple devices. Ad esempio:For example:

Aggiungere serviziAdd services

Invia l'app a Windows StoreSubmit your app to the Store

Con il Centro per i partner è possibile gestire e inviare tutte le tue app per i dispositivi Windows da una singola posizione.Partner Center lets you manage and submit all of your apps for Windows devices in one place. Visualizzare Pubblicare giochi e app di Windows per informazioni su come inviare le app per la pubblicazione nel Microsoft Store.See Publish Windows apps and games to learn how to submit your apps for publication in the Microsoft Store.

Le nuove funzionalità semplificano i processi e al tempo stesso ti garantiscono un maggiore controllo.New features simplify processes while giving you more control. Puoi anche trovare report analitici dettagliati, informazioni combinate sui proventi, soluzioni per promuovere la tua app e interagire con i clienti e molto altro ancora.You'll also find detailed analytic reports combined payout details, ways to promote your app and engage with your customers, and much more.

Per altro materiale introduttivo, vedere Introduzione alla creazione di app per dispositivi Windows 10For more introductory material, see An Introduction to Building Windows Apps for Windows 10 Devices

Argomenti più avanzatiMore advanced topics

Relazione tra la piattaforma UWP e le API di Windows RuntimeHow the Universal Windows Platform relates to Windows Runtime APIs

Se si sta creando un'app UWP (Universal Windows Platform), è possibile ottenere numerosi vantaggi trattando i termini "Universal Windows Platform (UWP)" e "Windows Runtime (WinRT)" come quasi sinonimi.If you're building a Universal Windows Platform (UWP) app, then you can get a lot of mileage and convenience out of treating the terms "Universal Windows Platform (UWP)" and "Windows Runtime (WinRT)" as more or less synonymous. Ma è possibile esaminare in modo più approfondito questa tecnologia per capire la differenza tra queste idee.But it is possible to look under the covers of the technology, and determine just what the difference is between those ideas. L'ultima sezione è riservata a chi ha questa curiosità.If you're curious about that, then this last section is for you.

Windows Runtime, e le API WinRT, sono un'evoluzione delle API di Windows.The Windows Runtime, and WinRT APIs, are an evolution of Windows APIs. Windows è stato programmato in origine con semplici API Win32 di tipo C.Originally, Windows was programmed via flat, C-style Win32 APIs. A queste sono state aggiunte API COM (DirectX come esempio lampante).To those were added COM APIs (DirectX being a prominent example). Windows Form, WPF, .NET e i linguaggi gestiti hanno dato il loro contributo alla modalità di scrittura delle app di Windows e integrato le proprie caratteristiche nella tecnologia API.Windows Forms, WPF, .NET, and managed languages brought their own way of writing Windows apps, and their own flavor of API technology. Windows Runtime è, osservando in maniera più approfondita, la fase successiva di COM.The Windows Runtime is, under the covers, the next stage of COM. A livello dell'interfaccia binaria dell'applicazione (ABI) effettiva, le sue radici in COM diventano visibili.At the actual application binary interface (ABI) layer, its roots in COM become visible. Ma Windows Runtime è stato progettato per essere chiamato da un'ampia gamma di linguaggi di programmazione diversi.But the Windows Runtime was designed to be callable from a great range of different programming languages. È possibile chiamarlo in modo molto naturale da ognuno di questi linguaggi.And callable in a way that's very natural to each of those languages. A tal fine, l'accesso a Windows Runtime viene reso disponibile tramite le cosiddette proiezioni di linguaggi.To this end, access to the Windows Runtime is made available via what are known as language projections. È presente una proiezione di linguaggio di Windows Runtime in C#, in Visual Basic, in C++, standard, in JavaScript e così via.There is a Windows Runtime language projection into C#, into Visual Basic, into standard C++, into JavaScript, and so on. Inoltre, una volta incluso nel pacchetto in modo appropriato (vedere Desktop Bridge), è possibile chiamare le API di WinRT da un'app integrata in una vasta gamma di modelli di applicazione: Win32, .NET, WinForms e WPF.Furthermore, once packaged appropriately (see Desktop Bridge), you can call WinRT APIs from an app built in one of a great range of application models: Win32, .NET, WinForms, and WPF.

E, naturalmente, è possibile chiamare le API di WinRT dall'app UWP.And, of course, you can call WinRT APIs from your UWP app. La piattaforma UWP è un modello di applicazione integrato in Windows Runtime.UWP is an application model built on top of the Windows Runtime. Tecnicamente, il modello di applicazione UWP è basato su CoreApplication, anche se il dettaglio può essere invisibile all'utente, a seconda del linguaggio di programmazione.Technically, the UWP application model is based on CoreApplication, although that detail may be hidden from you, depending on your choice of programming language. Come è illustrato in questo argomento, da un punto di vista della proposta di valore, la piattaforma UWP si presta alla scrittura di un unico file binario che è possibile, se lo si desidera, pubblicare nel Microsoft Store ed eseguire su uno qualsiasi di un'ampia gamma di fattori di forma dei dispositivi.As this topic has explained, from a value proposition point of view, the UWP lends itself to writing a single binary that can, should you choose, be published to the Microsoft Store and run on any one of a great range of device form factors. La copertura dei dispositivi dell'app UWP dipende dal sottoinsieme delle API UWP che sono chiamabili dall'app o che vengono chiamate in modo condizionale.The device reach of your UWP app depends on the subset of UWP APIs that you limit your app to calling, or that you call conditionally.

Ci auguriamo che questa sezione sia riuscita a spiegare la differenza tra la tecnologia sottostante delle API di Windows Runtime e il meccanismo e il valore di business della piattaforma UWP.Hopefully, this section has been successful in describing the difference between the technology underlying Windows Runtime APIs, and the mechanism and business value of the Universal Windows Platform.