Это довольно стандартная практика для самообновления настольных приложений. На Mac каждая не-Apple программа, которая использует Sparkle в моей книге, - это мгновенный выигрыш. Для разработчиков Windows это уже обсуждалось подробно . Я еще не нашел информацию о самообновляющихся веб-приложениях, и надеюсь, вы сможете помочь.
Я создаю веб-приложение, которое должно быть установлено как Wordpress или Drupal - распакуйте его в каталог, перейдите на страницу установки, и оно готово к работе. Чтобы обеспечить широкую совместимость с сервером, меня попросили использовать PHP и MySQL - это ** MP? В любом случае, он должен быть широко кроссплатформенным. Для контекста, это в основном унифицированное приложение обмена сообщениями для малого бизнеса. Это не другая платформа CMS, подумайте, веб-почта.
Я хочу знать о самообновляющихся веб-приложениях. Прежде всего, (1) это плохая идея? Начиная с Wordpress 2.7, автоматическое обновление представляет собой единственную кнопку, что кажется простым, и все же я могу представить себе множество способов, как это может пойти ужасно, ужасно неправильно. Кроме того, разве идея о том, что веб-файлы доступны для записи веб-процессом, не является дырой в безопасности?
(2) Стоит ли время разработки? Вероятно, в мире миллионы установок WP, поэтому, вероятно, команде WP понадобилось время, чтобы упростить процесс и сэкономить миллионы человеко-часов по всему миру. Я могу только представить несколько тысяч установок моего программного обеспечения - стоит ли самообновление здания, потраченное на затраты времени, или я могу предположить, что пользователи, достаточно опытные для загрузки и установки веб-программного обеспечения, могут в первую очередь пройти контрольный список обновления? *
Если это не катастрофа безопасности или трата времени, то (3) я ищу предложения от любого, кто делал это раньше. Вы храните таблицу версий в своей базе данных? Как вы управляете обновлениями БД? Какой метод вы используете для отката частичного обновления в контексте самообновляющегося веб-приложения? Разве использование слоя ORM облегчало или усложняло? Вы держите дельту изменений в версии или вы просто выбрасываете все это каждый раз?
Я ценю ваши мысли по этому поводу.