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

Le app universali di Windows sono eseguibili in un'ampia varietà di dispositivi, supportano un'interfaccia utente adattiva, l'input utente in linguaggio naturale, uno Store, un Dev Center 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 dispositivo 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 adattare l'interfaccia utente a dimensioni dello schermo, risoluzioni e DPI vari.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 la tua 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: puoi 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 Windows10.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, puoi aggiungere l'SDK di estensione IoT al tuo 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, vedi 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.

Puoi scrivere l'app 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, puoi 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, vedi 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 devi personalizzare ulteriormente l'interfaccia utente in base a dimensioni di schermo o dispositivi specifici, sono disponibili nuovi strumenti e pannelli di layout che ti permettono di progettare un'interfaccia utente in grado di adattarsi ai vari dispositivi e fattori di forma su cui la tua 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 o 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. Puoi inviare la tua app allo Store e renderla disponibile per tutti i tipi di dispositivi o soltanto per quelli che scegli tu.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. Hai un'app desktop C++ che desideri modernizzare con funzionalità della piattaforma UWP e vendere 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 i tuoi utenti e migliorare le tue 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

Puoi scegliere come monetizzare la tua app.You can choose how you'll monetize your app. Esistono diversi modi per realizzare profitti con la tua app.There are a number of ways to make money with your app. Tutto quello che devi fare è scegliere quello che per te è il migliore, 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. Ti basta indicare il prezzo.Just name the price.
  • Le versioni di valutazione consentono agli utenti di provare la tua 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.

Offri 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 la tua 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 la tua 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 un 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

ConfigurazioneGet set up

Vedi 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 sui 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, vedi 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 decidi in che modo gli utenti interagiranno con la tua 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 dispositivi diversi, pianifica la tua app in modo da cogliere i vantaggi del funzionamento tra 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

Inviare l'app allo StoreSubmit your app to the store

Con il nuovo dashboard unificato di Windows Dev Center puoi gestire e inviare tutte le tue app per i dispositivi Windows in una singola posizione.The new unified Windows Dev Center dashboard lets you manage and submit all of your apps for Windows devices in one place. Per scoprire come inviare le tue app per la pubblicazione nel Microsoft Store, vedi Uso del dashboard di Windows Dev Center unificato.See Using the unified Windows Dev Center dashboard 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, vedi Introduzione alla creazione di app per dispositivi Windows10For more introductory material, see An Introduction to Building Windows Apps for Windows 10 Devices

Argomenti più avanzatiMore advanced topics

Come interagisce con la piattaforma UWP APIs di Windows RuntimeHow the Universal Windows Platform relates to Windows Runtime APIs

Se stai creando un'app della piattaforma UWP (Universal Windows), è possibile ottenere numerose chilometri percorsi e comodità esplicitamente trattando i termini "della piattaforma UWP (Universal Windows)" e "Windows Runtime (WinRT)" come sinonimi più o meno.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 dietro le quinte della tecnologia e determinare semplicemente 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. Se vuoi scoprire che, in questa sezione ultima è per te.If you're curious about that, then this last section is for you.

Windows Runtime e APIs WinRT, sono un'evoluzione delle API di Windows.The Windows Runtime, and WinRT APIs, are an evolution of Windows APIs. Windows è stato originariamente, programmate tramite piatta, le API Win32 stile C.Originally, Windows was programmed via flat, C-style Win32 APIs. A quelle sono state aggiunte APIs COM (DirectX da un esempio ben evidente).To those were added COM APIs (DirectX being a prominent example). Windows Forms, WPF, .NET e nei linguaggi gestiti portare i propri modo per la scrittura di App di Windows e il proprio tipo di 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 è dietro le quinte, la fase successiva di COM.The Windows Runtime is, under the covers, the next stage of COM. Nel livello di applicazione effettiva ABI (binary interface), 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 chiamata da un'ampia gamma di diversi linguaggi di programmazione.But the Windows Runtime was designed to be callable from a great range of different programming languages. E può essere chiamata in modo che sia estremamente naturale per ognuno di questi linguaggi.And callable in a way that's very natural to each of those languages. A questo scopo, l'accesso a Windows Runtime verrà resi disponibile tramite cosa sono noti come proiezioni di linguaggio.To this end, access to the Windows Runtime is made available via what are known as language projections. C'è una proiezione di linguaggio Windows Runtime in c#, in Visual Basic, 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 in pacchetto in modo appropriato (vedi Desktop Bridge), puoi chiamare APIs WinRT da un'app creata in una vasta gamma di modelli di applicazione: Win32, .NET, Windows Forms 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, puoi chiamare APIs WinRT dalla tua app UWP.And, of course, you can call WinRT APIs from your UWP app. UWP è un modello di applicazione avvalgono Windows Runtime.UWP is an application model built on top of the Windows Runtime. Tecnicamente, il modello di applicazione UWP si basa su CoreApplication, anche se potrebbe infatti essere nascosta che questo dettaglio da te, a seconda della tua scelta 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 singolo file binario che può, qualora tu scelga, essere pubblicato in Microsoft Store ed eseguito su una 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. Raggiungere i dispositivi della tua app UWP dipende il sottoinsieme di API UWP che puoi limitare l'app alla chiamata o che chiamare 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.

Fortuna, in questa sezione è stata corretta per descrivere la differenza tra la tecnologia sottostante APIs Windows Runtime e il meccanismo di blocco e valore aziendale 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.