Så här lägger du till Azure Mobile Services i en Windows Phone App

Windows Phone-appar som använder levande plattor, autentiserar användare med ensam tecken på och delar data mellan enheter och användare använder vanligtvis molntjänster. De flesta molnplattformar erbjuder allmänna möjligheter att lagra data och exekvera kod, men du måste lägga till mycket infrastrukturkod för att limma dessa funktioner tillsammans. Azure Mobile Services kan du lägga till molntjänster till din app om några minuter.

Introduktion

Denna handledning visar hur du lägger till en backend-tjänst i en Windows Phone-app med Azure Mobile Services. Du kommer att skapa en ny mobiltjänst och en enkel att göra app som lagrar data i molnet med den nya mobiltjänsten. I denna handledning lär du dig att:

  • skapa en mobiltjänst och lägg till tabeller till den
  • uppdatera appen för att kunna använda mobiltjänsten
  • testa mobiltjänsten som är värd för Azure Mobile Services

För att följa med mig behöver du ett Windows Azure-konto. Du kan anmäla dig till en Windows Azure-försök om du inte har något konto ännu. 

1. Skapa en mobiltjänst

Vi måste först skapa en ny mobiltjänst som kan användas av Windows Phone-appen. Den mobila tjänsten som du kommer att skapa i denna handledning är en JavaScript-backend-mobiltjänst. Det gör det möjligt för dig att använda JavaScript för affärslogik på serversidan. Följ dessa steg för att skapa en ny mobiltjänst med Azure Management Portal.

Steg 1: Lägg till en mobiltjänst

Logga in på Azure Management Portal och klicka på NY knappen i navigeringsfältet. Bygga ut Beräkna> Mobiltjänst och klicka Skapa.

 Steg 2: Välj Databas Typ, Region och Runtime

I Ny mobil tjänst guiden, välj en gratis 20 MB SQL-databas eller använd en av dina befintliga databaser. Välj JavaScript från backend menyn och ange en underdomän för den nya mobiltjänsten i URL textruta.

Observera att namnet på mobiltjänsten måste vara unik. Ett fel visas bredvid URL när namnet / underdomänen du angav inte är tillgänglig.

Steg 3: Ange databasinställningar

När du skapar en ny mobiltjänst kopplas den automatiskt till en SQL-databas. Azure Mobile Services-backend ger sedan inbyggt stöd för att möjliggöra för fjärrprogram att säkert lagra och hämta data från den, utan att du behöver skriva eller distribuera någon anpassad serverns kod.

För att konfigurera databasen, ange namnet på databasen i namn fält. Ange sedan Server-inloggningsnamn och Serverinloggnings Lösenord för att komma åt SQL-databasservern.

Klicka på kryssrutan längst ner till höger för att slutföra processen. Du har nu skapat en ny mobiltjänst som kan användas av dina mobilappar. Innan du kan börja lagra data måste du först skapa ett bord som kan lagra programmets data.

Observera att användningen av en databas i en annan region inte rekommenderas på grund av ytterligare bandbreddskostnader och högre latenser.

2. Lägg till ett bord i Mobiltjänsten

I detta steg lägger vi till ett bord som heter ToDoItem till mobiltjänsten, som kommer att användas av klientappen för att spara användarens åtgärdsposter.

Steg 1: Skapa ett nytt bord

Från Data fliken i Azure Management Portal, klick Skapa att lägga till ett nytt bord till mobiltjänsten. Namnge tabellen ToDoItem och ange en behörighetsnivå mot varje operation. För ToDoItem tabell har jag använt standard behörighetsinställningar.

Klicka på kryssrutan längst ner till höger för att slutföra tabellinstallationsprocessen. På bara några sekunder har du lagt till ToDoItem bordet till mobiltjänsten.

Steg 2: Lägg till kolumner i tabellen

De ToDoItem Bordet innehåller redan ett antal kolumner för att lagra id, skapa datum, raderad status, uppdaterat datum och versionsinformation. För att göra tabellen användbar för vår ansökan, måste vi lägga till ytterligare två kolumner, en för att lagra texten på åtgärdsobjektet och en för att lagra åtgärdsobjektets status.

För att lägga till de extra kolumnerna, klicka på Lägg till kolumn från kolumner fliken på ToDoItem tabell. De text kolumnen är av typ Sträng och den avslutad kolumnen är av typ Boolean.

Dessa är kolumnerna till ToDoItem tabell.

Nu när vi har skapat vår mobiltjänst och lagt till ett bord till det, har du två alternativ: skapa en ny app eller anslut en befintlig app till mobiltjänsten. I den här handledningen ändrar vi en befintlig Windows Phone-app för att använda mobiltjänsten.

3. Konfigurera appen för att använda mobiltjänsten

Appen måste konfigureras korrekt för att kunna använda mobiltjänsten. Du måste lägga till kod för att ansluta din app till din mobiltjänst och spara data till molnet.

Högerklicka på projektnamnet i Lösningsutforskare och välj Lägg till Ansluten tjänst från menyn. I Lägg till ansluten tjänst dialogrutan som visas väljer du Azure Mobile Services och klicka konfigurera.

Välj sedan den mobiltjänst som du skapade tidigare från listan över befintliga tjänster i ditt konto. Du måste ange dina referenser för att ansluta och lista mobiltjänsterna i ditt Windows Azure-konto.

Välj den mobiltjänst vi skapade och klicka på Lägg till för att slutföra processen. Guiden lägger sedan till alla nödvändiga referenser till ditt projekt. Referenser kan också läggas till manuellt genom att installera det önskade paketet med NuGet. Högerklicka på ditt klientprojekt, välj Hantera NuGet-paket, sök efter WindowsAzure.MobileServices paket, och lägg till en referens för paketet.

Guiden installerar den nödvändiga NuGet paket, lägger till en referens för mobiltjänstens kundbibliotek till projektet och uppdaterar projektkällkoden. Guiden lägger också till ett nytt statiskt fält till App klass som ser ut så här:

offentliga statiska Microsoft.WindowsAzure.MobileServices.MobileServiceClient todolistClient = nya Microsoft.WindowsAzure.MobileServices.MobileServiceClient ("https://todolist.azure-mobile.net/", "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");

Den här koden ger tillgång till din nya mobiltjänst i din app med hjälp av en instans av MobileServiceClient klass. Klienten skapas genom att leverera URI och applikationsnyckeln till den nya mobiltjänsten. Det här statiska fältet är tillgängligt för alla sidor i din app. Du måste lägga till den här koden manuellt till App.xaml.cs om du inte använder guiden.

4. Uppdatera appen för att använda mobiltjänsten

Du måste uppdatera din Windows Phone app för att kunna använda mobiltjänsten som backend-tjänst. Du behöver bara göra ändringar i MainPage.cs projektfilen.

Steg 1: Lägg till ToDoItem Klass Definition

Lägg till en ny modellklass, ToDoItem, till ditt projekt. Modellklassen innehåller egenskaper som motsvarar kolumnerna i ToDoItem bord som vi skapade tidigare.

offentlig klass ToDoItem public string Id get; uppsättning;  [Newtonsoft.Json.JsonProperty (PropertyName = "text")] public string Text get; uppsättning;  [Newtonsoft.Json.JsonProperty (PropertyName = "complete")] public bool Komplett get; uppsättning;  offentliga ToDoItem ()  offentliga ToDoItem (strängtext, bool status = false) Text = text; Komplett = status; 

De JsonPropertyAttribute Metoden används för att definiera mappningen mellan egenskapsnamn i klientapp och kolumnnamn i motsvarande tabell. En hänvisning till Newtonsoft.Json paketet måste läggas till projektet för att göra detta arbete.

Steg 2: Lägg till kod för att infoga och hämta poster

Lägg till följande använder sig av uttalande till MainPage.xaml.cs:

använder Microsoft.WindowsAzure.MobileServices;

Lägg till följande rader högst upp på MainPage.xaml.cs att skapa en mobiltjänster-medveten bindande samling och proxy-klass för databastabellen.

privat MobileServiceCollection ex; privat IMobileServiceTable todoTable = App.tutsplusdemoClient.GetTable();

Skapa sedan en InsertToDoItem Metod för att infoga ett nytt objekt i tabellen. Lägg till async modifierare till metoden och lägg till följande kod för att infoga ett objekt.

public async Uppgift InsertToDoItem (ToDoItem toDoItem) avvakta todoTable.InsertAsync (toDoItem); items.Add (toDoItem); 

Den här koden fungerar om ditt bord har behörigheter inställda på Någon med en applikationsnyckel. Om du ändrar behörigheterna för att säkerställa din mobiltjänst måste du lägga till användarautentiseringsstöd. Se Lägga till autentisering med Azure Mobile Services. 

Skapa en RefreshTodoItems metod som sätter bindningen till insamlingen av objekt i ToDoItem bord som innehåller alla ToDoItem objekt returnerade från mobiltjänsten. Vi visar en meddelandebox om ett problem uppstår när du utför sökfrågan.

privat async Uppgift RefreshTodoItems () MobileServiceInvalidOperationException exception = null; försök // Query som returnerar alla objekt. poster = väntar todoTable.ToCollectionAsync ();  fånga (MobileServiceInvalidOperationException e) exception = e;  om (undantag! = null) avvakta nya MessageDialog (exception.Message, "Error loading items"). ShowAsync ();  annat ListItems.ItemsSource = items; this.ButtonSave.IsEnabled = true;  

Steg 3: Lägg till kontroller till MainPage.xaml

Vi måste nu uppdatera MainPage.xaml för att visa to-do-objekt och lägga till möjligheten att lägga till saker att göra. Nedan är vad XAML-koden kan se ut för ett enkelt användargränssnitt som innehåller en Textruta för att infoga artiklar och a Listvy för att visa att göra saker.

                      

De InsertToDoItem Metoden heter när Spara knappen trycks in, vilket sätter in åtgärdsposten i bordet.

privat async void ButtonSave_Click (objekt avsändare, RoutedEventArgs e) var todoItem = new TodoItem Text = TextInput.Text; vänta på InsertTodoItem (todoItem); 

De RefreshToDoItems Metoden åberopas när Uppdatera knappen är knackad. I den här metoden hämtar vi alla objekt i tabellen.

privat async void ButtonRefresh_Click (objekt avsändare, RoutedEventArgs e) ButtonRefresh.IsEnabled = false; // vänta SyncAsync (); // offline synkronisering väntar på RefreshTodoItems (); ButtonRefresh.IsEnabled = true; 

5. Testa mobiltjänsten

Det sista steget i denna handledning är att granska de data som lagras i mobiltjänsten. I Windows Azures klassiska portal, klicka på ToDoItem bord under Data fliken i din mobiltjänst. Under Bläddra fliken kan du se alla objekt i tabellen.

Slutsats

Denna handledning demonstrerar grunderna i att använda Azure Mobile Services som backend för en Windows Phone-app. Att skapa en mobiltjänst och använda den i appen för att lagra data i molnet är lätt att implementera.

Mer komplexa scenarier innebär stöd för offline datasynkronisering. Du kan också lägga till offline-synkroniseringsstöd till appen som följer den här handledningen. Du kan begränsa tabellbehörigheter så att endast autentiserade användare kan uppdatera tabellen efter denna Envato Tuts + -artikel.

Du kan ladda ner handledningens källfiler för referens. Kom ihåg att konfigurera appen att använda Azure Mobile Services innan du distribuerar den.