Действительно ли возможно создать Настольное приложение с помощью бэкенда Java и Web Technologies UI

Я хотел бы создать настольное приложение в Java и веб-технологиях. Главная причина для выбора Java состоит в том, что это свободно, с открытым исходным кодом, и следовательно наши инвестиции были бы минимальны, и мы сохраним много инвестиций относительно лицензирования затрат и т.д. Кроме того, главная причина для выбора веб-технологий состоит в том, потому что наши текущие программисты являются хорошо сведущими с веб-технологиями как HTML, CSS, Ajax, и у нас есть хороший опыт в создании удивительного UI в веб-технологиях.

Я дам Вам некоторое представление о программном обеспечении, которое мы хотели бы создать. Это было бы основанное на рабочем столе программное обеспечение, а именно, что-то как программное обеспечение ERP.

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

Я услышал, что реализация большого GUI является возможной, но трудной в Java. Это может быть сделано, но сложно, тогда как довольно просто сделать то же в Visual Studio, продуктах Microsoft.

Я также проверил Adobe Air, Nokia QT, и т.д. но они все являются довольно дорогими для нас, и мы ищем браузер фронтенда, UI и бэкенд встроили сервер/базу данных с помощью JAVA-технологий.

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

Так в основном настольное приложение имело бы встроенный браузер (Mozilla или некоторый браузер Java, который может упакованный с программным обеспечением), но конечный пользователь никогда не должен понимать это.

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

Я действительно изучал некоторое программное обеспечение как PulpTunes & Zimbra, которое приехало подобные строки, но они, кажется, соединяются с Интернетом для отображения данных. Наше программное обеспечение было бы полностью офлайновым настольным приложением.

8
задан starblue 4 August 2010 в 06:59
поделиться

5 ответов

Вы действительно правы, java отлично подходит, если вы разрабатываете проект самостоятельно.

Кодирование на стороне сервера может выполняться с использованием Spring (для MVC, базы данных и т. Д. ... Очень богатая и легкая структура, простая в изучении и понимании) с гибернацией (структура ORM для обработки базы данных, предоставляет диалекты для любого сервера базы данных).

Для пользовательского интерфейса вы можете использовать Spring MVC ИЛИ JSF ИЛИ GWT ИЛИ javaFX. JavaFX обеспечивает загрузку JNLP, которая работает на java и без браузера. проверьте ссылку, чтобы увидеть больше примеров JavaFX. http://javafx.com/samples/

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

Для Ajax у вас будут библиотеки, поддерживающие простой ajax. такие как DWR (Easy Ajax, JS to JAVA) и многие другие библиотеки JS, такие как yahoo, jQuery и т. д., могут быть использованы.

надеюсь, что это поможет.

0
ответ дан 6 December 2019 в 00:54
поделиться

Во-первых, это возможно. Если вам нужен пример, посмотрите http://wiki.eclipse.org/Hudson-ci/Meet_Hudson. Вы можете получить базовую архитектуру, если покопаетесь в их коде. Он не использует никаких встроенных db. Вы говорите, что ваше приложение всегда будет работать в автономном режиме, в таком случае я советую вам перейти на чисто настольное приложение, используя такие технологии, как разработка плагинов Eclipse.

Если вы уже приняли решение, вот некоторые моменты, которые могут помочь вам, основываясь на моем опыте работы с подобными приложениями,

  1. Хотя ваше приложение находится в автономном режиме (я предполагаю, что вашему приложению не нужно подключаться к серверу для любого случая использования, но пользовательская машина может иметь доступ в интернет), вам нужно доставлять изменения (например, изменения в html или jsp странице) / исправления ошибок прозрачно для конечного пользователя. Для этого хорошо подходит JNLP/Java web start.

  2. Если вы выбираете способ установки JNLP, то программа запуска должна позаботиться об установке встроенной базы данных и портов на машине конечного пользователя (это большая проблема, чем кажется).

  3. Также, если вы запускаете сервер (в моем случае Jetty) через JNLP, вы столкнетесь с ошибками загрузки класса из-за проблем с разрешениями. Будьте готовы копаться в коде сервера. Я делал это давно и сейчас у меня нет кода, чтобы точно указать на проблемы.

  4. Показывайте индикаторы выполнения в процессе установки и во время запуска приложения. Развертывание вашей войны занимает некоторое время, и пользователю нужно знать, что запуск приложения продолжается. В итоге вам придется написать несколько пользовательских интерфейсов.

  5. Автоматически запускать URL приложения в браузере по умолчанию в системе пользователя после запуска приложения. Вам не нужен встроенный браузер.Проверьте http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/desktop_api/.

  6. Я использовал MySql в качестве встроенной базы данных. Проверьте Embedding mysql in java desktop application. У меня это сработало, я не столкнулся ни с какими проблемами.
2
ответ дан 6 December 2019 в 00:54
поделиться

Я не получил встроенную часть «причал / кот». Вы хотите, чтобы настольное приложение запускало встроенный сервер, который общается с базой данных? Итак, каждое настольное приложение будет открывать соединение с БД?

Почему бы не иметь настольного приложения Java, которое отправляет HTTP-запросы на сервер JavaEE, который подключается к БД и обрабатывает запросы? По сути, клиент Java (который может быть настолько богат, насколько это могут сделать ваши разработчики) заменяет браузер. Это дает вам большую масштабируемость и т. Д.

У нас есть аналогичный (хотя и гораздо более сложный) продукт, разработанный с использованием - Swing + Apache Commons HttpClient на рабочем столе. Это отправляет серверу HTTP-запрос POST с сериализованными двоичными данными. - Сервлет диспетчера, работающий в веб-контейнере, воссоздает объект Java на сервере и выполняет запрос.

0
ответ дан 6 December 2019 в 00:54
поделиться

ИМХО вся идея запускать веб-сервер только для того, чтобы создать десктопное приложение с js, ajax и прочим - ужасна... Я слышал о Apple-creator Titanium, который позволяет создавать кроссплатформенные приложения, используя веб-технологии. Есть еще несколько подобных программ.

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

0
ответ дан 6 December 2019 в 00:54
поделиться

Я, наверное, обидусь за это, но для этого я предлагаю JavaFX. Мы успешно внедрили JavaFX-приложение для внутреннего использования в более крупной компании. Плюсы в том, что программное обеспечение «контролируется» на стороне сервера (таким образом, ни у кого не будет «старой» версии). Усилия по установке минимальны (Java Web Start исправляет это за вас, он даже запускает минимальную установку JRE, если таковой не существует) и, наконец, что не менее важно, JavaFX можно запускать в браузере и как обычное настольное приложение без необходимости изменения код.

Adobe FLEX - еще один претендент, но в нем отсутствует функция «Веб-запуск», и он не так гибок, когда дело касается простой миграции между браузером и рабочим столом.

В любом случае, JavaFX не совсем полнофункциональный, как FLEX, но версию 1.3 можно считать готовой к битве, и вы можете создавать интересные вещи с помощью бесплатных плагинов JavaFX для Adobe Creative Suite (если ваше приложение будет содержать любую графику, то есть).

0
ответ дан 6 December 2019 в 00:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: