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.
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:
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.
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.
Logga in på Azure Management Portal och klicka på NY knappen i navigeringsfältet. Bygga ut Beräkna> Mobiltjänst och klicka Skapa.
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.
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.
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.
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.
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.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.
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.
ToDoItem
Klass DefinitionLä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.
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 MobileServiceCollectionex; 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;
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;
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.
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.