Выбор платформы для разработки настольных приложений

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

Мне нужно разработать базовое настольное приложение с функциональностью CRUD с базой данных Sqlite или MySQL. Раньше я работал с Java (Swing), но Swing JSR был отозван, а Netbeans отказался от Swing Application Framework .

Мне нужно изучить новую технологию разработки настольных приложений (желательно независимо от платформы). До сих пор я изучал следующие технологии.

Titanium Desktop (теперь называется TideSDK): это хорошо, но некоторые расширенные функции PHP не поддерживаются и полны ошибок.

QT: Он выглядит многообещающе и имеет отличные функции, но я не смог найти ни одной книги по последней версии QT 5. Всем книгам по QT 4-5 лет, и они написаны для QT 4.

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

Спасибо за вашу помощь и извините, если этот вопрос слишком общий.

Добро пожаловать на Stack Exchange рекомендаций по программному обеспечению! Хотя ваше описание содержит несколько критериев, необходимых для рекомендации подходящего программного обеспечения, в нем есть некоторые проблемы с форматированием, чтобы они четко выделялись. Пожалуйста, взгляните на Что требуется, чтобы вопрос содержал «достаточно информации»? Затем, пожалуйста, отредактируйте свой вопрос и посмотрите, сможете ли вы включить некоторые из этих улучшений. Это значительно повысит ваши шансы на хорошие ответы!
QT, наверное, хорош, GTK тоже кроссплатформенный.
@Linuxios Согласен, это хорошо. Но проблема в отсутствии книг. Онлайн-документация хороша и показывает подробную информацию о каждом классе, но не показывает, как соединить все эти классы для построения системы. Для шоу мне, вероятно, понадобится книга. Всем книгам, которые я нашел до сих пор, 4-5 лет, и они предназначены для QT 4, поэтому устарели.
Не могли бы вы подробно рассказать, что не так с Java/Swing?
@NicolasRaoul Java отказался от этого проекта, и он больше не поддерживается. Более подробную информацию вы можете найти на их сайте.
Вам стоит взглянуть на Электрон. электрон.атом.ио

Ответы (4)

Новая тенденция заключается в использовании веб-технологий (фреймворков HTML5/javascript) для создания настольных приложений. Взгляните на Chromium Embedded Framework (CEF), который позволяет встроить движок Chromium в ваше настольное приложение. См. список приложений, использующих CEF , в Википедии. Доступны привязки для многих языков, таких как C, C++, Java, Python, C#, Delphi, Go lang.

Что касается Titanium Desktop и TideSDK, то они больше не разрабатываются. Последний коммит для TideSDK был год назад . И похоже, что этот проект за все время своего существования так и не вышел из бета-версии. Компания, стоящая за ним, работает над своим новым продуктом под названием TideKit . Но у вас нет гарантии, что от него не забросят, как от Titanium и TideSDK, или что он когда-нибудь выйдет из бета-версии.

Titanium и TideSDK позволяют разрабатывать на PHP, но это своего рода новая платформа, она работает по-другому, PHP похож на JavaScript на HTML. Если вы хотите разрабатывать настольные приложения на PHP так же, как вы разрабатываете веб-сайты, взгляните на проект PHP Desktop . Он включает внутренний веб-сервер, веб-браузер (IE или Chrome) и интерпретатор php. Рабочий процесс, к которому вы привыкли при создании веб-сайтов PHP, остается почти таким же, вы просто копируете скрипты в каталог www/. Вы не должны наткнуться на какие-либо новые ошибки, которых еще нет в PHP, также он поддерживает все функции PHP, обновление версии PHP так же просто, как копирование новых двоичных файлов в каталог php/. В настоящее время PHP Desktop поддерживается только в Windows, хотя есть планы для Linux и Mac.

Существует также проект Node-Webkit , который позволяет разрабатывать на Javascript с использованием Node.js. Он включает в себя движок Chromium, несмотря на свое название.

В последние дни появился фреймворк Atom Shell , разработанный Github. Он позволяет писать кроссплатформенные настольные приложения с использованием JavaScript, HTML и CSS. Он основан на node.js и Chromium и используется в редакторе Atom .

Раскрытие информации: я являюсь автором привязок CEF для языков Python и Go. Также автор PHP Desktop.

Вы также можете использовать C#/mono в сочетании с XWT (если ваш графический интерфейс не слишком сложен. Из личного опыта: как только вам понадобится DataGrid со столбцом ComboBox, держитесь подальше от него.)

https://github.com/mono/xwt

Краткое пояснение о XWT: вы программируете свой код на XWT lib. При развертывании приложения вам потребуется распространять вместе с ним библиотеку XWT.GTK, XWT.WPF или XWT.Cocoa.

XWT проверит, какая из этих 3 библиотек доступна, и (попробует) ее инициализировать.

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

Графического редактора нет, но с ним довольно легко работать, и он убирает этот (на мой взгляд) уродливый GTK.

Для подключения к базе данных я бы предложил LINQConnect в сочетании с EntityDeveloper от DevArt. Если вы не используете слишком много таблиц в базе данных, это бесплатно! Также вы можете подключиться практически к любой базе данных с очень небольшим объемом работы (по крайней мере, если вы капсулировали свой уровень базы данных).

Обновление Q2 2018

ну, 4 года спустя и произошли некоторые изменения. Замените XWT на Xamarin.Forms, так как он имеет или, скорее, будет иметь «оболочку» GTK2. Преимущество Xamarin в том, что он практически работает на всем. iOS, Android, Windows, Linux (после завершения работы над GTK 2), MacOS.

По поводу доступа к базе. Я не уверен, как я отношусь к LinqConnect. Для более крупных проектов отсутствуют некоторые функции. Я баловался с llblgen, но, кроме пробной лицензии, нет бесплатной версии. С другой стороны, после покупки лицензии можно получить доступ к их коду и даже вносить изменения. Тем не менее, у меня пока нет реального опыта в этом.

настольное приложение с функциональностью CRUD

Он идеально подходит для Delphi или его бесплатной (и с поддержкой Linux) альтернативы Lazarus .

У них есть специальные элементы управления формой ( Data Controls ), которые позволяют легко отображать и изменять данные базы данных.

В Википедии есть список независимых от платформы графических библиотек .

Некоторые из них достаточно современные и относительно популярные:

  • Xamarin.Forms с C# в качестве языка программирования по умолчанию. Я предполагаю, что вы знакомы с C#, основываясь на комментарии IIS.
  • OpenJFX (языки на основе Java и JVM)
  • Qt (С++)

Также есть Electron , которого пока нет в списке, но на него стоит взглянуть. Он использует технологии (JavaScript, HTML, CSS), обычно связанные с веб-приложениями для настольных компьютеров.