WinForms по сравнению с GtkSharp с моно

Вы можете создать функцию расширения на CoroutineScope или функцию с CoroutineScope в качестве параметра:

fun CoroutineScope.doThis() {
    launch { ... }
}

fun doThatIn(scope: CoroutineScope) {
    scope.launch { ... }
}

Также вы можете использовать coroutineScope или [ 115] , в зависимости от ваших потребностей:

suspend fun someFun() = coroutineScope {
    launch { ... }
}

suspend fun someFun() = supervisorScope {
    launch { ... }
}

22
задан Jon Seigel 8 June 2010 в 04:37
поделиться

3 ответа

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

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

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

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

16
ответ дан 29 November 2019 в 05:43
поделиться

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

3
ответ дан 29 November 2019 в 05:43
поделиться

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

0
ответ дан 29 November 2019 в 05:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: