2008-10-06 5 views
11

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

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

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

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

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

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

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

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

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

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

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

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

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

ответ

4

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

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

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

2

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

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

-1

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

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

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

+0

Я не сказал, что это вики-система, я сказал, что это * как * вики-система, и я действительно имел в виду только дух (так как в ней достигается одна и та же цель). Я сформулировал это так, потому что вики как можно ближе к тому, что я пытаюсь достичь, и я не хочу идти на поводу объяснения моего продукта :-) – SCdF 2008-10-06 08:36:07

5

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

Что такое Google Gears?

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

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

путем проведения дорогостоящих операций в фон

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

Если вы разработчик, заинтересованный в использовании Gears с вашим приложением, посетите Gears Developer Page.

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

Но, как вы читаете, оно все еще находится на ранней стадии.

+0

Google Gears - это просто попытка Google на проприетарное расширение конкурирующего SilverLight и Flex, html5 обеспечивает большую часть той же функциональности, что и без блокировки поставщика, в которой мы пытались сбежать в течение многих лет. Да, я понимаю, что не все браузеры поддерживают html5 еще, но они будут (за исключением, может быть, IE) – olliej 2008-10-06 07:43:12

+0

. Некоторая охота указывает, что Safari 3.1 поддерживает базы данных на стороне клиента (хотя хром, по-видимому, отключил ее в пользу передач), Firefox поддерживает Application Cache - Я полагаю, что ночные посты каждой поддержки все. – olliej 2008-10-06 08:29:20

0

Кроме того, я думаю, что moin moin wiki имеет desktop version, который включает в себя собственный веб-сервер. Этот материал прост в python, с batteries are included.

Возможно, вам захочется проверить, как они это делают?

0

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

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

Или вы могли бы использовать клиентское приложение Java, чтобы отобразить веб-страницу

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

0

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

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

Плюс, Python хорошо работает с Linux. :)

0

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

0

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

6

Я думаю, вы должны посмотреть на tiddlywiki для вдохновения.

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

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

0

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

0

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

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

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

0

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

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

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

0

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

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

1

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

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

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

Поддерживаемые бэкэнды для PersistJS:

  1. вспышки: Вспышка 8 постоянного хранения.
  2. Передачи: постоянное хранилище на базе Google Gears.
  3. localstorage: хранилище HTML5.
  4. whatwg_db: Хранилище базы данных HTML5.
  5. globalstorage: HTML5 сквозное хранилище (старая спецификация).
  6. ie: поведение пользовательских данных в Internet Explorer.
  7. cookie: постоянное хранилище на основе файлов cookie.