Офлайн Microsoft Azure - SQLite - Разработка на приложения на платформата на Microsoft

microsoft

Сега на пазара има огромен брой приложения, които не са адаптирани да работят офлайн, което създава неудобство за потребителите. Преди известно време за C# разработчиците стана достъпен нов Microsoft Azure Mobile Services SQLiteStore SDK 1.0 alpha, който предоставя API за създаване на приложения, работещи в офлайн условия и се грижи за синхронизирането на данните между локалната база данни и базата данни на Azure. SQLite се създава и използва като локална база данни, така че имаме следните популярни начини за организиране на офлайн съхранение:

  • Сериализация в XML, JSON или друг NoSQL.
  • SQLite или други бази данни на трети страни.

  • Всеки път локалното копие на базата данни се актуализира напълно.
  • Само промените се предават по мрежата.

SDK за мобилни услуги на Azure за синхронизация

Функционалността на новите Microsoft Azure Mobile Services SQLiteStore SDK 1.0 alpha за синхронизиране на данни не е идентична с Sync Framework или Azure Data Sync. От гледна точка на клиента все още е възможно да се работи само с SQLite, но създателите обещават, че възможностите ще се развият и други бази данни от страна на клиента ще бъдат добавени по-късно. Страната на сървъра поддържа следните бази данни: SQL Database, MongoDB и Azure Table Storage. SDK поддържа следните операции:Push (насочване към сървър),Изтегляне (изтегляне от сървър),Purge (изчистване на локално хранилище). Днес ще се съсредоточим върху това как да създадете бекенд за вашето приложение с помощта на Microsoft Azure Mobile Services SQLiteStore SDK 1.0 alpha. За да работимще имаш нужда:

Нашата задача ще се състои от следните точки:

  • Създаване на мобилна услуга и мобилна база данни в Microsoft Azure;
  • Създайте проект за приложение. Ще правим универсално приложение във Visual Studio.
  • Създаване на локална база данни за приложения.
  • Реализации за синхронизиране на данни.

Настройте мобилните услуги на Azure

1. За да създадете мобилна услуга Azure за вашия проект, трябва да отворите портала на Microsoft Azure и да отидете в менютоМобилни услуги -Ново

офлайн

2. Когато мобилната услуга е създадена, на главната страница на услугата можете да намерите инструкции как да я използвате в приложения за много популярни платформи и рамки, като Windows, Windows Phone, IOS, Andro />

3. Можете да изтеглите шаблона на проекта за облачна услуга, да промените кода му, например, като коригирате модела на данните, както е на екранната снимка по-долу.

офлайн

Създайте проект за приложение

1. Ще използвам проекта Universal App за Windows и Windows Phone.

azure

2. След като създадем проекта, ще свържем необходимите библиотеки. Тъй като имаме проект както за Windows, така и за Windows Phone, трябва да инсталирамеWindowsAzure.MobileServices и за двата проекта.

azure
azure
microsoft

публичен статичен MobileServiceClient MobileService = нов MobileServiceClient("https://demo-backend.azure-mobile.net/", "ZDgibxPOCWSwOvbYJvAAipjAybMIJO51");

4. Сега можем да работим с данните чрез облачната услуга и да запазим данните в базата данни.

Създайте локална база данни и синхронизирайте

Сега трябва да създадем локално хранилище за данни на SQLite.

2. Нека добавим SQLite като използвана библиотека за нашите Windows и Windows Phone приложения.

microsoft
azure

3. Инсталирайте и добавете къмПрепратки пакетWindowsAzure.MobileServices.SQLiteStore

офлайн

4. Отворете проектаShared и създайте нов празен клас с модел на данни там. В моя случай се получи така:

azure

5. Нека създадем спомагателен клас, който ще създаде локална база данни за нас, ще можем да я попълваме с данни и да изпращаме данни към облачната услуга.

публичен статичен клас MobileServicesSync

public static async void InitSQLiteStore()

var store = new MobileServiceSQLiteStore("DemoAppSync.db");

await App.MobileService.SyncContext.InitializeAsync(магазин, нов MobileServiceSyncHandler());

публичен статичен асинхронен void InsertItem(елемент MyAppItem)

Таблица IMobileServiceSyncTable = App.MobileService.GetSyncTable();

public static async void Push()

низ errorString = нула;

CancellationToken token = нов CancellationToken();

> catch(MobileServicePushFailedException ex)

errorString = "Изпращането е неуспешно поради грешки при синхронизирането: " + ex.PushResult.Errors.Count() + ", съобщение: " + ex.Message;

> улов (изключение ex)

errorString = "Неуспешно натискане: " + ex.Message;

Интерфейс на приложението

1. ОтворетеMainPage.xaml и добавете бутони за попълване на таблицата с данни и синхронизация.

2. Добавете кода за обработка на събития къмMainPage.xaml.cs.

private void addBtn_Click(изпращач на обект, RoutedEventArgs e)

private void syncBtn_Click(изпращач на обект, RoutedEventArgs e)

Стартиране и проверка

1. Стартирайте приложението и вижте как работи.

azure

2. Веднага след като стартирахме приложението, вече сме създали локална SQLite база данни. Можем да го намерим в папката на приложението и да погледнем. За това ще използвам SQLiteБраузър.

Моята база данни е тук: C:\Users\[потребителско име]\AppData\Local\Packages\[id на приложение]\LocalState

microsoft

Както можете да видите, сега е празно.

3. Добавете елемент към него, като щракнете върху бутонаДобавяне на елемент на нашето приложение.

4. Данните в базата данни ще бъдат актуализирани и там ще бъде добавен запис, но нашата облачна база данни е все още празна.

офлайн

5. Сега щракнете върху бутонаСинхронизиране в приложението за синхронизиране на база данни и вижте резултата.

microsoft

Синхронизацията работи и данните се появяват в облачната база данни от локалната база данни на приложението.

azure

Забележка: За тези, които не са успели.

Може да се окаже, че създаването на локална база данни ще се провали с грешка. След това намерете и добавете къмРеференции сборкаSQLitePCL.Ext.dll. По някаква причина самият той не винаги се инсталира от NuGet.

microsoft

Заключение

Новите мобилни услуги на Microsoft Azure и техния SDK имат много полезни нови функции за разработчиците на приложения. Една от тях е поддръжка за офлайн работа и синхронизиране на данни за приложения. Следвайки това ръководство, можете да настроите синхронизиране на данни за вашия телефон или Windows приложение, без да отделяте много време за сложни алгоритми и писане на библиотеки.