Варианты разработки настольного программного обеспечения - PullRequest
6 голосов
/ 04 ноября 2008

От программиста, застрявшего в мире Интернета ...

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

  1. Реально ли написать настольное программное обеспечение для Windows и OS X?

  2. Реально ли использовать один и тот же базовый код для написания бизнес-уровней / слоев данных для приложения, которое будет иметь частичный веб-интерфейс, а также интерфейс рабочего стола?

Ответы [ 9 ]

3 голосов
/ 04 ноября 2008
  1. Да. Вы можете использовать Java, Python / Ruby и т. Д. С кроссплатформенным UI-фреймворком, AIR и т. Д. И т. Д.

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

Если вы спустились в корневой каталог .NET, вы можете использовать Silverlight для веб-приложения, код сервера .NET для бэкэнда и даже Mono для разработки под OS X.

Если вы выбрали маршрут Java, Java запускается в браузере, скоро появится JavaFX, небольшая версия в стиле flash для браузеров. Он работает практически на всех ОС и прекрасно справляется с бэкэндом.

Flex / AIR предлагает отличный способ разработки настольных и веб-приложений для OS X, Windows и Linux, но вам понадобится другой язык для бэкэнда. .NET, Java, PHP и т. Д. Все отлично работают как бэкэнд.

Редактировать
По запросу MrJeepster ниже приведены подробные сведения о взаимодействии внешнего интерфейса AIR и внутреннего интерфейса .NET:

Существует два способа подключения AIR к бэкэнду .NET: способ DIY и способ удаленного взаимодействия.

Самодельный способ предполагает определение собственных (возможно, XML) форматов данных и использование низкоуровневых объектов HTTP-запросов для связи с HTTP-сервером или даже низкоуровневых классов сокетов для связи с каким-либо другим сервером.

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

http://www.adobe.com/devnet/flashremoting/articles/intro_flremoting_net.html
http://www.themidnightcoders.com/flashorb/gettingStarted.htm
http://www.fluorinefx.com/

Удаленное взаимодействие предполагает совместное использование объектов между клиентом и сервером. Таким образом, вы создаете некоторый объект на клиенте AIR, получаете инфраструктуру удаленного взаимодействия, чтобы сериализовать его, передавать на сервер и десериализовать его в объект .NET. Затем сервер обрабатывает его и отправляет его или новый объект обратно по тому же маршруту.

2 голосов
/ 04 ноября 2008

Хотя разработка кроссплатформенных рабочих столов возможна, это нелегко. Как минимум, вы должны тестировать на каждой поддерживаемой платформе. И вам приходится идти на трудные компромиссы: вы заставляете свое программное обеспечение выглядеть одинаково на каждой платформе (и, следовательно, нигде не выглядеть как собственное приложение), или вы используете собственные элементы управления и работаете с различным выравниванием и т. Д. На разных платформах? Помимо внешнего вида, какое поведение вы используете? Например, программное обеспечение UNIX сортирует с учетом регистра, а программное обеспечение Windows - нет. Вы выбираете один порядок сортировки на обеих платформах или сортируете по-разному на каждой платформе?

1 голос
/ 04 ноября 2008

Использование .NET и моно - достойный выбор.

1 голос
/ 04 ноября 2008
  1. Я мог бы предложить Qt, если вы ищете кроссплатформенный. Мы использовали его здесь несколько лет назад. Это лицензия для разработчика и дорогая, хотя (по крайней мере, тогда).

  2. Конечно, вы можете использовать веб-сервисы.

1 голос
/ 04 ноября 2008

Qt (на C ++ или python) полностью переносим между mac / win / linux. он также включает в себя QtWebKit, поэтому в ваше приложение легко встроить настоящий современный браузер.

1 голос
/ 04 ноября 2008
  1. Да, думаю QT
  2. Да, думаю SOA
0 голосов
/ 18 января 2009

Я использую REALbasic для создания широкого спектра настольных приложений для Mac OS X и Windows. Работает довольно хорошо.

Тем не менее, создание отдельных слоев для совместного использования с настольными / веб-интерфейсами не очень хорошо.

0 голосов
/ 05 ноября 2008

Мы сами создаем небольшое кроссплатформенное приложение, используя Java (Swing), и это действительно приятно. По крайней мере, пока. : D

0 голосов
/ 04 ноября 2008

Мы создали многоуровневые кроссплатформенные приложения с использованием Java. На рабочем столе Swing работал ДЕЙСТВИТЕЛЬНО для нас.

...