Как я могу подключить Azure MySQL сервер с моим приложением Xamarin форм? - PullRequest
0 голосов
/ 16 января 2019

Проблема:
У меня есть старое приложение формы C # Windows, которое использует Microsoft Azure (MySQL) в качестве сервера базы данных, я хочу создать приложение для Android (используя формы Xamarin), которое извлекает данные с того же сервера MySQL (Azure), который используется приложением C # WFA .

Вопросы:
Xamarin Forms предоставляет такой способ сделать это?

Есть ли лучший подход, который я могу использовать (как новичок) для совместного использования одной и той же базы данных с двумя разными приложениями на двух разных платформах (настольный компьютер и мобильный телефон в моем случае)?

заранее спасибо

1 Ответ

0 голосов
/ 16 января 2019

Прежде всего, добро пожаловать в SO!

Предоставляет ли Xamarin Forms такой способ сделать это?

Простой ответ (к сожалению): Нет.

Если вы хотите повторно использовать ту же базу данных, которая хранится в Azure, с Xamarin Forms, вы должны предоставить через Интернет API, который взаимодействует с вашей базой данных Azure. Затем ваше приложение Xamarin Forms подключится к вашему API с помощью класса HttpClient для публикации / извлечения данных. Xamarin формы поддерживают локально ядро ​​базы данных SQLite, вот и все. Если необходимо, больше информации о локальной БД с формами Xamarin здесь .

есть ли лучший подход, который я могу использовать (как новичок), чтобы поделиться одна и та же база данных с двумя разными приложениями на двух разных платформах ( Настольный и мобильный телефон в моем случае)?

Лучшим подходом было бы однозначно представить веб-API, связанный с вашей базой данных Azure. В будущем ваше настольное И мобильное приложение (и любое другое приложение) будет называть вас методами ApiController, что означает, что это будет общий код для всех ваших приложений.

Ниже приведен общий пример метода вызова API из форм Xamarin:

public static async Task<TResult> GetData<TResult>(string apiTarget)
{
      using (var client = new HttpClient())
      {
           //setup client
           client.BaseAddress = new Uri(_API_BASE_URI);
           client.MaxResponseContentBufferSize = 9999999; 
           client.DefaultRequestHeaders.Accept.Clear();
           client.DefaultRequestHeaders.Add("Authorization", "Bearer " + _TOKEN);
           TResult _Result = default(TResult);
           //make request
           HttpResponseMessage response = await client.GetAsync(apiTarget).ConfigureAwait(false);
           if (response.IsSuccessStatusCode)
           {
               var content = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

               _Result = (TResult)JsonConvert.DeserializeObject<TResult>(content);
           }
           return _Result;
      }
}

Удачного кодирования!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...