Pull to refresh

Comments 6

Этот способ не всегда корректен, если база, например, храниться у пользователя. Мы написали API, к которому пользователь подключается при запуске программы и сам забирает обновление! В вашем же случае, если изменения касаются и приложения и базы, этот способ категорически неверен! Например, вы убрали поля из представления, или из процедуры и клиент будет получать ошибки!
Да, согласен
Будет ли у Вас возможность описать данный подход подробнее здесь или отдельной публикацией?
Доберусь до компьютера опишу здесь ответом!
В общем есть api, которая содержит список клиентов, и таблицу со списком и версией обновлений.
Так же клиент хранит у себя хранит версию последнего обновления, которое он установил.
Когда клиент запускает приложение, и подключается к базе, то он автоматически отправляет свою версию к api, и она проверяет, нужны ли обновления клиенту, и выдает их при необходимости.
Далее клиент устанавливает и уведомляет о результатах обновления.
Данный подход дал нам несколько плюсов:
1) Мы видим статистику обновлений по клиентам и, в случае ошибок, мы имеем возможность быстро отреагировать.
2) Обновления устанавливаются на базу, доступ к которой мы не имеем
3) Так как у нас есть список клиентов, мы расширили функционал, настроили обмен с 1С, и автоматически формируем необходимые документы(например, акты), сделали возможность выполнять запросы, которые не просто обновлятют структуру, а так же выполняют запросы к базе и возвращают результат в виде таблицы, например статистика по базе
4) Если база поднимается с бекапа (например, пользователь удалил какие-нибудь данные и т.д.), то при разворачивании бекапа, при запуске приложения автоматически установятся все необходимые для базы обновления (соответственно, есть функционал, который проверяет, восстановлена эта база для клиента или для тестов, или переехала на другой сервер, соответственно если база тестовая, то статистика (необходимая для отчетности) по ней не собирается, просто устанавливаются обвновления)
Получилось, а-ля, обновление по требованию
5) так же из этого приложения мы можем принудительно установить обновления на базы клиентов, к которым мы имеем доступ, и предупредить остальных клиентов о том, что им необходимо перезапуститься (но это индивидуальный случай, т.к. клиентов, дотуп к которым мы не имеем, очень мало, но тем не менее они есть)

и соответственно пока 1 минус: для установки экстренного обновления клиенту необходимо перезапустить приложение, но мы так и не придумали, как это избежать, чтобы не нагружать сеть (есть клиенты, у которых интернет работает через USB-модем).

Если будут дополнительные вопросы, буду рад ответить.
Может у кого то есть свои предложения
По п.3 можно детальнее, что за статистика?
Если не секрет для какой системы Вы используете СУБД-NAV, CRM, 1C или что-то другое?
У нас проект по расчёту стоимости коммунальных услуг, данные могут быть разными, к примеру общая площадь дома. Проект свой, акты через 1С
Sign up to leave a comment.

Articles