Можно ли подключить форму xamarin к онлайн-базе данных? - PullRequest
0 голосов
/ 06 февраля 2020

У меня есть форма xamarin, и я хочу подключить ее к онлайн-базе данных (postgresql) (digitalocean)

string ConnectionString = "Server=******; Port=5432;User Id=postgres; Password=******; Database=Accounting";

У вас есть документация (пошаговая) для развертывания? (xamarin.form (IOS и android)) база данных postgresql

1 Ответ

0 голосов
/ 06 февраля 2020

Библиотека Npg sql совместима с. NET Core 3.0,. NET Standard 2.0 / 2.1 и. NET Framework 4.6.1, следовательно не должно быть проблем с подключением к базе данных Postgres из вашего приложения - технически. Npg sql реализует шаблон ADO. NET. Например, чтобы читать пользователей из таблицы users (* очень базовый c пример), вы можете сделать следующее:

using (var connection = new NpgsqlConnection(connectionString))
{
    using (var command = connection.CreateCommand())
    {
        command.CommandText = "SELECT id,name FROM users";
        using (var reader = command.ExecuteReader())
        {
            while (reader.Read())
            {
                var id = (long)reader["id"];
                var name = (string)reader["name"];

                // do something with the values
            }
        }
    }

}

В любом случае, как указано в комментариях, это плохая практика и ее следует избегать . Ваша база данных будет доступна публично, и любой, кто сможет получить пароль, сможет с ней связываться. Я не проверял это, но я предполагаю, что не должно быть слишком сложно восстановить пароль из скомпилированного приложения (по крайней мере, на Android), что было бы серьезной проблемой безопасности.

Могут быть созвездия, в которых последствия будут несколько менее серьезными, но я все равно буду этого избегать.

Вы действительно должны создать веб-сервис (не обязательно должен быть сервисом REST) ​​для доступа к вашей базе данных. Эта служба инкапсулирует весь доступ к базе данных и позволяет при необходимости детализированной авторизации получать доступ к ресурсам (например, с ролями, которые имеют полный доступ или доступ только для чтения).

...