Il presente articolo è stato tradotto automaticamente.

Windows Phone

Aggiornamento delle applicazioni Windows Phone 7.1 a Windows Phone 8

Michael Crump

Mentre somedevelopers hanno aggiornato i loro progetti Windows Phone 7.1 per sfruttare le nuove funzionalità di Windows Phone 8, altri hanno domande su quello che serve per aggiornare e quali attrezzature aggiuntive e caratteristiche dovrebbero utilizzare. In questo articolo, ti mostrerò che andare da Windows Phone 7.1 per Windows Phone 8 è più facile di quanto si possa pensare.

Nuovi modelli

Prima di esaminare i modelli, prima chiedetevi quali problemi reali che hai intenzione di risolvere con l'aggiornamento. Gli sviluppatori di giochi, che lavorano principalmente con XNA, potrebbero voler passare a Direct3D perchè XNA non più attivamente è stato sviluppato da Microsoft. Hai ancora la possibilità di creare un'applicazione XNA, ma esso non sfruttare le nuove funzionalità di Windows Phone 8.

Inoltre, sviluppatori Web nativi hanno finalmente la possibilità di entrare azione, come Internet Explorer 10 è preinstallato sul telefono. Ma a parte il gioco e lo sviluppo Web, Windows Phone 8 contiene una miriade di nuove caratteristiche per XAML / sviluppatori C# e Visual Basic .

Ecco i nuovi modelli inclusi in Windows Phone 8 SDK:

  • Windows Phone XAML e App Direct3D: Questo è un progetto per la creazione di un app di Windows Phone gestito con componenti nativi. Al primo avvio, Noterete che viene fornito con due progetti: un progetto Windows Phone 8 e un componente di Windows Runtime (WinRT) in C++.
  • Windows Phone App di HTML5: Questo è un progetto per la creazione di un app Windows Phone che utilizza principalmente il contenuto HTML. Questo modello è spesso confuso con la libreria Windows per JavaScript (WinJS) versione di Windows Phone, che non è. È semplicemente utilizzando un controllo WebBrowser per visualizzare il contenuto di HTML5.
  • Windows Phone Unit Test: Questo progetto contiene unit test che può essere utilizzato per testare le applicazioni Windows Phone. Questo modello viene aggiunto dopo l'installazione aggiornamento 2 RTM rilascio Visual Studio .

Aggiornamento progetto esistente

Certo, i nuovi modelli di progetto guida nuovo sviluppo di app, ma per quanto riguarda un app di basato su XAML esistente già costruito con Windows Phone 7.1? La buona notizia è che è possibile aggiornare tali applicazioni per Windows Phone 8 il progetto Windows Phone 7.1 in Visual Studio 2012 con il tasto destro e selezionando aggiornamento a Windows Phone 8. Riceverai un messaggio che ti avverte che questo aggiornamento non può essere annullato e non aggiorna tutti i progetti di riferimento. Ti consigliamo di fare in modo che l'app è eseguito il backup prima di procedere. È inoltre possibile aggiornare a Windows Phone 8 selezionando Proprietà del progetto, cliccando sulla pagina dell'applicazione, scegliendo Windows Phone OS 8 dall'elenco a discesa e salvare le modifiche.

Inoltre, se avete ancora un progetto Windows Phone 7 in giro, verrà richiesto di eseguire l'aggiornamento a Windows Phone 7.1 prima è possibile aggiornare a Windows Phone 8. Ancora una volta, vi raccomando backup al vostro progetto prima di procedere.

Dopo l'app è stato aggiornato a Windows Phone 8, è possibile utilizzare le funzionalità SDK e nuove attrezzature. Ora potrai guardare tutte le nuove opzioni emulatore trovate in Windows Phone 8.

Nuove opzioni emulatore

In Windows Phone 7.1, è possibile distribuire a solo due tipi di emulatore con le dimensioni dello schermo di destinazione di 480 x 800 (WVGA). L'unica differenza nelle immagini emulatore è la quantità di RAM (512MB o 256MB). Windows Phone 8 ha aggiunto due nuove dimensioni dello schermo: 768 x 1280 (WXGA) e 720 x 1280 (720p). Hai anche la possibilità di scaricare il Windows Phone SDK Update per Windows Phone 7.8 (trovato a bit.ly/10pauq4) per aggiungere ulteriori emulatori per testare come le app verranno eseguito sui dispositivi Windows Phone 7,8. Perché il modello app Windows Phone XAML e XNA è destinato a Windows Phone OS 7.1, è ancora possibile testare l'app su un emulatore di Windows Phone 8. Si può vedere un elenco di tutti gli emulatori vecchi e nuovi disponibili in Figura 1.

Emulator Options in Windows Phone 8
Figura 1 emulatore opzioni in Windows Phone 8

Con i vari emulatori disponibili, non è più necessario essere dipendenti da avere hardware fisico per vedere le app in esecuzione su Windows Phone 7 numerose e 8 dispositivi là fuori. I nuovo Windows Phone 8 emulatori sono vere macchine virtuali (VM) e sono uno dei migliori miglioramenti apportati al SDK.

Nota: Avrete bisogno di Hyper-V, che è solo in Windows 8 Pro o Enterprise, per gli emulatori di nuovi. Per ulteriori dettagli, vedere la pagina Windows Phone Dev Center, "Requisiti di sistema per Windows Phone Emulator," a bit.ly/QWhAA2.

Inoltre, tieni presente che con i potenti processori nei moderni PC, dovrebbe provare l'app su un dispositivo fisico prima di inviarla al mercato di misurare le reali prestazioni.

Ora che avete visto come i nuovi modelli possono beneficiare i diversi set di sviluppatori, e guardò le nuove opzioni dell'emulatore e come è facile aggiornare il progetto esistente a Windows Phone 8, è il momento di iniziare ad affrontare le altre questioni importanti che hanno affrontato gli sviluppatori Windows Phone 7.

Il Dashboard di simulazione

Quando si esegue un'applicazione Windows Phone, una varietà di cose può interrompere l'UX: risposta lenta, avendo nessun accesso a Internet, in arrivo chiamata promemoria, l'app non riuscendo a ripristinare il suo stato dopo il telefono è stato bloccato e altro. In Windows Phone 7.1, probabilmente dovete scrivere il codice che simulavano queste situazioni; ora è possibile gestire con il nuovissimo cruscotto di simulazione, come illustrato nel Figura 2.

The Simulation Dashboard Included in the Windows Phone 8 SDK
Figura 2 la Dashboard di simulazione incluso nel Windows Phone SDK 8

È possibile accedere a questo menu selezionando strumenti | Simulazione Dashboard da Visual Studio 2012. Utilizzando il pannello di simulazione, è possibile verificare in anticipo l'app andando sul mercato solo come ben suonerà in diverse situazioni.

Consentendo la simulazione di rete e selezionando una velocità di rete, è possibile testare varie reti dati cellulare come Wi-Fi o scenari dove non sono disponibili reti. Particolarmente interessanti sono le opzioni di potenza del segnale, che interessano la latenza tasso e rete del perdita di pacchetti. Con queste opzioni a portata di mano, si dovrebbe essere in grado di creare un app Windows Phone 8 che si comporta bene in una varietà di scenari.

Qualsiasi app che gli obiettivi di Windows Phone 7.1 o 8 viene disattivata una volta che è stata attivata la schermata di blocco. Si è poi attivato di nuovo una volta che il dispositivo è stato sbloccato. All'interno della Dashboard di simulazione, hai la capacità di bloccare o sbloccare lo schermo per verificare come l'app gestisce attivazione o disattivazione facilmente. Facoltativamente, è possibile premere il tasto F12 per visualizzare la schermata di blocco.

Infine, puoi utilizzare "trigger promemoria," che simulerà un allarme, promemoria, telefonata, notifica di testo messaggio o pane tostato. Ancora una volta, è possibile utilizzare questi per testare come app gestisce attivazione o disattivazione.

Analisi di App Windows Phone

Mentre il cruscotto di simulazione è utile nel fornire reali scenari che potrebbero accadere a un utente, una volta che l'app è in esecuzione sul suo telefono, non aiuta con le prestazioni dell'applicazione. Questo è dove si può fare uso di analisi di app di Windows Phone, che può essere trovato presso il Debug | Windows Phone Application Analysis menu Start.

Questo strumento fornisce monitoraggio app, che aiuta a valuta il tempo di avvio e la reattività così come di profilatura. Ciò consente di valutare sia l'esecuzione - o memoria -­correlati problemi nella tua app. L'opzione di esecuzione profilatura include impostazioni avanzate che consentono di fare cose come l'analisi visiva e codice di campionamento, mentre le opzioni di memoria consentono di raccogliere gli stack di allocazione di memoria e i riferimenti agli oggetti. Entrambe queste opzioni si tradurrà in un grafico visualizzato in Visual Studio 2012, nonché un file SAP timbrati tempo aggiunto al progetto. Con i grafici generati, drill-down in avvio specifica e smettere di volte e vedere l'osservazione sommaria che ha generato il Visual Studio 2012. Lo strumento Windows Phone Application Analysis è parte integrante del vostro processo di garanzia della qualità.

Archivio Test Kit

Dopo aver testato l'app sotto diversi scenari e testato sulle prestazioni dell'applicazione con l'aiuto del kit Windows Phone Application Analysis, è necessario testare l'app per assicurarsi che è certificabile in Windows Phone Store. Questo è un passo fondamentale, come 30 minuti ora può far risparmiare parecchi giorni di tempo perso se l'app non riesce qualcosa che sarebbe stato preso utilizzando questo kit.

Il kit è facilmente raggiungibile con il tasto destro su app e selezionando Apri archivio Test Kit. Windows Phone 7.1 comprendeva anche questa funzionalità, ma è stato chiamato il Marketplace Test Kit. Sono state aggiunte nuove e migliorate le prove destinate a Windows Phone 8.

Al primo lancio, si potrebbe vedere un messaggio con sfondo blu nella parte inferiore dello schermo dicendo, "Store test case sono state aggiornate. Ti piacerebbe installare i casi di test aggiornati?" È possibile selezionare Update e scaricare prove nuove o modificate. Questo è utile perché sai sempre che stai lavorando con i più recenti test disponibili.

A sinistra della schermata sono disponibili tre schede: Dettagli di applicazione, Automated test e test manuali. Dettagli di applicazione assicura che le risorse immagine aderiscono alle linee guida nell'archivio di Windows Phone. Questo include la piastrella Store come app screenshots per WVGA, WXGA e 720p se il vostro progetto supporta queste risoluzioni. Automatizzato di controllo di test per i requisiti del pacchetto XAP, iconografia e screenshots. Tutto quello che dovete fare per richiamare questa funzione è fare clic sul pulsante Esegui Test. La scheda finale contiene test manuali; redazione di questo, ci sono 61 test manuali, è possibile eseguire. Devi indicare manualmente se il test superato o non, ma la documentazione completa Mostra come farlo. Test manuali includono quelli per il supporto multi-dispositivo, chiusura app, reattività e così via.

Localizzazione reso facile

Con Windows Phone 7, c'era un'occasione persa da molti sviluppatori di app nella localizzazione loro apps. Ciò era spesso dovuta al fatto che avevano poco o nessun aiuto con la traduzione da una lingua a altra. Il recente rilascio dell'App multilingue Toolkit e nuovi modelli di progetto ha risolto questo problema.

Il modello predefinito di Windows Phone 8 vi guida attraverso la localizzazione con commenti incorporati nel file MainPage. xaml, e anche strutture app con una classe di supporto e la cartella di risorse. Microsoft ha aggiunto la App multilingue Toolkit che era originariamente in Windows 8. Una volta l' App multilingue Toolkit per Visual Studio 2012 (bit.ly/NgggGU) è installato, è semplice come selezionando strumenti | Abilitare App multilingue Toolkit. Dopo aver abilitato il toolkit per il vostro progetto, selezionare il progetto | Aggiungere le lingue di traduzione per visualizzare le lingue disponibili, come mostrato Figura 3.

The Translation Languages Dialog Included with the Multilingual App Toolkit
Figura 3 la finestra di dialogo Traduzione lingue incluso con il Toolkit di App Multilingue

È possibile filtrare la lingua desiderata e premere quindi il pulsante OK. Aggiunge automaticamente i file di linguaggio appropriato alla tua cartella di risorse. È un file in particolare che ti consigliamo di prestare attenzione a quello con l'estensione xlf. Questo è un file XML Localization Interchange File Format (XLIFF) standard di settore che ti dà un controllo granulare su qualsiasi pseudo-traduzione. Facendo doppio clic su di esso, si apre l'Editor multilingue che vi permetterà di tradurre da una lingua a altra semplicemente cliccando il pulsante Traduci. Si può vedere un esempio di questo in Figura 4.

Translating from One Language to Another 
 Figura 4 tradurre da una lingua a altra

In Figura 4, si può vedere che tradotto automaticamente diverse parole per me. Una volta completa una traduzione, si può firmare o passarlo a un traduttore umano per la revisione. In questo esempio, le uniche parole che aveva bisogno di revisione erano "MEINE TELERIK APP" perché la parola "Telerik" non è la risorsa di traduzione. Il traduttore umano avrebbe capito che Telerik è scritto nello stesso modo in tedesco come in inglese, quindi può essere lasciato come è. È possibile salvare questo file per avere aggiunto il supporto per una lingua supplementare.

Un modo semplice per testare questo è modificare il titolo dell'applicazione in MainPage. xaml con la seguente riga:

<TextBlock Text="{Binding Path=LocalizedResources.ApplicationTitle,
  Source={StaticResource LocalizedStrings}}"
  Style="{StaticResource PhoneTextNormalStyle}" Margin="12,0"/>

Quindi impostare la lingua del telefono in qualsiasi linguaggio specificato. Nel mio esempio, ho selezionato il tedesco, e il titolo di app è apparso come "MEINE TELERIK APP."

Approfittando del nucleo condiviso

Con il rilascio di Windows 8 è venuto un nucleo condiviso che potrebbero usare gli sviluppatori di Windows Phone 8. Alcuni dei più importanti miglioramenti in Microsoft .NET Framework 4.5 sono async e attendono sostegno, così come un modo più semplice per utilizzare l'archiviazione isolata.

In Windows Phone 7.1, tipicamente scrivere il codice mostrato Figura 5 per scrivere un file di archiviazione isolata.

Figura 5 scrivere un File di archiviazione isolata in Windows Phone 7.1

private void WriteFileToIsolatedStorage(string fileName, 
  string fileContent)
{
  using (IsolatedStorageFile isolatedStorageFile =
    IsolatedStorageFile.GetUserStoreForApplication())
  {
    using (IsolatedStorageFileStream isolatedStorageFileStream =
      isolatedStorageFile.CreateFile(fileName))
    {
      using (StreamWriter streamWriter =
        new StreamWriter(isolatedStorageFileStream))
      {
        streamWriter.Write(fileContent);
      }
    }
  }
}

Il codice in Figura 5utilizza lo spazio dei nomi System.IO.IsolatedStorage, non trovato in Windows 8. Invece, sia Windows 8 e Windows Phone 8 può fare uso di StorageSpazio e il modello async/attendono per evitare colli di bottiglia delle prestazioni e migliorare la reattività generale dell'app. Ecco un esempio di come scrivere esattamente la stessa chiamata in Windows Phone 8, approfittando del nucleo condiviso:

public async Task WriteFileToIsolatedStorage(
  string fileName, string fileContent)
{
  IStorageFolder applicationFolder = 
    ApplicationData.Current.LocalFolder;
  IStorageFile storageFile = await applicationFolder.CreateFileAsync(
    fileName, CreationCollisionOption.ReplaceExisting);
  using (Stream stream = await storageFile.OpenStreamForWriteAsync())
  {
    byte[] content = Encoding.UTF8.GetBytes(fileContent);
    await stream.WriteAsync(content, 0, content.Length);
  }
}

Un altro spazio dei nomi utilizzato pesantemente in Windows 8 è HttpClient. Anche se il SDK di Windows Phone 8 utilizza ancora la classe WebClient per impostazione predefinita, Microsoft ha fornito la classe HttpClient attraverso NuGet. Se cercate semplicemente "Microsoft.Net.Http" e installare il pacchetto di NuGet, è possibile scrivere codice come il seguente frammento che funziona in Windows 8, così come Windows Phone 8:

private async void Button_Click(object sender, RoutedEventArgs e)
{
  var httpClient = new HttpClient();
  var request = await httpClient.GetAsync(new Uri(
    "https://www.microsoft.com/", UriKind.RelativeOrAbsolute));
  var txt = await request.Content.ReadAsStringAsync();
  // Do something with txt, such as MessageBox.Show(txt)
}

Caratteristiche fondamentali di nuovi

Finora ho discusso una varietà di modi per contribuire a facilitare la transizione a Windows Phone 8. Ora prendo un'occhiata a diverse nuove caratteristiche che l'app non può vivere senza.

Nuovi tipi di piastrelle Windows Phone 7.1 ha un tipo di tegola, chiamato il Flip mattonelle e la dimensione di una mattonella, 173 x 173, altrimenti noto come il tipo di mezzo di piastrelle. Windows Phone 8 introduce nuovi tipi di mattonelle e formati:

  • Capovolgere la piastrella: Questo è identico a Windows Phone 7.1, fatta eccezione per i nuovi formati; capovolge dalla parte anteriore alla parte posteriore.
  • Tegola iconico: Ciò è basata in gran parte sui principi di progettazione di Windows Phone per un look moderno.
  • Mattonelle di ciclo: Consente di scorrere le immagini fino a nove.

Un confronto delle dimensioni delle mattonelle può essere trovato Figura 6.

Figura 6 File dimensione confronti tra i vari tipi di piastrelle

Taglia piastrelle Flip e ciclo di dimensione (pixel) Dimensione iconica (pixel)
Ridotta 159 x 159 110 x 110
Media 336 x 336 202 x 202
Ampia 691 x 336 N/D

Piastrelle possono essere facilmente configurati tramite il file WMAppManifest. xml selezionando "Modello" e quindi aggiungendo le immagini adeguate. Si potrebbe anche impostare questo attraverso codebehind e un "capovolgere il modello di riquadro per Windows Phone 8" può essere trovato in Dev Center presso bit.ly/10pavKC.

Blocca schermo e notifiche In Windows Phone 7.1, si potevano vedere solo le notifiche come mail, SMS e telefonate. Ora gli utenti hanno la possibilità di utilizzare app come blocco schermo sfondo immagine provider e includono le notifiche personalizzate simili a quelli descritti precedentemente. Impostazione dell'immagine di sfondo può essere facile come aggiungere un'immagine alla cartella con il tipo di contenuto e aggiornamento app file per dichiarare l'app come fornitore di sfondo manifesto. Tasto destro del mouse sul file WMAppManifest. Xml; scegliere "Apri con" e selezionare Editor XML (testo); quindi aggiungere questa estensione:

<Extensions>
  <Extension ExtensionName="LockScreen_Background"
    ConsumerID="{111DFF24-AA15-4A96-8006-2BFF8122084F}" TaskID="_default" />
</Extensions>

Successivamente, chiamare il frammento di codice illustrato Figura 7.

Figura 7, l'impostazione blocco del telefono schermo sfondo immagine

private async void btnLockScreenImage_Click_1(
  object sender, RoutedEventArgs e)
{
  if (!LockScreenManager.IsProvidedByCurrentApplication)
  {
    await LockScreenManager.RequestAccessAsync();
  }
  if (LockScreenManager.IsProvidedByCurrentApplication)
  {
    Uri imageUri=new Uri(
      "ms-appx:///LockScreen.jpg", UriKind.RelativeOrAbsolute);
    Windows.Phone.System.UserProfile.LockScreen.SetImageUri(imageUri);
  }
}

Noterete che si inizia dal primo controllo per vedere se l'utente ha accesso a cambiare lo sfondo. In caso contrario, potrai presentare una GUI per chiedere l'autorizzazione, quindi creare un URI con il percorso alla vostra immagine e utilizzare lo spazio dei nomi Windows.Phone.System.UserProfile.LockScreen per impostarlo.

È inoltre possibile aggiungere una notifica per mostrare un'icona e un conteggio — di messaggi, chiamate e così via — nell'area di notifica del dispositivo Windows Phone 8. Per ulteriori informazioni, consultare l'articolo "Lock schermata notifiche per Windows Phone 8," a bit.ly/QhyXyR.

Discorso una delle novità più interessanti è il discorso. Diversi componenti del discorso sono inclusi in Windows Phone 8 SDK:

  • Sintesi vocale (anche conosciuto come la sintesi vocale): Questo permette di testo deve essere pronunciata all'utente attraverso l'altoparlante del telefono, cuffie o connessione Bluetooth .
  • Speech-to-text (noto anche come il riconoscimento vocale): Questo permette agli utenti di parlare di comandi a un telefono per eseguire diverse attività.
  • Comandi vocali: Questi permettono agli utenti di parlare comandi di fuori della tua app tenendo premuto il pulsante start e dicendo "aprire" o "start", seguito dal nome della tua app, per eseguire determinate attività.

Tutto questo è reso possibile con la Speech.Synthesis e la Speech.Recognition APIs. Una semplice implementazione della sintesi vocale può essere realizzata con due righe di codice nel gestore eventi:

private async void Button_Click(object sender, RoutedEventArgs e)
{
  SpeechSynthesizer synth = new SpeechSynthesizer();
  await synth.SpeakTextAsync("The latest MSDN issue has arrived!");
}

Basta assicurarsi che il async e attendono gli operatori sono stati aggiunti al metodo.

Ottenere il massimo dalle Your Move

Ho discusso tutto dalla nuova Utensileria e modelli ad alcune delle nuove funzionalità incluse in Windows Phone 8 SDK. Ho mostrato come sia facile implementare la localizzazione e descritto il valore aggiunto di un codice condiviso di base con Windows 8. Dovrebbe ora essere dotato della conoscenza per rendere il massimo dalla tua mossa da Windows Phone 7 Windows Phone 8.

Michael Crump è un Microsoft MVP, campione di INETA e autore di diversi e-book di .NET Framework. Lavora presso Telerik con attenzione la suite di controllo XAML. È possibile contattarlo su Twitter a twitter.com/mbcrump o tenere il passo con il suo blog visitando michaelcrump.net.

Grazie ai seguenti esperti tecnici per la revisione di questo articolo: Jeff Blankenburg (Microsoft) e Lance McCarthy (Telerik)
Jeff Blankenburg (Jeffrey.Blankenburg@microsoft.com) è un developer evangelist presso Microsoft, co-autore del libro, la migrazione a Windows Phone (Apress, 2011) e organizzatore di diversi convegni tech.

Lance McCarthy è un ambasciatore di Nokia e specialista di supporto XAML Telerik