Search
Write a publication
Pull to refresh
1
0
Дмитрий @Dimkadv2

Программист c#

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

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

Если будут дополнительные вопросы, буду рад ответить.
Может у кого то есть свои предложения
Этот способ не всегда корректен, если база, например, храниться у пользователя. Мы написали API, к которому пользователь подключается при запуске программы и сам забирает обновление! В вашем же случае, если изменения касаются и приложения и базы, этот способ категорически неверен! Например, вы убрали поля из представления, или из процедуры и клиент будет получать ошибки!
Так же visual studio подходит для сравнения баз (SSDT)
Со скриншотами беда, с телефона вообще не разобрать
Долго смеялся)) жаль плюсануть не могу
Разве его не заблокировали в России?

Information

Rating
Does not participate
Location
Краснодар, Краснодарский край, Россия
Date of birth
Registered
Activity