Какой язык / платформу вы бы использовали для условно-бесплатного / бесплатного настольного приложения? - PullRequest
2 голосов
/ 16 апреля 2009

У меня есть приложение для каталогизации DVD, которое я написал несколько лет назад с помощью MFC. Записи сохраняются в базе данных sqlite, поэтому в основном это приложение CRUD. С точки зрения пользовательского интерфейса, он имеет вид дерева слева, вид списка (сетка) в правом верхнем углу и вид HTML (встроенный IE) в правом нижнем углу. Ничего особенного.

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

Вот варианты, основанные на моих исследованиях:

  • Java / Swing: я могу использовать свои знания Java; отличные сторонние библиотеки (такие как Spring для IoC и Hibernate для ORM); кросс-платформенный. Недостатком является, JRE требуется для пользователей; Swing, кажется, находится в режиме «обслуживания», и Sun не привлекает к нему большого внимания.
  • C ++ / Qt: нативное приложение; кросс-платформенный. Но я новичок в Qt, так Сначала я должен выучить это.
  • C # / WPF: WPF кажется будущим разработки Windows GUI и я впечатлен некоторыми примерами приложений WPF. я есть некоторый опыт работы с C #, но я нужно учить WPF. Недостатком является Windows только; Требуется среда выполнения .NET 3.5.

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

Ответы [ 11 ]

4 голосов
/ 16 апреля 2009

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

4 голосов
/ 16 апреля 2009

Если вы хотите научиться новым навыкам при разработке этого приложения, тогда C # / WPF и LINQ в C # 3.0 действительно хороши, если у вас их не было в Java.

Если вы просто хотите набрать скорость, то вы уже отвечаете на свой вопрос, Java / Swing. Это то, в чем ты хорош.

3 голосов
/ 17 апреля 2009

В большинстве случаев, если объем проекта достаточно мал, а вычислительные потребности скромны, я склоняюсь к использованию TCL / Tk . Я еще не выучил графический интерфейс, в котором я более продуктивен, чем тк (не говоря о том, что его нет, просто я попробовал несколько и нашел их медленнее). Конечно, TCL - не самый замечательный язык для программирования, хотя есть ряд полезных дополнений, в частности [ incr tcl ] и tcllib .

Причина, по которой я выбираю это вместо других систем, я предпочитаю программировать на python, например, потому что развертывание с tcl / tk близко к непобедимому. С Starkit вы получите однофайловое приложение с двойным кликом, которое не требует инсталлятора и является легко переносимым.

3 голосов
/ 17 апреля 2009

Единственным другим инструментом, кроме сырого C ++, является Delphi. Период.

С другими инструментами у вас будут проблемы при развертывании.

С Delphi вы будете создавать собственные exe-файлы, автономные. Кроме того, связь с базой данных отличная.

Вы никогда не будете разочарованы отсутствием элементов управления или инструментов сторонних разработчиков, во многом с исходным кодом и бесплатным / коммерческим набором инструментов.

И время компиляции самое быстрое в этой галактике;)

Итак, если вы серьезно настроены предоставить беспроблемное приложение для своих клиентов, и что клиенты не ориентированы на технологии, как разработчики, поэтому можете запутаться, потому что какой из 4 сред выполнения .NET устанавливается, требуется минимальная поддержка, легкая загрузка , click-click-install-go, приложения, которые работают мгновенно, такие как Skype, TopStyle (сделанный с Delphi) и другие , тогда Delphi / C ++ - ваш единственный выбор. Шутки в сторону. ЕДИНСТВЕННЫЕ варианты.


Если вам нужно решение с кросс-платформой, то FreePascal / Lazarus может работать, если ваш графический интерфейс минималистичен.

3 голосов
/ 17 апреля 2009

Рассмотрите также PyQt + Python, если ваша производительность является большой проблемой. Поверьте мне, когда я говорю, что кривая изучения Qt того стоит, и не так сложно, как может показаться на первый взгляд.

Sqlite поддерживается как в стандартных библиотеках Python, так и в модуле QSql в Qt, если вы предпочитаете использовать это.

PyQt + Python также является кроссплатформенным вариантом, поскольку Python доступен для многих платформ и кроссплатформенность Qt для начала.

Все элементы управления, которые вы упомянули в своем приложении, доступны в Qt.

2 голосов
/ 16 апреля 2009

Ну, если вы действительно хотите приложение типа платформы класса, я бы преобразовал его в веб-приложение и разместил его. Таким образом, если один пользователь загружает информацию DVD или обложку DVD, другой пользователь может использовать эту информацию, уже введенную в систему.

Если вы собираетесь разрабатывать для настольных компьютеров, попробуйте почувствовать, что это приложение, разработанное для этой платформы с использованием инструментов пользовательского интерфейса ОС. А для окон выберите свой третий вариант C # / WPF.

1 голос
/ 17 апреля 2009

С Eclipse RCP вы получаете Java, кроссплатформенную разработку (см. Delta Pack), собственный внешний вид (через SWT) и отличную коллекцию фреймворков для разработки десктопов (декларативный интерфейс, управление плагинами и т. Д.). Вам обязательно стоит попробовать.

1 голос
/ 17 апреля 2009

Вместо C # / WPF вы можете взглянуть на Silverlight. Ваше приложение кажется достаточно простым, чтобы на его запуск не потребовалось много времени. Подобно демонстрациям, которые демонстрируются на конференциях.

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

Вы сможете ориентироваться на пользователей Windows / Mac и, возможно, Linux с Moonlight. Но я не смотрел на Linux последние 8 лет, поэтому я не могу много о нем сказать.

1 голос
/ 16 апреля 2009

Если у вас в приложении MFC есть какой-то не-пользовательский код, который вы хотели бы использовать повторно, подумайте о QT. В противном случае выберите то, что вы предпочитаете изучать.

0 голосов
/ 18 апреля 2009

Я бы на самом деле очень внимательно посмотрел на что-то вроде Adobe Air. Он кроссплатформенный и может быть основан на html / javascript, так что, скорее всего, у вас не будет большого количества уроков, кроме, возможно, библиотеки javascript или двух. У него есть возможность общаться с локальным хранилищем данных или через Интернет с веб-сервисом или сервисом RESTFUL. Разработка бесплатна с aptana. Проверьте некоторые вещи, написанные на нем:

http://www.adobe.com/products/air/showcase/

...