Новый участник
Сообщения: 8
Благодарности: 0
|
Профиль
|
Отправить PM
| Цитировать
Про службу обновления - понятно! Направление для изучения ясно.
Я имел в виду, следующее: сейчас реализован "тонкий" клиент, то есть, вся бизнес-логика, в том числе полное разграничение прав пользователей реализовано на сервере, то есть на сервере опубликованы web-сервисы, доступ к которым реализован через http (SOAP). Сторонние dll - это реализация модуля сканирование, расчёт хеша для пароля. Всё. Хранится ещё пара doc-файлов, но их можно убрать.
Что ещё использует программа? Свою папку в Application Data, которую создаёт при старте - в ней временно сохраняются скаченные файлы. Что-то типа хеша для временных файлов.
То есть, практически всё описанное с лёгкостью реализуемо в веб-версии клиента. Некоторые части уже давно выполнены в виде веб-интерфейса: пользователь заходит на сайт, авторизуется и наблюдает оперирует уже в браузере со своими данными.
Клиента под windows сделали в качестве "прототипа", т.к. скорость разработки в RAD для нас значительно выше, да и наработок много. Но как обычное - всё временное затягивается на постоянное. К тому же, все годы работали только под "админскими" правами на машине, но я даже не могу себе представить, в каком месте программы буду обращаться к групповым политикам и для чего мне это вообще может понадобиться.
Удручает то, что не знаю пока о проблемах, с которыми могу столкнуться. Учитывая и то, что админы нашего не маленького предприятия "только учатся". И вот только только начинают "наводить порядок". А обновления у меня сейчас идут по десять-двадцать раз на месяц.
Уже подумываю, а не сделать ли, грешным делом, следующий финт ушами:
1. создать инсталлятор, который будет ставить "программу", состоящую из одного-единственного файла: MyProgramLauncher.exe - который никогда не будет заменяться.
2. Этот файл будет являться неким "обновлятором" - после запуска будет ломиться в Application Data, создавать там свою папку, если таковой ещё не существует, затем копировать с сервера обновлений в него файл MyProgram.exe, рядом с ним раскладывать все используемые dll-библиотеки и прочие файлы. Рядом же будет находиться и "рабочая папка программы"
3. При повторных запусках, конечно же, если папка в Application data уже есть, и версия MyProgram.exe, а так же остальных файлов, не поменялась - то он ничего копировать не будет
4. После копирования процесс "Обновлятора" MyProgramLauncher.exe запускает процесс MyProgram.exe, а сам самоудаляется.
5. Сам процесс MyProgram.exe по схожей логике периодически проверяет наличие обновлений, и, в случае необходимости предупреждает пользователя и запускает обновлятор.
Вроде как это решение решает все наши проблемы - без вмешательства "админов" при каждом запуске, хоть каждые пять минут можно проверять наличие версий, и в случае их наличия - получать полное обновление.
Вопрос в следующем - какие "грабли" есть у такого решения, которые я, в силу неопытности в области администрирования, не вижу?
|