Il presente articolo è stato tradotto automaticamente.

Windows 10

Un'introduzione alla creazione di applicazioni Windows per dispositivi Windows 10

Andy Wigley
Jerry Nixon

Scarica il codice di esempio

Hai vissuto a vederlo: un singolo sistema operativo Windows che può essere eseguito attraverso ogni tipo di periferica di Windows. Ha una piattaforma singola periferica per abilitare il driver vero hardware universale e una piattaforma singola applicazione per abilitare il vero universale Windows apps. Anni di lavorazione, questa è una significativa realizzazione ingegneria.

A livello di OS, questo significa una base di codice singolo, gestibile e agile. Per gli sviluppatori, fornisce una superficie API unificata affidabile su ogni dispositivo Windows, da dispositivi Internet of Things (IoT) come Raspberry Pi al telefono, Xbox, tavoletta, superficie Hub, laptop, PC e più (come Microsoft HoloLens). Come mostrato Figura 1, è una promessa write-once-run-dappertutto consegnata in Windows 10 con la piattaforma di applicazione universale (UAP).

la piattaforma App universale consente applicazioni attraverso tutte le famiglie di periferica di Windows
Figura 1 la piattaforma App universale consente applicazioni attraverso tutte le famiglie di periferica di Windows

Il viaggio a Windows 10

La convergenza di Windows è stato un lungo tempo a venire. Torna nel 2011, Microsoft aveva tre piattaforme con tre sistemi operativi. Il PC e il server OS era Windows, costruito sulla base del codice Windows NT . Il telefono OS era Windows Phone, un derivato di Windows CE con livello di superficie analogie con Windows NT, ma una base di codice differenti. La Xbox 360 OS era Windows NT, ma era una forcella 10 anni così sfrenatamente divergente che, troppo, era una distinta base di codice.

A quel tempo, Microsoft ha lavorato per portare un comune Internet Explorer per ogni piattaforma. Non c'era nessun Windows Core, nessuna piattaforma Windows e nessun UAP. L'implementazione di Internet Explorer su questi tre sistemi operativi ha avuto successo, ma richiesto notevole ingegneria ginnastica.

Con Windows Phone 8, il kernel del sistema operativo Windows NT sostituito Windows CE sui telefoni. Questa convergenza si trasferì le cose lungo la strada verso una singola base di codice. Windows, Windows Phone e Xbox 360 tutti sfruttato lo stesso kernel, anche se ognuno aveva ancora le basi di codice univoco. Nel 2013, ha lanciato una Xbox e con esso un core OS condiviso con Windows 8. Microsoft era così vicino a una base di codice si poteva odore, ma esso era ancora assistenza tre sistemi operativi distinti.

Windows 10 era la possibilità di riunire questa troika e convergono gli sforzi di ingegneria. Allo stesso tempo, tuttavia, nuove applicazioni della tecnologia ha richiesto l'aggiunta di ulteriori obiettivi di Windows: IoT, Microsoft HoloLens, Hub di superficie e futuri membri della famiglia dispositivo Windows. Windows 10 doveva essere un OS non solo per Windows, Phone e Xbox, ma anche per ogni piattaforma futura.

Microsoft lo ha fatto. 10 Windows è diventato il minimo ingombro, un core OS che gira su ogni famiglia di dispositivi. Questo non è stato semplice come File | Salva come. Persone intelligenti lavorato duramente per consegnare una meraviglia di ingegneria in un lasso di tempo incredibile. Windows 10 è la singola base di codice necessari per consentire l'UAP. Ogni prodotto Microsoft da questo punto in avanti sarà scritto contro il singolo core che rende Windows 10.

Unità non uniformità unire il codice le basi per un core OS non significa una UI attraverso dispositivi diversi. Windows Phone ha un'interfaccia intelligente, molto amato, con una sola mano notevolmente distintiva dall'esperienza Xbox 10 piedi. Lo stesso vale con l'Hub di superficie, Microsoft HoloLens e Raspberry Pi. Queste offrono una maggior parte del loro valore attraverso le loro esperienze uniche. Ancora, il sistema operativo con le sue librerie, runtime e quadri, è lo stesso. La piattaforma del dispositivo e la piattaforma di applicazione sono le stesse. L'interfaccia utente e funzionalità della shell, tuttavia, sono distinte e sintonizzato per il modello di utilizzo corretto per ogni dispositivo. Questi non sono gli stessi.

In teoria, qualcuno potrebbe avviarsi a questo nucleo OS e anche eseguire applicazioni, ma nessuno sarà mai perché è solo un edificio isolato. Per supportare correttamente ogni fattore di forma, componenti specifici del dispositivo shell vengono aggiunti al nucleo OS — come il Menu di avvio, supporto HID specifico ed eventuali pezzi e parti necessarie per abilitare le funzionalità specifiche del dispositivo come applicazioni desktop. Questi componenti aggiuntivi costruire dal sistema operativo base per formare la SKU OS differenti si vede come prodotti Microsoft, quali Windows, Server, Xbox e HoloLens.

Una piattaforma di applicazioni Ecco un divertente gioco per giocare con i tuoi amici. Digli che hai intenzione di abbracciare le ultime innovazioni di Microsoft app, ma che non designando Windows 10. Come? Prossimo -­generazione Windows apps non destinazione il sistema operativo. Invece, essi sarete bersaglio la piattaforma app. Su Windows, l'UAP è un modello di applicazione coerente e superficie API garantite attraverso ogni dispositivo Windows.

Il UAP non è un runtime. Un'app di Windows, anche una scritta in un linguaggio gestito (come Visual Basic o c#) compila al metallo come qualsiasi altra applicazione. Non viene eseguito all'interno di un runtime. Non necessita di un runtime. UAP è una superficie di API comune in dispositivi, quindi l'UAP di targeting si rivolge a un insieme specifico e la versione delle API.

È importante sottolineare che è costruire applicazioni Windows e giochi con gli strumenti e le tecnologie che già sapete. Windows applicazioni scritte in linguaggi gestiti ancora godono di Microsoft .NET Framework, che a sua volta è solo un insieme di interfacce, classi di base e metodi di supporto. Il sottoinsieme di .NET Framework completo utilizzato in applicazioni gestite l'UAP di targeting è chiamato Core .NET. Integrando questo, la maggior parte delle API è utilizzare in applicazioni l'UAP di targeting è in Windows Runtime, quali progetti in tutte le lingue, non solo le lingue gestite.

Non è solo XAML questo articolo intende dimostrare un'applicazione XAML, ma DirectX e JavaScript apps (applicazioni Web Windows) sono supportate anche dall'UAP, appena poichè erano in Windows 8. Detto questo, è affascina a guardare la storia XAML emergente. XAML è importante per molte piattaforme Microsoft —Windows Presentation Foundation (WPF), Silverlight nel browser e su Windows Phone e ora nella piattaforma Windows UI (che ha iniziato come nome in codice "Jupiter").

Microsoft Office 2016 è ora una famiglia di UAP apps. Quale tecnologia di interfaccia utente è possibile utilizzare? XAML. Grazie a questo rapporto, la piattaforma XAML è ricca di caratteristiche e controlla che Microsoft e gli sviluppatori di terze parti, come te, possono utilizzare nelle loro applicazioni di Windows.

La shell di Windows desktop introduce molte nuove caratteristiche, come il Menu Start e Action Center. Quale tecnologia di interfaccia utente è possibile utilizzare? XAML. Grazie a questo rapporto, la piattaforma XAML è iper-performante, offrendo funzionalità di rendering per prestazioni inferiori al secondo se approfittare di esso.

Quando si tratta di XAML, Microsoft è tutto in. Molte importanti applicazioni di OS, come Fotoe apps MSN, come la salute & Fitness, si basano sulla piattaforma XAML UI per offrire le stesse caratteristiche ricche, ogni sviluppatore può sfruttare nelle loro applicazioni di Windows. Quello che si vede nelle applicazioni di Microsoft che si può fare, troppo. Non solo è la superficie di API lo stesso per tutti, quindi è la piattaforma di XAML UI.

Valore per gli sviluppatori di Software non è sufficiente scrivere un'applicazione che può essere eseguito su ogni dispositivo. Per fornire un reale valore agli utenti, l'app Windows deve illuminare su dispositivi diversi. Grazie all'estendibilità dell'UAP, è possibile includere il codice specifico del dispositivo in un singolo file binario che verrà eseguito su ogni dispositivo.

Si ottiene più di un singolo binario con l'UAP, si ottiene anche un negozio per tutto — per telefono, tablet, desktop e anche Xbox apps. L'esperienza è semplificato; la monetizzazione è semplificato; e le metriche per monitorare il successo di mercato sono semplificate, come pure.

Quell'archivio e la piattaforma consentono di distribuire i beni in modo appropriato. Questo significa patrimonio destinato per l'esperienza Xbox non spingerla al telefono. E la funzionalità in Windows 8 per beni pacchetto targeting scala e risoluzioni specifiche rimangono nell'UAP.

Come sempre, rimanere nel controllo. Solo perché il UAP supporta tutti i dispositivi Windows, non significa che devi. Scegliere quale famiglia di dispositivi Windows app sosterrà. Se l'app di Windows phone, Xbox-solo HoloLens-sola o, che sta a voi. Windows Store assicura che l'app viene consegnato alle famiglie dispositivo selezionate.

Il valore a voi non è solo più ampia portata, ma un esperienza più facile. C'è un set di utensili, tra cui Visual Studio e frullare per Visual Studio, che già conoscono e amano. Ci è un insieme di conoscenza delle lingue, tra cui JavaScript, .NET Framework (Visual Basic o c#) e C + + / CX. Alla fine, il team costruire applicazioni Windows utilizzando quello che già sai.

Molte cose da considerare

Con grande potenza arriva la grande responsabilità. Il UAP consente applicazioni di Windows eseguire ogni tipo di periferica di Windows. Ciò è impressionante, ma si tratta con un avvertimento: Non ogni dispositivo fornisce la stessa UX. Questo significa che anche se arriva ad impiegare molte delle tecniche di progettazione (RWD) Web reattive stesse utilizzare in applicazioni Web, devi pensare attraverso come il flusso di lavoro Windows app si svolge su diversi tipi di dispositivi destinati a diversi tipi di utilizzo. L'UAP possono solo attivare il supporto su diversi dispositivi; sta allo sviluppatore e progettista di costruire un UX che è grande su tutti loro.

Microsoft fornisce generoso utensili per aiutare a costruire applicazioni Windows reattiva e adattive. Visual Studio può simulare proporzioni, scala e dimensione durante la fase di progettazione. Visual Studio può anche simulare (e talvolta emulare) dispositivo di specifico obiettivi anche se non possedete l'hardware. Ciò consente di testare le applicazioni Windows e finezza vostre esperienze lungo il cammino.

Casella degli strumenti XAML ha diversi miglioramenti per creare interfacce reattiva e adattive che sembrano grandi su ogni dispositivo e ogni display di dimensioni e nuovi controlli. Ad esempio, il RelativePanel è di nuovo agli sviluppatori XAML. Esso eredita da pannello, come ogni altro controllo di layout, come griglia e StackPanel, ma consente a designer e sviluppatori di posizionare gli elementi figlio relativo agli altri elementi figlio. La struttura visiva di XAML risultante è molto più semplice da manipolare in risposta a modifiche di layout e più semplice per eseguire il rendering. Visual Stati sono un altro potenziamento per gli sviluppatori XAML, rendendo più semplice per rispondere alle modifiche di layout.

Questo è importante: Creazione di un'applicazione Windows che gli obiettivi più dispositivi non significa scrittura al minimo comune denominatore. L'interfaccia utente è ricco e così è il set di funzionalità. Controllo Runtime (utilizzando lo spazio dei nomi Windows.Foundation.Metadata.ApiInformation) consente di includere le funzionalità specifiche del dispositivo che illuminano le app per la UX migliori possibili su ogni dispositivo. Nuove funzionalità e controlli convergenti sono gli elementi costitutivi, che hai bisogno di sognare in grande.

Anatomia di un'applicazione Windows

Ora diamo un'occhiata alle tecniche essenziali per la creazione di un'applicazione Windows che verrà eseguito attraverso qualsiasi famiglia di dispositivi. Noi stiamo supponendo che hai familiarità con lo sviluppo di app Windows 8.1 Windows Runtime (WinRT) XAML. Windows apps sono l'evoluzione di tali applicazioni. Troverete molte risorse su Microsoft Virtual Academy per la formazione che si può trovare presso aka.ms/w8learn. Questo articolo si concentra su nuove funzionalità nell'UAP — per l'esecuzione di applicazioni Windows tra famiglie del dispositivo.

In Visual Studio 2015, i modelli e Visual c# / nodo universale di Windows nella finestra di dialogo Nuovo progetto ha diversi modelli di progetto: l'App vuota, la libreria di classi e il componente di Windows Runtime. Si utilizza il modello vuoto App per costruire un'applicazione Windows. I modelli di libreria di classi e componenti di Runtime di Windows consentono di incapsulare UI e logica per riutilizzarli in altri progetti. Una libreria di classi supporta le applicazioni non-UAP, ma è limitata ai linguaggi gestiti; Componenti di Runtime di Windows possono essere condivise tra lingue (tra cui JavaScript e C + + / CX), ma hanno regole che vincolano la loro superficie di API pubbliche.

Per questo esempio, scegli App vuota, come mostrato Figura 2.

per impostazione predefinita, Windows Apps ora uso il modello vuoto
Figura 2 per impostazione predefinita, Windows Apps ora uso il modello vuoto

Dove sono tutti gli altri modelli? Si consideri il modello di App Hub fornito con Windows 8. Molti sviluppatori usavano. Molti sviluppatori ha copiato. Questa eruzione di "me troppo" apps creato visual coerenza all'interno di Windows Store, ma non ha contribuito alla diversità di ecosistema. Ora, il modello vuoto App è al centro della scena, incoraggiando gli sviluppatori a creare interfacce visivamente coerente eppure distintive sulla piattaforma. Molti modelli basati sulla comunità hanno già iniziato a comparire nella galleria Visual Studio , tra cui uno, Template10, che è stato scritto dagli autori di questo articolo.

Salve, mondo! Hai creato la prima app di Windows. Anche se l'interfaccia utente è vuoto, può già funzionare su ogni dispositivo Windows. Esplora Visual Studio rivela come un app di Windows di base è semplice: un progetto singolo con un app. xaml e un singolo file MainPage. xaml per l'interfaccia utente iniziale.

La soluzione include altri file di supporto familiare. L'appxmanifest dichiara le funzionalità che l'applicazione richiederà di macchina dell'utente, quali la posizione dell'utente; accedere alla telecamera; e il file system. Lo schema XML è stato ampliato, ma è circa lo stesso come il appxmanifest per Windows 8.1 universal apps.

Dove sono le due teste? Windows 8 app universale necessaria sia un telefono e un progetto di testa di Windows. UAP non richiede teste multiple. Invece, si adattano le interfacce per ospitare a dovunque app Windows è in esecuzione. Detto questo, è certamente possibile creare una soluzione multi-intestata se si adatta il flusso di lavoro del vostro team di sviluppo. Entrambi gli approcci sono ugualmente supportati.

Inclusi contenuti quando apri MainPage. xaml, vedrai il miglioramento Visual Studio XAML esperienza di progettazione. Il designer è più ricco e più veloce; ha migliorato la capacità di simulare la scala e le proporzioni; e l'utensileria si è espanso. Ora aggiungiamo un po' XAML, come illustrato nel Figura 3. (Grazie al nostro collega David Crawford per questo esempio).

Figura 3 il RelativePanel ti permette di Layout interfaccia in modo semplice

<Grid Background="{StaticResource EggshellBrush}">
  <RelativePanel x:Name="PromoArea">
    <Image x:Name="BannerImage" HorizontalAlignment="Right"
           Height="280" Stretch="UniformToFill"
           Source="Assets/clouds.png"
           RelativePanel.AlignRightWithPanel="True"/>
    <Grid x:Name="BannerText" Margin="24"
          Background="{StaticResource BlueBrush}">
      <StackPanel Margin="12" HorizontalAlignment="Stretch">
        <TextBlock x:Name="Headline" Text="Come fly with us"
                   Margin="0,-32,0,0" FontSize="48"
                   Foreground="{StaticResource EggshellBrush}"
                   FontFamily="{StaticResource LustScriptFont}" />
        <TextBlock x:Name="Subtitle" FontSize="21.333"
                   Foreground="{StaticResource EggshellBrush}"
                   FontFamily="{StaticResource DomusTitlingFont}">
          <Run Text="Fly return to London"/>
            <LineBreak/>
          <Run Text="For only $800"/>
        </TextBlock>
      </StackPanel>
    </Grid>
  </RelativePanel>
</Grid>

Il codice in Figura 3 crea l'intestazione di pagina per un semplice app per una compagnia aerea fittizia. In particolare, esso sfrutta la nuova RelativePanel di XAML, che consente di riorganizzare l'interfaccia in modo semplice. Il RelativePanel verrà posizionato l'immagine del banner a destra della pagina e contiene la griglia tenendo recenti offerte speciali della compagnia aerea.

L'aggiunta di alcuni beni The XAML fa riferimento a tre file, abbiamo aggiunto alla cartella risorse — un file immagine, Clouds.png e due font personalizzati, DomusTitlingFont.ttf e LustScriptFont.ttf. I font e le risorse di pennello personalizzate vengono dichiarate in XAML:

<Application.Resources>
  <SolidColorBrush x:Key="BlueBrush" Color="#FF1C90D1"/>
  <SolidColorBrush x:Key="EggshellBrush" Color="#FFFAFFF7"/>
  <FontFamily x:Key="LustScriptFont">
    Assets/Fonts/LustScriptDisplay.otf#Lust Script Display
  </FontFamily>
  <FontFamily x:Key="DomusTitlingFont">
    Assets/Fonts/DomusTitling.otf#Domus Titling
  </FontFamily>
</Application.Resources>

Questi file sono inclusi nel download del codice che accompagna questo articolo.

Si noti che l'immagine bitmap è a una scala. Se si desidera ospitare dispositivi con risoluzione più alta, si potrebbe scala vostri beni e il nome utilizzando il fattore di scala appropriata, quindi ogni utente ottiene i migliori visual esperienza senza scaricare beni per altri fattori di scala.

In esecuzione sui dispositivi indietro in MainPage. xaml, l'interfaccia utente sta prendendo forma. Per eseguire l'applicazione, è possibile selezionare la destinazione nell'elenco a discesa destinazione del dispositivo Visual Studio . Si noti che include il simulatore di Windows (per la prova di tocco), locale macchina, macchina remota (per test braccio) e dispositivo (hardware del telefono reale). Gli emulatori di telefono partecipano nell'elenco stesso. Scegliere ed eseguire sulla macchina locale e successivamente su uno degli emulatori telefono per vedere l'app di Windows eseguire su dispositivi diversi, senza alcuna speciale Compilation.

Potreste aver notato che esegue un app di Windows sul computer locale, in altre parole sul desktop del tuo PC, è un'esperienza con finestra e non lo schermo intero esperienza di Windows 8. Questo è perché si sta eseguendo l'app sul desktop SKU di Windows 10. Il mobile SKU di Windows 10 lancia ancora Windows apps pieno schermo per rendere la navigazione più facile di toccare. Ma, il desktop SKU di Windows 10 anche schermo pieno di apps lancio Windows se si sceglie l'esperienza touch tramite l'interfaccia di Continuum su un tablet o un laptop convertibile.

Interfacce adattive se le app di Windows viene eseguito su entrambi i dispositivi, una più l'interfaccia utente non è grande sul piccolo schermo del telefono. Il testo dell'intestazione è troppo grande per il piccolo schermo e viene troncato. Questo è l'inizio di un lungo viaggio per testare e migliorare la UX sulla varietà di possibili dispositivi per questa app di Windows.

Noi potrai modificare il layout dell'intestazione quando rileviamo lo schermo più stretto del telefono. È importante, tuttavia, riconoscere che non è il telefono viene rilevato; è la larghezza dello schermo. Questo consente una stretta esperienza desktop sia il telefono.

Nota che non non c'è nessuna API per rilevare un telefono. Tuttavia, dovrebbe vostro disegno richiedono una mano funzionamento specifico per il telefono e compresse più piccole, è possibile verificare la dimensione diagonale del dispositivo fisico in un trigger Visual stato personalizzato (che non è discusso in questo articolo).

Visual Stati non sono nuovi a XAML. Il Visual State Manager consente agli sviluppatori e designer per definire diversi stati Visual (layout di schermo diverso significato) e passare tra di loro in fase di esecuzione. Visual stato Adaptive trigger sono nuovo con il UAP. Essi farla finita con l'approccio programmatico a Visual stati di commutazione. Invece, si dichiara quando uno stato Visual dovrebbe essere visibile in XAML e la piattaforma sottostante fa il resto.

Ora, modificare il XAML in MainPage. xaml, come illustrato nel Figura 4.

Figura 4 XAML supporta ora dichiarando regole per adattare un'interfaccia

<Grid Background="{StaticResource EggshellBrush}">
  <VisualStateManager.VisualStateGroups>
    <VisualStateGroup x:Name="WindowStates">
      <VisualState x:Name="NarrowState">
        <VisualState.StateTriggers>
          <AdaptiveTrigger MinWindowWidth="1"/>
        </VisualState.StateTriggers>
        <VisualState.Setters>
          <Setter Target="BannerImage.Height" Value="120"/>
          <Setter Target="BannerText.(RelativePanel.Below)"
                  Value="BannerImage"/>
          <Setter Target="BannerText.Width" Value="660"/>
          <Setter Target="BannerText.Margin" Value="0,0,0,24"/>
          <Setter Target="Headline.FontSize" Value="28"/>
          <Setter Target="Subtitle.FontSize" Value="12"/>
        </VisualState.Setters>
      </VisualState>
      <VisualState x:Name="MediumState">
        <VisualState.StateTriggers>
          <AdaptiveTrigger MinWindowWidth="660"/>
        </VisualState.StateTriggers>
        <VisualState.Setters>
          <Setter Target="BannerImage.Height" Value="180" />
          <Setter Target="BannerText.(RelativePanel.AlignTopWith)"
                  Value="BannerImage"/>
          <Setter Target="Headline.FontSize" Value="28"/>
          <Setter Target="Subtitle.FontSize" Value="14"/>
        </VisualState.Setters>
      </VisualState>
      <VisualState x:Name="WideState">
        <VisualState.StateTriggers>
          <AdaptiveTrigger MinWindowWidth="1000"/>
        </VisualState.StateTriggers>
        <VisualState.Setters>
          <Setter Target="BannerText.(RelativePanel.AlignTopWith)"
                  Value="BannerImage"/>
        </VisualState.Setters>
      </VisualState>
    </VisualStateGroup>
  </VisualStateManager.VisualStateGroups>
  <RelativePanel...

In Figura 4, notare che ci sono tre stati di Visual ha dichiarato: NarrowState, WideState e MediumState. Ciascuno di questi stati Visual corrisponde alle gamme differenti di larghezza dello schermo. Sei libero di creare stati Visual come tante o poche, come è necessario per supportare le vostre famiglie del dispositivo di destinazione. Il nome da utilizzare per ogni stato di Visual non è significativo.

XAML viene illustrato anche Visual setter di stato, che sono nuovi nell'UAP e permettono di impostare un valore di proprietà discreta senza il sovraccarico di un'animazione di storyboard. Qui, stiamo usando setter per cambiare la posizione relativa dei bambini nella RelativePanel impostando la proprietà RelativePanel associata sul bambino elementi e stiamo anche cambiando l'altezza della BannerImage e il FontSize elementi di testo. Con gli Stati di Visual in luogo, l'interfaccia non fa un grande lavoro, adattandosi ad uno schermo più stretto. Eseguirlo e vedere!

Figura 5 dimostra come l'interfaccia utente si adatta ai cambiamenti nella larghezza dello schermo. Nella tua app di Windows, può approfittare del Visual State trigger per regolare gli elementi in qualche modo che meglio serve agli utenti.

adattando per schermo larghezza cambia
Figura 5 adattando per schermo larghezza cambia

La versione completa di questo esempio, che è incluso nel download del codice che accompagna questo articolo, si sviluppa ulteriormente l'UI e dà ulteriori esempi di utilizzo il RelativePanel e il Visual State trigger per implementare un'interfaccia utente adattabile.

Adattivo codice The UI si adatta alle diverse schermate, ma le differenze dispositivo estendono a più di dimensioni dello schermo. Ad esempio, i telefoni hanno pulsanti hardware come retro e la fotocamera, che potrebbe non essere presente su una piattaforma diversa ad esempio un PC. Default UAP ha più la necessità di applicazioni Windows superficie API, ma funzionalità specifiche del dispositivo è sbloccato con estensione SDK che aggiungono ai tuoi progetti come assembly esterni, come mostrato Figura 6. Essi permettono un più ampio set di funzionalità specifiche del dispositivo senza invalidare la capacità per la tua app funzionare su altri tipi di dispositivi.

l'aggiunta di un'estensione è semplice come l'aggiunta di un riferimento di progetto
Figura 6 l'aggiunta di un'estensione è semplice come l'aggiunta di un riferimento di progetto

La piattaforma più comune due estensione SDK sono le estensioni del Desktop e Mobile, che permettono funzionalità uniche per la loro rispettiva SKU di Windows. L'estensione Mobile, consente, ad esempio, le API necessarie per utilizzare il pulsante fotocamera hardware.

Windows Mobile SKU può eseguire piccoli tablet e telefoni. Tuttavia, non tutte le tavolette (non ancora tutti i telefoni) hanno un pulsante fotocamera hardware. Estensione SDK attivare il supporto di pulsante, ma non mettere i pulsanti sul dispositivo. Di conseguenza, in fase di esecuzione, è necessario eseguire test per la funzionalità del dispositivo prima di chiamare le funzionalità in estensione SDK.

Appena come platform SDK estensione come Mobile e Desktop sbloccare le funzionalità dei dispositivi per applicazioni Windows, SDK di estensione personalizzata aggiungere il supporto per componenti aggiuntivi, come il Kinect per Windows o terzo-­hardware parti. Questi, troppo, non impediscono l'app in esecuzione su altri tipi di dispositivi.

Come si può verificare per la funzionalità del dispositivo? Sfruttare i metodi nella classe Windows.Foundation.Metadata.ApiInformation che restituiscono un valore booleano semplice se un tipo o un metodo è supportato sulla periferica corrente. È possibile abilitare l'app di Windows può usare il pulsante fotocamera con codice come questo:

if (Windows.Foundation.Metadata.ApiInformation.IsTypePresent(
  "Windows.Phone.UI.Input.HardwareButtons"))
{
  Windows.Phone.UI.Input.HardwareButtons.CameraPressed +=
    HardwareButtons_CameraPressed;
}

Si noti qui come il Windows.Phone.UI.Input.HardwareButtons del codice è consentita solo se l'estensione SDK è abilitato sul dispositivo. A differenza con istruzioni condizionali di compilazione, test di funzionalità non provocare binari multipli. Questo significa che è possibile illuminare o con garbo declassare la UX secondo le funzionalità del dispositivo corrente. Questo è un approccio potente per abilitare un singolo binario; Crea variabilità illimitata, che ti permette di sfruttare al meglio le applicazioni Windows su famiglie di dispositivi diversi.

Avvolgendo

Se sei a tuo agio con lo sviluppo di Windows 8 app universale, quindi costruire applicazioni Windows mirando l'UAP dovrebbe sentire come cucina casalinga. Windows apps non bersaglio 10 Windows; il UAP è il bersaglio e si è disaccoppiato dalla SKU di Windows. UAP incrementa le versioni a una cadenza oltre a Windows. Questo significa che Windows apps non avrete bisogno di cambiare destinazione ogni volta che giri il sistema operativo Windows. Windows apps destinati a una o più versioni UAP e test per quelle capacità come test per la funzionalità del dispositivo. Questo approccio flessibile ti dà un modo piacevole, pulito per sfruttare funzionalità futura.

Costruendo un mezzo di app Windows app può eseguire su qualsiasi dispositivo di Windows. Questo dono viene fornito con un avvertimento del mondo reale: Il UAP possono eseguire l'app, ma solo agli sviluppatori e designer può rendere l'interfaccia utente e il codice di adattarsi per offrire il meglio possibile UX. Se volete compilare distinti binari specifici del dispositivo, si può fare. Ma, se si sceglie di costruire un'applicazione di Windows che supporta diversi tipi di dispositivo, tutte le attrezzature e infrastrutture è a posto e pronto a farvi successo.


Jerry Nixon è un developer evangelist per Microsoft da Colorado. Nixon insegna e parla su Windows, telefono cellulare e lo sviluppo desktop. Sua carriera lanciato con Microsoft SQL Server 6.5, offrendo soluzioni datacentriche mentre "sviluppatore di database" era un termine romanzo. Ha ricevuto un civile navale encomio per il lavoro di sicurezza, precede il suo lavoro per l'avvio che sarebbe diventato Microsoft CRM. Per 15 anni, Nixon costruito soluzioni basate su Microsoft mobile. Oggi, ne parla su XAML e mobilità presso eventi, Comunità e le università e la maggior parte del suo tempo libero è speso tre figlie di insegnamento backstories personaggio di Star Trek e trame episodio.

Andy Wigley è un developer evangelist per Microsoft dal Regno Unito. Ha entrato in Microsoft nel 2012, e prima che ha lavorato come consulente e fu un importante membro della Comunità degli sviluppatori mobile app. Era orgoglioso di essere nominato un Microsoft MVP Most Valuable Professional () per 10 anni consecutivi. Wigley è ben nota per il popolare video Windows Phone JumpStart disponibili su msdn.com ed è felice di lavorare con Jerry Nixon su una serie di follow-up sullo sviluppo di app di Windows.