Допустимость шаблонов дизайна GUI под Linux - PullRequest
0 голосов
/ 02 мая 2010

Я изучаю переход с Windows на Linux и пытаюсь найти образцы шаблонов проектирования, применяемых в этом мире.

Приложение представляет собой классический клиент-сервер с подробными формами для каждого бизнес-объекта.
Он будет принимать пользовательский ввод, выполнять некоторые проверки правильности, несколько вычислений и сохранять их в базе данных.
Он также будет иметь списки, суммирующие сущности, и поиск среди этих сущностей.
Щелчок по одному элементу в этих списках откроет подробные формы.

Если я использую python или ruby, что я должен использовать для GUI?
И какой шаблон: MVC, MVVM или MVP хороши?
Или есть что-нибудь лучше?

Примечание: я никогда не занимался веб-разработкой, и я хотел бы избежать необходимости одновременно изучать и Linux, и веб-разработку.

Ответы [ 5 ]

4 голосов
/ 02 мая 2010

Когда вы переходите на Python, взгляните на Qt (выбор привязок Python: PyQt или PySide ). Qt - действительно хорошая / полнофункциональная / зрелая кроссплатформенная библиотека GUI (которая также делает некоторые другие вещи).

Что касается привязок Python, PyQt на данный момент является коммерческой лицензией или / PySide - LGPL (если лицензии имеют значение).

Эти «шаблоны», о которых вы говорите (MVC, ...), могут применяться кроссплатформенно. То, что лучше всего подходит, зависит от типа приложения, которое вы пишете.

2 голосов
/ 02 мая 2010

Учитывая то, как вы объясняете свое приложение в комментарии, полностью поддерживая Qt, я бы также рекомендовал вам рассмотреть множество преимуществ, которые могут возникнуть в результате превращения вашего приложения в веб-приложение.

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

Первое огромное преимущество заключается в том, что вы не будете выбирать одну клиентскую платформу против другой - просто поддержите современные кроссплатформенные браузеры, такие как Firefox или Google Chrome, и ваши клиенты смогут выбрать любую клиентскую платформу (ы), которую они предпочитайте (если вы также тщательно проверите свое приложение в Safari, которое имеет много общей логики рендеринга с Chrome через инфраструктуру Webkit, то ваше веб-приложение будет также использоваться на iPad).

Второй большой выигрыш в том, что ваше приложение не потребует никакой «установки» на клиенте (ах) - оно всегда будет готово.

Современные Javascript-фреймворки (такие как jQuery, Dojo, Closure, ...) допускают интенсивную интерактивность, если вам это нужно, поддерживают построение графического интерфейса с помощью виджетов UI & c и, кстати, позаботятся о большинстве кросс-браузерных различий от вашего имени. На стороне сервера, с Ruby или Python (или еще с другими языками), вы даже можете найти фреймворки, которые плавно интегрируются с ресурсами Javascript на стороне клиента.

Да, и вычислительные ресурсы, необходимые для запуска приложения (такие как ОЗУ, мощность процессора, дисковое пространство и т. Д.), Дешевле "навалом" на сервере или небольшой группе серверов и, таким образом, распределяются между те клиенты, которые активны в данный момент, а затем распределены по многим клиентам (включая тех, кто не будет активным в любое время; -).

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

1 голос
/ 02 мая 2010

В наши дни двумя основными наборами пользовательского интерфейса в Linux являются Qt и GTK +. Qt широко используется рабочим столом KDE, а GTK + широко используется Gnome. Но приложение Qt будет работать в Gnome и наоборот. Оба набора инструментов имеют привязки к огромному количеству языков.

0 голосов
/ 20 декабря 2010

Возможно, вы захотите взглянуть на Mono . Это в основном кроссплатформенный .NET. Вы можете написать свое приложение один раз и запустить его в Windows или Linux (и легко перенести его на Android или iOS). Вы также можете заглянуть в Moonlight , версию Silverlight с открытым исходным кодом, если хотите сосредоточиться на шаблоне MVVM. Использование .NET значительно облегчит переход на среду веб-приложений. В качестве преимущества вы можете заниматься разработкой под Windows, Linux или Mac.

Если вам нужен доступ к базе данных и вы собираетесь использовать .NET, я бы порекомендовал dblinq и MySql бэкэнд.

0 голосов
/ 02 мая 2010

Шаблоны проектирования (или архитектуры) не имеют ничего общего с целевым языком программирования или операционной системой.Если у вас есть проблемы, если вы видите требования, которые будут удовлетворены каким-либо решением, представленным шаблоном, и последствия будут хорошими, просто используйте шаблон.Если вы работаете с MVC, MVP, MVVM и т. Д., Посмотрите на те шаблоны и проблемы, которые они решают, и если это то, что вам нужно для вашего приложения, используйте их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...