Лучшая архитектура решения

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

  • Решения должны работать на Mac, Windows и Linux.
  • Может быть настроен для использования встроенного механизма базы данных, такого как SQLite или Apache Derby, а также может быть настроен для подключения к удаленному механизму базы данных. MySQL для экземпляров.
  • Один из модулей этого решения планируется запустить на столе под ОС Android.

    Проведя некоторые исследования, я нашел Adobe Air, и он соответствует большинству наших требований, насколько мне известно, он может работать под Windows, Mac и Linux и даже под ОС Android. но, к сожалению, это не идеально, потому что есть несколько ограничений в отношении обработчиков периферийных устройств (должны быть реализованы с использованием кода Java) и обработчиков удаленных баз данных (для подключения к ним нам нужно использовать код php или java).

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


person rfders    schedule 23.09.2010    source источник


Ответы (2)


Ну, есть много кроссплатформенных фреймворков на выбор. Что уместно, зависит от многих факторов. Вот некоторые из них, на которые вы можете обратить внимание:

  • Java (с использованием Swing, возможно SWT + JDBC)
  • JavaFX
  • используя язык сценариев, такой как Python (не знаю, какой язык графического интерфейса вы можете использовать тогда)

Java, вероятно, лучший вариант, по крайней мере, для Android, так как это официальный рекомендуемый язык/API. Кроме того, это широко используемое и бесплатное программное обеспечение.

Я бы с осторожностью относился к Adobe AIR, так как это проприетарная платформа, поэтому вы всегда будете во власти Adobe для поддержки новых платформ и т. д. Но это ваше решение...

Также обратите внимание, что Adobe AIR для Android все еще находится в стадии бета-тестирования:

Планируется, что Adobe AIR SDK и среда выполнения Adobe AIR будут поддерживать Android во второй половине 2010 года. О поддержке интегрированных инструментов будет объявлено позднее.

( http://labs.adobe.com/technologies/air2/android/ )

person sleske    schedule 23.09.2010
comment
Я понимаю тот факт, что Java, использующая технологии Swing, может работать на машинах Windows, Linux или Mac. но как я могу исправить это с помощью andoroid? возможно, внедряя SOA?, тогда как вы можете разработать SOA вместо настольной разработки и попытаться избежать установки сервера приложений или веб-сервера - person rfders; 24.09.2010
comment
@rfders: я не понимаю вашего вопроса. Приложения Java могут работать как на Android, так и на Android. И, конечно же, вы можете реализовать часть своего приложения как SOA, но это не зависит от языка. - person sleske; 24.09.2010
comment
скажем, я разработал свои решения с использованием технологий Java и Swing, это прекрасно работает на машинах Win, Mac и Linux. а как же Андроид? Я знаю, что ОС Android поддерживает Java как язык программирования, но как насчет свинга? вероятно, мой полностью графический интерфейс должен быть переработан и разработан снова, так что насчет моего бизнес-класса, как я могу выставить его в качестве службы, когда у меня нет веб-сервера или сервера приложений в моих решениях? Я не знаю, ясно ли я выражаюсь. но я немного смущен тем, как я могу справиться с этими проблемами. - person rfders; 24.09.2010
comment
@rfders: А, понятно. Да, вам придется изменить свой графический интерфейс для Android, он использует свой собственный инструментарий графического интерфейса и не поддерживает Swing. В любом случае Swing будет иметь ограниченное использование на Android, поскольку Android нацелен на телефоны и тому подобное, у которых экраны меньше и другой ввод, чем у компьютеров, поэтому графический интерфейс в любом случае необходимо будет переработать. Однако вы можете повторно использовать свои бизнес-классы (классы Java без графического интерфейса обычно совместимы). Если у вас все еще есть вопросы, просто задайте новый вопрос :-). - person sleske; 24.09.2010

вы можете обратиться к сервис-ориентированной архитектуре для ответов. Если вы разрабатываете ряд сервисов, которые напрямую подключаются к вашей базе данных, вы можете использовать эти сервисы с ряда платформ, даже с Android или iPhone. Adobe AIR — это то, на что я смотрел, но из того, что я прочитал, я не могу получить достаточно уверенности. Однако веб-сервисы, особенно если вы идете по пути REST, могут предложить много преимуществ.

person Dimitris    schedule 23.09.2010
comment
Как я могу реализовать SOA при разработке настольного приложения, возможно ли это сделать, учитывая тот факт, что мы используем трей, чтобы избежать установки веб-серверов? - person rfders; 24.09.2010