Кто-нибудь создал веб-приложения, которые могут работать полностью автономно?

Я создаю приложение, которое авторы (надеюсь) использовали бы, чтобы помочь им, а... авторские вещи.

Подумайте об этом как о вики, но только для одного человека, но кулер. Я хочу сделать его максимально доступным для моих (потенциальных) обожающих масс, и поэтому я думаю о том, чтобы сделать его веб-приложением.

Конечно, этого не должно быть, нет интеграции с другими сайтами, нет социальных функций. Это включает в себя ввод информации в формы, однако, поэтому для быстрого построения веб, вероятно, будет лучшим.

Однако, я действительно не хочу его размещать самостоятельно. Я не мог себе этого позволить, но в основном люди, которые используют это, могут не захотеть, чтобы их данные хранились в другом месте. Это личная информация о том, что они пишут, и я не ожидал, что они мне доверяют, и поэтому я думаю о том, чтобы сделать это приложение с толстым клиентом.

И в этом заключается проблема, как сделать приложение, которое в основном сосредоточено на записи данных формы, доступной для потенциальных пользователей (веб-приложений yay), но также и в автономном режиме, поэтому они знают, что они полностью контролируют свои данные (yay thick-client приложения).

Я вижу следующие решения:

  • Создайте его как приложение с толстым клиентом Java и запустите версию вырезания в сети как апплет, с которым люди могут играть, прежде чем загружать все.
  • Создайте его как приложение Flex для онлайн-приложений и приложение Air для офлайн-скриптов (в том числе исходные разные скрипты сборки).
  • Создайте его как стандартное веб-приложение (HTML, JS и т.д.), но имеете загружаемую версию, которая каким-то образом запускает сайт полностью на своем компьютере. Это не коснется сети вообще.

Игнорируя 1 и 2 (я изучаю их отдельно), я думаю, что 3 будет включать:

  • Упаковывать установку, содержащую крошечный веб-сервер, на котором есть мой код, готовый к запуску.
  • Перенос базы данных с чего-то вроде mySQL на что-то вроде SQLite.
  • Создайте какое-то приложение для удобства просмотра, которое запустило сервер и открыло ваш браузер в нужном месте, возможно, используя что-то вроде Prism, чтобы скрыть всю вещь броузера.

Итак, вы когда-нибудь делали что-то подобное раньше?

Если да, какие проблемы вы столкнулись?

Наконец, есть другое решение, о котором я не думал? '

(также, Joyent Slingshot было предложение по другому вопросу, но это RoR (с которым у меня нет опыта), и я 99% уверен, что он не запускается под Linux, поэтому он не подходит для меня.)

Ответ 1

Существует дополнительная опция, которая заключается в использовании новых функций автономного приложения HTML5, а именно: кэш приложений, клиентские базы данных и локальные хранилища.

В настоящее время я считаю, что Safari является единственным браузером доставки для поддержки любого из них, и я считаю, что он поддерживает только базы данных на стороне клиента и локальные части хранилища. webkit nightlies поддерживают все эти функции, ночные очки firefox поддерживают многие из них (возможно, все сейчас?)

[Изменить (olliej): Исправление, Firefox 3 поддерживает кэш приложения, но, увы, не клиентская DB]

Ответ 2

Думаю, вам следует искать tiddlywiki для вдохновения.

Это вики, написанные на JavaScript, полностью автономные в одном html файле. Вы загружаете его в свой браузер в виде файла:///URL, поэтому нет необходимости в сервере.

Я использую его как личную wiki для записи заметок по различным темам.

Ответ 3

Google Gears используется, чтобы предлагать некоторые из приложений Google в автономном режиме (Google Reader, Gmail, Документы и т.д.).

Что такое Google Gears?

Gears - это расширение браузера с открытым исходным кодом, которое позволяет разработчикам создавать веб-приложения, которые могут работать в автономном режиме. Gears предоставляет три основные функции:

  • Локальный сервер, чтобы кэшировать и обслуживать ресурсы приложений (HTML, JavaScript, изображения и т.д.) Без необходимо связаться с сервером.
  • База данных для хранения и доступа к данным из браузера
  • Пул рабочих потоков, чтобы сделать веб-приложения более отзывчивый

выполняя дорогостоящие операции в фон

В настоящее время Gears является разработчиком раннего доступа. В настоящее время он еще не предназначен для использования настоящими пользователями в производственных приложениях.

Если разработчик заинтересован в использовании Gears с вашим приложением, перейдите на страницу Страница разработчика Gears.

Если вы хотите установить Gears на свой компьютер, перейдите на главную страницу Gears. Обратите внимание, однако, что Gears еще не предназначена для общего использования.

Но поскольку вы читаете его еще на ранних стадиях.

Ответ 4

Мы используем что-то похожее на ваш третий вариант тестирования наших сайтов на местном уровне. Работает отлично.

Наш упакованный веб-сервер не достаточно мал, чтобы выполнить то, что вам нужно, но опять же мы не пытались его сохранить. Если вы можете упаковать свой веб-серверный код в достаточно маленький пакет, я не понимаю, почему этот подход не будет работать.

Ответ 5

Я думаю, что AIR - это путь.

Ответ 7

Некоторые указатели для решения 3:

  • для части GUI, ExtJS кажется действительно приятным.

  • для части хранения есть хорошая библиотека javascript, которая абстрагирует различные бэкэнды хранилища: PersistJS.

Поддерживаемые серверы для PersistJS:

  • flash: постоянное хранилище Flash 8.
  • gears: постоянное хранилище на основе Google Gears.
  • localstorage: хранилище черновиков HTML5.
  • whatwg_db: хранилище базы данных HTML5.
  • globalstorage: хранилище черновиков HTML5 (старая спецификация).
  • то есть: поведение пользовательских данных в Internet Explorer.
  • cookie: постоянное хранилище на основе файлов cookie.

Ответ 9

Вы можете сделать выделенный клиент с использованием Webkit или магистрали Firefox. Некоторые игры используют это решение для пользовательского интерфейса, например.

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

Или вы можете использовать клиентское приложение Java для отображения веб-страницы

Или GoogleGears, но тот же (почти) как Flex + Air. поэтому выберите Flex + Air, если это то, что вы знакомы с

Ответ 10

Вы не указали язык, но несколько лет назад я смотрел Karigell. Это веб-инфраструктура Python, похожая на Django или TurboGears, но у нее нет накладных расходов на эти рамки.

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

Кроме того, Python хорошо работает с Linux.:)

Ответ 11

Если вы сделали приложение, то обычное веб-приложение сильно зависит от клиентских технологий (используя DHTML и т.д. Google Gears для хранения данные в автономном режиме, как уже было предложено), поэтому после его открытия было не так много взаимодействия с сервером, возможно, вы могли бы разместить эту вещь на основной учетной записи с общим хостингом, которая не стоила бы так дорого. Это может быть вашей простой отправной точкой, так как вам не придется беспокоиться обо всех проблемах с настольными приложениями, таких как совместимость с различными операционными системами, упаковка установки и т.д., Но вам также не нужны огромные серверные ресурсы.

Ответ 12

Вы можете использовать HTML, JS и все остальное в Adobe AIR, и у вас также будет много вариантов сохранения данных локально.

Ответ 13

в java-мире вы можете использовать причал для сервера, реализовать веб-приложение, используя свою любимую фреймворк, и использовать hsqldb в качестве базы данных - он полностью живет в вашем контейнере (причал). вы можете развернуть приложение предварительного просмотра в Интернете и загрузить загружаемую автономную версию.

Ответ 14

Там есть портативное распространение Apache/MySQL/PHP (для размещения на USB-ключах):

http://portableapps.com/apps/development/xampp

Это должно быть легко адаптировано к вашим потребностям.

Ответ 15

Вы также можете рассмотреть использование XULRunner или Prism

Это технология с открытым исходным кодом, на которой построены FireFox, Thunderbird и Joost, и позволяет вам разрабатывать приложения в XML и javascript по существу против того же богатого api, что и у FireFox. И, конечно, это тоже кросс-платформа, поэтому она будет работать на Mac/Linux/Windows...

Проверьте здесь дополнительную информацию: https://developer.mozilla.org/en/XULRunner

Ответ 16

Я тоже думал о том, чтобы делать что-то подобное. Мой план состоял в том, чтобы написать приложение, используя django, и написать script, который запускает сервер тестирования django и открывает браузер по умолчанию на указанном порту. Мой план состоял в использовании SQLite...

Кроме того, было бы неплохо упаковать его в один пакет, поэтому пользователи без установленного django могут запускать приложение без каких-либо зависимостей...

Ответ 17

Мое предложение, как вы указали выше, - использовать систему Wiki для решения вашей проблемы. Теперь может возникнуть вопрос: какой из них?

Вы можете использовать Trac, это очень просто, и вы можете настроить его графический интерфейс. Но, если вы предпочитаете что-то более продвинутое, используйте MoinMoin. Я использовал его в течение многих лет, а IMO - очень хорошая и сильная вики-система.

Depiste wiki, который вы выберете, забудьте написать свое веб-приложение с нуля. По вашему мнению, лучший подход заключается в том, чтобы выбрать что-то, что работает, и настроить/изменить его в соответствии с вашими потребностями.