Il presente articolo è stato tradotto automaticamente.

Applicazioni per dispositivi mobili

Introduzione agli strumenti di sviluppo per Windows Phone

Joshua Partlow

Scaricare il codice di esempio

Come molti di voi, ho speso l'anno scorso o talmente sommerso da un aumento di post-apocalyptic, annunci esque terminatore informa che viene Droid. Ho hummed con commercials tocco personale T-Mobile. Che ho letto gli articoli su quante applicazioni Apple ha venduto per il iPhone.

A differenza di molti di voi, ho dedicato anche lo scorso anno ripetutamente indicando amici e familiari, Sì, in realtà funzionano su un telefono cellulare, ma no, nessuno di essi sono il telefono sul lavoro.

Pertanto, è possibile affermare che era piuttosto lieti quando Steve Ballmer e Giovanni Belfiore annunciato Windows 7 telefono al congresso World Mobile (MWC) in, Barcellona. Era dalle 6 Tempo di Redmond in febbraio. 15, 2010, ma era seduta in una sala conferenze Microsoft con alcuni centinaia colleghi, alcuni ancora in pajamas, attesa anxiously guardare un feed live di Belfiore demoing la nuova visione del telefono (microsoft.com/presspass/press/2010/feb10/02-15mwc10pr.mspx ). Probabilmente saranno guardare molti prodotti più avviati in anni a venire, ma si è sicuri che questo rimarrà una delle evidenziazioni. Era certamente il momento più interessante che ho ho dovuto in Microsoft Data.

Nel tentativo di ottenere altrettanto lieti sulle potenziali per lo sviluppo di applicazioni Windows Mobile, nel corso di questo articolo illustrerò per introdurre la piattaforma Windows telefono 7. In particolare, verrà parlare i componenti di base della piattaforma applicativa, forniscono una panoramica degli strumenti di sviluppo di Windows telefono e consentono la creazione di un'applicazione Windows telefono che accede a un servizio Web.

Un'interruzione da dopo il

Con Windows telefono 7 Microsoft riconosciuto che si è verificato un cambiamento nel panorama mobile. È disponibile una nuova previsione che, oltre a consentire di leggere la posta elettronica e documenti, un telefono deve anche essere parte integrante della tua vita. Consente di elementi quali ascoltare musica e mantenersi in contatto con amici, condividere le immagini e i video. Apparentemente, gli utenti aziendali piace troppo Facebook, e teenagers divertirsi con l'esplorazione del Web. Non è che shocking, so, ma rappresentano davvero un'evoluzione del ruolo che è previsto un telefono per riprodurre nella nostra vita.

Come potenziali clienti, spero visto demo della Belfiore e camminava immediatamente pronto per l'acquisto di un telefono. Ancora più importante, come gli sviluppatori, spero fornita conoscere la sequenza di applicazione. Dopo tutto, creazione di un nuovo sistema operativo è solo una parte della concorrenza nel mercato dei dispositivi mobile Ravvicinato. Se il presupposto è che gli utenti desiderano un telefono che consente di unire il lavoro e vita personale in modi nuovi e interessanti, è intenzione è una combinazione del sistema operativo e un ecosistema di applicazioni awesome che rende possibili.

Non perdere tempo che descrive il telefono, perché si è sicuri che ricerca guasti sul tuo blog preferiti, ma piuttosto ottenere ciò che immaginare due domande più grande è come gli sviluppatori: Qual è la piattaforma Microsoft per telefono Windows 7 e come iniziare la creazione di applicazioni?

Un nuovo mondo per sviluppatori

Bene, se MWC avviato l'individuazione di Windows 7 telefono, quindi il Game Developers Conference (GDC) e MIX10 completata del brano. GDC e MIX, Microsoft ha annunciato che la piattaforma Windows 7 Phone basata su Silverlight e XNA Framework. Se è stato sviluppato per Windows Mobile in passato, si è certi che contrassegna una divergenza fondamentale rispetto alle versioni precedenti del sistema operativo.

Cambiare perché Cose? Bene, mio parere è che la potenza di Microsoft consiste nella relativa famiglia di prodotti ampia e non è più efficiente rispetto a quando essa unificatore. Prima di Windows telefono 7 brano lo sviluppo mobile potrebbe avere sfruttato alcuni beni di Microsoft, ma non quasi nella misura si vedrà ora.

XNA Framework è stato progettato per consentire agli sviluppatori di creare potenti e complessi 2D e 3D giochi che possono estendersi su desktop, console e spazi mobili. È stato progettato attorno a una vasta gamma di hardware da funzionalità grafiche di console Xbox per le funzionalità di sensore e tocco di Zune HD. Cosa ’s più inoltre è stato progettato con modalità di gioco in rete in mente.

Silverlight è la piattaforma desktop Microsoft per applicazioni multimediali e produttività basati sul Web. Ecco una piattaforma che, quando combinato con Expression Blend, è progettato per consentire la creazione di interessanti UI possono funzionare anche standing autonomamente o legata nei servizi Web.

Il XNA Framework e Silverlight sono complesse piattaforme nel proprio diritto. Ma quando viene combinato al telefono, accettino le cose un livello completamente nuovo per lo sviluppo di applicazioni con interfacce utente bellissimi e grafici sorprendenti facilmente possono sfruttare le funzionalità di un dispositivo mobile.

Come sperimentato con Silverlight e XNA applicazioni nelle prime fasi dello sviluppo di Windows 7 telefono ciclo, era rapidamente indotto che fosse una buona direzione. È stato di nuovo per entrambe le piattaforme, nonché a codice gestito e la velocità con cui è possibile sviluppare applicazioni visivamente interessanti mi ha.

Un'altra caratteristica importante della nuova piattaforma di applicazione è la standardizzazione dell'hardware e l'accesso a livello di programmazione. In particolare, un altro annuncio fornito di MIX era che telefoni Windows potrebbe supportare un insieme principale di hardware che gli sviluppatori possono accedere in modo coerenza e affidabile. Perché è importante? In passato è stato difficile sviluppare applicazioni da eseguire su più telefoni perché è terminato di dover creare versioni specifiche del dispositivo dell'applicazione. Alcuni telefoni non eseguire l'applicazione senza variazioni significative o non funzionano del tutto quanto non supportano le funzionalità necessarie per l'applicazione.

Con Windows telefono 7 non sarà presente una domanda se il telefono è in esecuzione l'applicazione dispone di supporto per i servizi di posizione, saranno tutti. Sarà una domanda se il telefono è un accelerometer e indica se è possibile accedere, saranno tutti e l'accesso sarà coerenza. Sarà una domanda se il telefono è abilitato tocco, tutte queste saranno e nuovamente l'accesso saranno coerente. Passa all'elenco, ma spero di che rendere l'idea.

Con la piattaforma Windows telefono 7, sarà possibile sviluppare una singola applicazione e sapere che test sul telefono funzionerà su tutti. Non vi saranno ancora differenziazione dell'hardware su telefoni Windows ma sarà inoltre disponibile una base principali dell'hardware che le applicazioni potranno si basano su.

Per ulteriori dettagli sull'hardware del telefono di Windows e l'architettura della piattaforma applicativa, è possibile fare riferimento per le applicazioni hardware e piattaforma panoramiche su MSDN msdn.microsoft.com/library/ff402531(v=VS.92) e msdn.microsoft.com/library/ff637514(v=VS.92) .

Introduzione

Sì, ora che ci abbiamo parlato brevemente la piattaforma, let’s spiegare come sviluppare su di esso. Nella versione beta, Windows Phone Developer Tools sono attualmente disponibili per il download da Windows Phone Developer Portal (developer.windowsphone.com). Se non si dispone di Visual Studio, strumenti di sviluppo forniti con Visual Studio 2010 Express per Windows Phone. Se si dispone di Visual Studio 2010, gli strumenti verranno integrare con esso. In entrambi i casi, sarà necessario tutto ciò che occorre per sviluppare per telefono Windows 7.

Developer Tools include un emulatore telefono Windows e Microsoft Expression Blend per Windows Phone. Mentre non finale, la versione beta è una buona indicazione del necessario all'avvio. È possibile, potrebbe essere necessario apportare alcune modifiche al codice tra la versione beta e versione finale degli strumenti, ma tali modifiche devono essere minori o almeno ben documentati.

Se è stato installato la versione beta di strumenti, utilizzando Visual Studio 2010 Express per Windows Phone ed è ciò che verranno utilizzati per il mio esempio. Se si desidera iniziare con un'esercitazione leggermente più semplice, è possibile estrarre il Windows Phone Getting Started Guide nel sito MSDN all'indirizzo msdn.microsoft.com/library/ff402529(v=VS.92) .

Dunque, cosa creare? Anziché rispetto a un'applicazione generale “ hello world ” o “ rendere tale torcia elettrica ” so è inattivo per vedere, ho pensato si sarebbe condividono una parte di una divertente progetto poco lavoro in.

Al MIX è accaduto per partecipare a una sessione in un progetto Windows Azure: Microsoft nome in codice “ Roma ” (microsoft.com/windowsazure/dallas ). Roma è fondamentalmente un mercato per gli sviluppatori interessati a ottenere i dati per le applicazioni di servizi Web che desiderano per vendere. Attualmente la seconda comunità tecnologia anteprima di (CTP), è possibile utilizzare il portale in linea e un numero di origini dati gratuito fornito come versione di valutazione per provare il servizio ha da offrire. Mentre l'elenco corrente dei provider non è elevato, è ancora presente una serie di materiale per giocare con. Personalmente, ho trovato l'immagine dei dati forniti da NASA su Marte missioni interessanti e deciso sarebbe interessante per creare un'applicazione Windows telefono potrebbe scorrere immagini rover Mars.

Un avviso, il codice incluso di seguito ed è disponibile per il download un esempio, ma se si desidera eseguirla è necessario registrare per il CTP di Roma ottenere un account utente e chiave ID, ho lasciato vuoto nel codice (microsoft.com/windowsazure/developers/dallas ).

Creazione del progetto

Il primo passaggio per creare il Visualizzatore di immagini Mars rover consiste nel creare un progetto applicazione Windows Phone. Avvia la versione express di Visual Studio 2010 per telefono di Windows, è presentata con un standard Visual Studio pagina iniziale. Da qui è possibile selezionare Nuovo progetto che consentirà di scegliere tra numerosi modelli di progetto differente. If you’ve only installed the Windows Phone Developer Tools, your list will be limited to Silverlight for Windows Phone and XNA Game Studio 4.0.

Selezionata un'applicazione Windows telefono dai modelli di Silverlight e denominato progetto MarsImageViewer. Successivamente, Visual Studio non la magia e genera un progetto per l'utente.

Se si è lavorato con Windows Presentation Foundation (WPF) o Silverlight prima, non dovrebbe essere di sorpresa, si ottengono. Si noterà che si è fornita una superficie di progettazione con un'interfaccia telefonica interessante, una casella degli strumenti con alcuni controlli di base e un numero di file XAML con i relativi file code-behind C# (vedere di Figura 1). Se è importante conoscere le differenze tra Silverlight e XNA su Windows e di Silverlight e XNA al telefono Windows esatte, è possibile fare riferimento la panoramica del framework telefono Windows su MSDN all'indirizzo msdn.microsoft.com/library/ff402528(v=VS.92) .

image: Your Initial Windows Phone Project in Visual Studio

Figura 1 il Windows iniziale telefono progetto in Visual Studio

La comprensione di XAML

As with Silverlight, the Windows Phone application template provides an App.xaml file and a MainPage.xaml file, which are the heart of your application. È possibile non dedicare tempo prevede su questi dettagli perché funzionano essenzialmente stesso modo delle relative controparti di Silverlight, ma vorrei sottolineare due differenze fondamentali prima di passare alla creazione dell'applicazione.

Il primo punto di interesse è nel file app.XAML predefinito. Si noterà che la maggior parte del codice autogenerato è lo stesso, come si vedrà in un progetto di Silverlight sul desktop, è presente un'ulteriore sezione che contiene un oggetto PhoneApplicationService:

<shell:PhoneApplicationService 
  Launching="Application_Launching" Closing="Application_Closing" 
  Activated="Application_Activated" Deactivated="Application_Deactivated"/>

Con la versione beta di Windows Phone Developer Tools, è un nuovo modello di esecuzione determina il comportamento delle applicazioni;In questa sezione di codice, combinato con il codice sottostante in app.XAML.cs, è una posizione in cui che modellano le superfici. Se si desidera comprendere meglio il funzionamento delle applicazioni di Windows telefono e questo oggetto, è possibile fare riferimento all'argomento modello di esecuzione per il telefono Windows su MSDN all'indirizzo msdn.microsoft.com/library/ff769557(VS.92) .

È il secondo punto di interesse nel file MainPage.xaml ed effettivamente dove inizierò creando l'applicazione. Se si osserva attentamente, gran parte del file è simile a Silverlight, ma è disponibile una sezione XAML fuori commentato per una barra delle applicazioni. La barra delle applicazioni è un controllo di sistema che consente di esporre i pulsanti e voci di menu. Esso viene salvato è la difficoltà di creare i propri, l'utilizzo consente di coerenza per il telefono viene visualizzato e si comporta esattamente come quello utilizzato nelle applicazioni di telefono principale. Mentre verrà modificato questo codice di modello per creare la barra di applicazione, è inoltre possibile creare uno per una pagina utilizzando C# (vedere msdn.microsoft.com/library/ff431786(VS.92) per i dettagli).

Sottrarre la barra applicazioni

Il primo passo per la creazione della barra dell'applicazione consiste nel trovare le icone che si desidera utilizzare. È possibile creare proprie oppure è possibile utilizzare alcuni di quelli inclusi con gli strumenti di sviluppo. Per impostazione predefinita, le icone disponibili sono reperibili in \Microsoft SDKs\Windows Phone\v7.0\Icons\ C:\Programmi (x 86) di Windows a 64 bit e C:\Program Files\Microsoft directory Files\Microsoft SDKs\Windows Phone\v7.0\Icons\ per Windows a 32 bit. Si tratta indubbiamente pena estrazione perché corrispondano l'aspetto del telefono.

Una volta che sono state acquisite le immagini desiderate, creare una cartella nel progetto e aggiungere le icone. Quindi impostare le proprietà per ogni icona: Creare azione dovrebbe essere “ contenuto ” e copia nella directory di output deve essere “ copia sempre, ” come illustrato in di Figura 2.

image: Adding Image Resources to the Project

Figura 2 Aggiunta risorse immagine al progetto

Il passaggio successivo consiste nel rimuovere il commento dal codice dell'applicazione sulla barra e modificarla per l'applicazione. In questo caso, che comporta la creazione di due pulsanti e i gestori eventi associati. In particolare, ho creato un pulsante per recuperare la foto successiva e un pulsante per recuperare la foto precedente. Aggiunto anche scegliere eventi al codice XAML e possono generare i gestori eventi in Visual Studio. Barra dell'applicazione XAML dovrebbe risultare simile al codice in di Figura 3.

Figura 3 configurazione barra applicazioni

<phone:PhoneApplicationPage.ApplicationBar>
  <shell:ApplicationBar 
    IsVisible="True" IsMenuEnabled="False">
    <shell:ApplicationBarIconButton 
      x:Name="appbar_BackButton" 
      IconUri="/Images/appbar.back.rest.png" 
      Text="Back" 
      Click="appbar_BackButton_Click">
    </shell:ApplicationBarIconButton>
    <shell:ApplicationBarIconButton 
      x:Name="appbar_ForwardButton" 
      IconUri="/Images/appbar.
next.rest.png" 
      Text="Next" 
      Click="appbar_ForwardButton_Click">
    </shell:ApplicationBarIconButton>
  </shell:ApplicationBar>
</phone:PhoneApplicationPage.ApplicationBar>

Prima di passare il code-behind, richiedeva anche l'ora per specificare un nome di pagina e il titolo dell'applicazione e aggiungere un controllo immagine alla griglia principale di MainPage.xaml, come illustrato in di Figura 4. Lasciare la ricerca come di Figura 5, dove si noterà una barra applicazioni vuoto di quattro cerchi nell'area di progettazione.

Figura 4 di MainPage.xaml

<!--TitlePanel contains the name of the application and page title-->
<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="24,24,0,12">
  <TextBlock x:Name="ApplicationTitle" 
    Text="MarsImageViewer" 
    Style="{StaticResource PhoneTextNormalStyle}"/>
  <TextBlock x:Name="PageTitle" 
    Text="Images" 
    Margin="-3,-8,0,0" 
    Style="{StaticResource PhoneTextTitle1Style}"/>
</StackPanel>

<!--ContentPanel - place additional content here-->
<Grid x:Name="ContentGrid" Grid.Row="1">
  <Image Height="300" 
    HorizontalAlignment="Left" 
    Margin="36,104,0,0" 
    Name="MarsImage" 
    Stretch="Fill" 
    VerticalAlignment="Top" 
    Width="400" />
</Grid>

image: The Configured Design Surface

Figura 5 dell'area di progettazione configurati

Con l'interfaccia di applicazione definita, è possibile ottenere alcuni rover Marte immagini. Il portale di Roma è progettato per essere descrittiva e consente di acquisire familiarità con le query. Inoltre fornisce l'URL del servizio Web appropriato, viene illustrato come aggiungere i parametri e vengono fornite le informazioni di intestazione appropriati per le query.

Ho scoperto tramite il portale è che il servizio NASA Web consente query per informazioni su parametri o il recupero di un'immagine JPEG specifico tramite un ID di immagine. Che cosa implica per questo programma è che sono necessarie due operazioni. Il primo consiste nel ricercare informazioni immagine, che include l'ID dell'immagine. Il secondo è analizzare il XML restituito per l'immagine di ID, quindi può essere utilizzato per recuperare un'immagine specifica.

Chiamata Alessandria in corso... Intendo, Milano

Bene, cominciamo. Nel file MainPage.xaml.cs predefinito aggiunto utilizzando istruzioni per tre spazi dei nomi:

using System.Xml.Linq;
using System.IO;
using System.Windows.Media.Imaging;

Quindi ho aggiunto un riferimento alla DLL System.Xml.Linq facendo clic su riferimenti in Esplora soluzioni, scegliere Aggiungi riferimento, selezionando System.Xml.Linq e quindi facendo clic su OK. System.Xml.Linq fornisce l'accesso alle classi che facilitano il caricamento XML dai flussi e quindi una query che XML tramite LINQ. Non preoccuparti se non si ha familiarità con LINQ;Questo esempio utilizza una minima quantità di LINQ to XML ed è possibile fare sempre riferimento a MSDN per ulteriori informazioni.

Ho anche creato due variabili private per la pagina. Un oggetto IEnumerable di XElement definite voci di memorizzare il risultato di un LINQ to XML query e un indice di integer per tenere traccia delle immagini in che sono. È stato quindi modificato MainPage costruttore per inizializzare l'indice 0 e chiamare una funzione getImageIDs:

private IEnumerable<XElement> entries;
  private int index;

  // Constructor
  public MainPage() {
    InitializeComponent();

    index = 0;
    getImageIDs();
  }

La funzione getImageIDs è progettata per avviare il recupero delle informazioni dal servizio Web. La funzione utilizza l'URL del servizio Web e un WebClient per avviare una richiesta asincrona di informazioni immagine:

private void getImageIDs() {
  Uri serviceUri = new Uri("https://api.sqlazureservices.com/NasaService.svc/MER/Images?missionId=1&$format=raw");
  WebClient recDownloader = new WebClient();
  recDownloader.Headers["$accountKey"] = "<Your account key>";
  recDownloader.Headers["$uniqueUserID"] = "<Your user ID>";
  recDownloader.OpenReadCompleted += 
    new OpenReadCompletedEventHandler(recDownloader_OpenReadCompleted);
  recDownloader.OpenReadAsync(serviceUri);
}

Si noterà che, per semplicità, viste hardcoded il parametro missionId su 1, in questo caso rappresenta la missione opportunità. In teoria, questo parametro e così via deve essere dinamicamente definiti dall'utente.

Qualsiasi richiesta asincrona, è necessario un gestore. Questo gestore viene chiamato al completamento della richiesta di dati. Per accedere a tutti i tag “ voce ” il codice XML restituito viene quindi utilizzato il flusso restituito con alcuni base LINQ to XML“ voce ” da tag di apertura per ogni record di immagine:

private void recDownloader_OpenReadCompleted(
  object sender, OpenReadCompletedEventArgs e) {
  if (e.Error == null) {
    Stream responseStream = e.Result;
    XNamespace ns = "http://www.w3.org/2005/Atom";
    XElement marsStuff = XElement.Load(responseStream);
    entries = marsStuff.Elements(ns + "entry");
    string imageID = 
      (string)entries.ElementAt<XElement>(index).Element(
      ns + "title").Value;
    getImage(imageID);
  }
}

L'insieme risultante viene memorizzato per gli oggetti IEnumerable di XElement (voci), che è dichiarato in precedenza. Con un po' di LINQ to XML finale, il gestore recupera il valore del tag del titolo per il primo XElement nei movimenti. Si verifica il valore del tag del titolo in questo schema XML corrispondente all'ID di immagine, che viene quindi passato a una funzione getImage.

La funzione getImage è simile alla funzione getImageIDs. L'unica differenza è l'URL del servizio Web utilizzato. This function asynchronously retrieves a stream to the image identified by the ID parameter. Il gestore utilizza quindi tale flusso per impostare l'origine del controllo immagine definito in MainPage.xaml (vedere di Figura 6).

Figura 6 recupero dell'immagine

private void getImage(string ID) {
  Uri serviceUri = new Uri(
    "https://api.sqlazureservices.com/NasaService.svc/MER/Images/" + 
    ID + "?$format=raw");
  WebClient imgDownloader = new WebClient();
  imgDownloader.Headers["$accountKey"] = "<Your account key>";
  imgDownloader.Headers["$uniqueUserID"] = "<Your user ID>";
  imgDownloader.OpenReadCompleted += 
    new OpenReadCompletedEventHandler(imgDownloader_OpenReadCompleted);
  imgDownloader.OpenReadAsync(serviceUri);
}

private void imgDownloader_OpenReadCompleted(
  object sender, OpenReadCompletedEventArgs e) {
  if (e.Error == null) {
    Stream imageStream = e.Result;
    BitmapImage imgsrc = new BitmapImage();
    imgsrc.SetSource(imageStream);
    MarsImage.Source = imgsrc;
  }
}

Buttoning dei pulsanti

A questo punto, il resto dell'applicazione è piuttosto semplice, con solo i gestori di eventi generati automaticamente per l'applicazione barra dei pulsanti rimanenti da implementare. Questi sono i pulsanti che verranno utilizzati per avanzare le immagini rover Marte Avanti e indietro. Come si può vedere, fondamentalmente solo riutilizzare la funzione getImage e aggiungere logica per gestire la modifica dell'indice del record corrente dell'insieme di voci. Ecco il gestore per il pulsante Indietro:

private void appbar_BackButton_Click(
  object sender, EventArgs e) {
  if (index > 0) {
    index--;
    XNamespace ns = "http://www.w3.org/2005/Atom";
    string imageID = (string)entries.ElementAt<
      XElement>(index).Element(ns + "title").Value;
    getImage(imageID);
  }
}

Gestore del pulsante Avanti è sostanzialmente lo stesso, tranne per l'indicizzazione:

The forward button handler is pretty much the same, except for its indexing:
if ((index + 1) < entries.Count<XElement>()) {
  index++;
  ...

È ora possibile eseguire il programma utilizzando l'emulatore di Windows incluso. Selezionare Windows telefono 7 emulatore dal menu dispositivo di destinazione sulla barra degli strumenti standard. Premere F5 e il programma viene generato e distribuito l'emulatore (vedere di Figura 7).

image: Running the App in the Emulator

Figura 7 esegue l'applicazione nell'emulatore

Pronto per l'esecuzione

In questo esempio è relativamente semplice, ma spero che ha dato un'idea approssimativa dell'aspetto di strumenti di sviluppo e quanto sia semplice raccogliere un'applicazione al telefono di Windows. Esistono numerose possibilità con Windows telefono 7 e prendere il tempo per esplorare le ulteriori.

Cosa si è visto è solo una panoramica introduttiva piccola di ciò che la piattaforma ha da offrire. Come prova di che, è consigliabile semplice applicazione che disposte. Con un unico pulsante ulteriori e circa 12 righe di codice, è possibile utilizzare la classe MediaLibrary nello spazio dei nomi Microsoft.Xna.Framework.Media per salvare una foto specifica il catalogo multimediale (vedere msdn.microsoft.com/library/ff769549(v=VS.92) ).

Sì, corretta, è possibile utilizzare API XNA dall'interno delle applicazioni basate su Silverlight telefono Windows. Sfortunatamente, discussioni su interweaving di Silverlight e API XNA nelle applicazioni con molto altro dovrà attendere per una data successiva. Pertanto attenzione per alcuni articoli più profondi, rivolto più e consultare la documentazione ed esempi su MSDN all'indirizzo msdn.microsoft.com/library/ff402535(v=VS.92) .

Joshua Partlow è un programming writer nel team Windows telefono 7. Si occupa di documentare il processo di portare telefono, lo sviluppo di driver di periferica e lo sviluppo di applicazioni per creare telefoni Windows OEM.

Grazie all'esperto di tecnica seguente per la revisione di questo articolo: Team di Windows telefono 7