WinForms против GtkSharp с моно

При разработке с Mono для приложения, которое будет работать на Windows и Mac OSX (и, возможно, Linux), что бы вы предложили, WinForms или GtkSharp для графического интерфейса и почему?

Конкретные примеры и истории успеха / ужасов будут высоко оценены.

4 ответа

Решение

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

Конечно, если вы просто хотите проверить концепцию, то WinForms на Mac (или Linux) в порядке, но если вы хотите приложение, которое конкурирует с другим нативным решением, тогда вам действительно стоит подумать о написании отдельного нативного интерфейса для каждой поддерживаемой платформы.

Хорошим примером того, как это было сделано, является MindManager из Mindjet. Их версия для Mac - это полное, с нуля, переписывание интерфейса. Результатом является приложение, которое дает пользователям Mac опыт, которого они научились ожидать на своей платформе.

Итак, вернемся к Mono. Есть какао-привязки в Mono. Лично я никогда не пробовал их использовать, но если вы хотите использовать Mac для своего приложения, их, безусловно, стоит посмотреть. Было бы здорово, если бы их можно было рассматривать как правильный выбор для разработки пользовательского интерфейса на Mac.

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

Какая платформа будет у большинства пользователей вашего приложения? Если большинство пользователей будут пользователями Windows, используйте Winforms, но если большинство пользователей будут пользователями Linux, используйте Gtk#. Я не знаю, какой из них лучше всего работает на OSX.

Читайте эту статью также: http://www.mono-project.com/Gui_Toolkits

GtkSharp требует X11 на Mac OS X. Пользователи Mac найдут это отталкивающим. Я не пробовал Winforms на OS X, но поддержка winforms в Linux для mono была довольно незрелой (с ошибками) и медленной. Я не думаю, что на данный момент есть зрелый инструментарий.net GUI для OS X, по крайней мере, ничего на уровне Swing или SWT.

Другие вопросы по тегам