Развертывание Rails в качестве настольного приложения

Я только начал разработку RoR в течение двух недель, пока это довольно удивительный язык программирования. Меня это так впечатлило, что я начинаю думать о смене языка программирования моего клиентского проекта с PHP на RoR. Но я хочу знать, возможно ли сделать так, чтобы веб-приложение RoR выглядело как нативное приложение при использовании его на локальном компьютере. Под термином Нативное приложение я имею в виду...

  1. Пользователю не нужно запускать script/server или rails server каждый раз, когда он запускает свой компьютер.
  2. Либо доступ к нему через веб-браузер, либо что-то еще в порядке.
  3. Может работать с Windows 7 или Windows XP

Другие рекомендации приветствуются. (В том числе причина не использовать RoR для разработки локального приложения)


person Tar_Tw45    schedule 28.11.2011    source источник
comment
Спасибо всем за ваш комментарий. Я действительно ценю :)   -  person Tar_Tw45    schedule 29.11.2011


Ответы (6)


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

По крайней мере, вы могли бы рассмотреть возможность использования бесплатных хостов, таких как heroku. http://your-project-name.heroku.com предоставит вам базу данных размером 5 МБ и 1 рабочий. Это бесплатно, избавит вас от многих проблем и облегчит развертывание новой версии для ваших клиентов.

Просто попросите их поставить закладку на рабочий стол, если они хотят дважды щелкнуть, чтобы открыть приложение.

person Dominic Goulet    schedule 28.11.2011
comment
Спасибо, я тоже думаю о Heroku. Но единственная проблема, которая меня беспокоит, это то, что ему приходится ждать несколько секунд каждый раз, когда он вводит новый заказ, который у него есть несколько заказов каждый день. Одна хорошая вещь в веб-приложении — к нему можно получить доступ где угодно. Я могу где-нибудь арендовать для него сервер, зарегистрировать доменное имя, а затем разместить приложение. Я надеюсь, что он может быть доволен этим и забыть о проблеме задержки в несколько секунд. Также я мог бы сказать ему, что если он скоро захочет создать интерфейс для своих клиентов, веб-приложение будет для него идеальным вариантом. Хотя пока ему нужна только CRM-система. - person Tar_Tw45; 29.11.2011
comment
Использование веб-разработки для создания нативных приложений имеет множество преимуществ, и это не так уж и абсурдно. Особенно, если учесть все гибридные приложения. Это простой способ сделать что-то, не изучая новые технологии, и он кроссплатформенный. - person CleoR; 16.01.2016

Лично я не думаю, что есть что-то смешное в желании развернуть приложение Rails в качестве настольного приложения, но это, безусловно, не самая простая вещь. Вот список того, что вам понадобится:

  • скомпилированный дистрибутивный интерпретатор ruby
  • распространяемая база данных
  • сценарий для загрузки всего этого (желательно, чтобы он запускался по щелчку значка или при запуске системы)
  • установщик

необязательно:

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

Вот учебник по развертыванию приложения rails в качестве настольного приложения, хотя и для Debian, это должно направить вас в правильном направлении. Но лучшим выбором для быстрого приложения с графическим интерфейсом на ruby ​​является обувь.

person greggreg    schedule 28.11.2011
comment
Серверные веб-приложения и настольные приложения работают по-разному. Может быть приятно разрабатывать оба из одной и той же кодовой базы, но развертывание одного как другого — отстой, потому что на самом деле не используются преимущества специальных функций платформы. - person Marnen Laibow-Koser; 28.11.2011
comment
@MarnenLaibow-Koser Полностью согласен. Но я не думаю, что это смешно, и для того, чтобы это сделать, нужно многому научиться. - person greggreg; 29.11.2011
comment
Грег: Это нелепо, потому что приложение ставится в такое положение, в котором оно не будет работать должным образом. Написать приложение, которое будет работать там, на самом деле не так уж и сложно. Есть чему поучиться, но в целом идея бесполезна. - person Marnen Laibow-Koser; 29.11.2011

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

так что да, можно объединить ваше приложение в «родное приложение», но я боюсь, что оно будет чрезвычайно хрупким, так как слишком много частей, которые должны сочетаться друг с другом: сам рубин, используемая база данных, рельсы и все остальное драгоценные камни. большой шанс, что у вас будет гем, который нужно скомпилировать, и тогда у вас будут проблемы.

Итог: оно того не стоит, либо размещайте свое приложение, либо выбирайте лучшее решение для разработки чего-то, что работает только локально.

person keymone    schedule 28.11.2011
comment
Спасибо за ваш комментарий. Я вижу всю картину более четко. :) - person Tar_Tw45; 29.11.2011

Возможно, я ошибаюсь, но вы, кажется, упускаете из виду тот факт, что RoR не является языком программирования. Ruby — это язык программирования, а RoR — это среда веб-разработки. В любом случае, если вы хотите разрабатывать настольные приложения, вы можете использовать Ruby с такой инфраструктурой, как Bowline (чтобы сохранить дух MVC).

person tomferon    schedule 28.11.2011

Если вам нужно веб-приложение, создайте веб-приложение. Если вы хотите создать настольное приложение, попробуйте Monkeybars или Appcelerator.

person Marnen Laibow-Koser    schedule 28.11.2011

Довольно поздно для моего ответа, но в любом случае у меня была та же проблема, и я использовал драгоценный камень для создания исполняемого файла для Windows. Также можно сгенерировать сетап для установки программы в реестр.

По-прежнему необходимо, чтобы сервер был запущен, но пользователь должен просто щелкнуть исполняемую программу; Открывается консоль и даются какие-то инструкции типа «после запуска сервера откройте браузер и перейдите на localhost:3000; Ctrl + C, чтобы выйти, когда вы закончите.

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

ocra не очень легко установить, но в конечном итоге он работает нормально.

person Lepage Jean Claude    schedule 27.01.2013