Вопрос

В настоящее время я разрабатывал настольное приложение на C #, используя mono, и тестировал в SuSE и Windows.Концепция не имеет большого значения, но это программа "web lint", которая сканирует веб-сайт и выявляет возможные проблемы с безопасностью и / или кроссбраузерной совместимостью.Тем не менее, я хочу иметь возможность предлагать двоичные файлы для нескольких платформ.Должен ли я остаться с Mono, или есть другая платформа, которая обеспечила бы мне лучшую доступность платформ, например, на Mac, Windows, Linux и других (возможно, мобильных платформах), и упростила бы ее перенос?

Это было полезно?

Решение

C # и Mono, вероятно, достаточно кроссплатформенны для большинства настольных сред.Хитрость будет заключаться в требовании "мобильной платформы".

Мобильные операционные системы чрезвычайно разнообразны, и вы мало что можете сделать для обобщения.У некоторых есть Java, как у Blackberry.C # может вывести вас на платформы под управлением Windows Mobile.Айфоны делают свое дело сами.Вам в значительной степени нужно выбрать платформу и нацелиться на нее.Это может в конечном итоге повлиять на выбор платформы вашего рабочего стола.

Другие советы

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

Большую часть своей кроссплатформенной работы я выполняю на C и perl, но с C возникают некоторые проблемы (много #ifdef), а perl может быть не на той мобильной платформе, которая вам интересна (пока).Вам нужно будет оценить языки / компиляторы / интерпретаторы, которые являются общими для всех платформ, на которые вы хотите настроить таргетинг, а затем выбрать из этого списка.Не зная полного списка таких платформ, нам будет трудно сказать вам, что использовать, хотя Java обладает достаточной словоохотливостью, чтобы, вероятно, стать сильным кандидатом.

Если бы вы знали C ++, Qt будет охватывать множество платформ.

Просто придерживайтесь Mono, убедитесь, что у вас есть Gendarme code inspector (FxCop для Mono), проверяющий ваш код на наличие проблем с переносимостью, и все должно быть в порядке.

Java будет работать на Windows, Linux и Mac.Должен быть простой переход с C # - используйте Apache HttpClient для получения веб-контента, который вы сканируете, и код сканирования должен быть более или менее одинаковым.Однако недостатком является требование к пользователю установки Java runtime.

Python - это еще один вариант - вы можете создавать автономные исполняемые файлы для Windows, и он поставляется с большинством дистрибутивов Linux по умолчанию, а также Mac OS X (требуется цитирование ;) ).Это намного меньше хлопот для пользователей Windows (язык компилируется в исполняемый файл, никаких других загрузок не требуется).

Если mono работает на Mac OS X, то, несомненно, это тоже хорошая платформа?

Это действительно зависит от того, что вы хотите сделать.Для веб-разработки, если HTML / JavaScript достаточно, придерживайтесь его.Если вам нужны более продвинутые материалы, я бы использовал ASP.NET с Mono (что вы, вероятно, и делали), поскольку вы это уже знаете.(Здесь вы можете использовать Visual Studio.)

Другим вариантом может быть (поскольку вы разработчик C #) использование Silverlight.Это дает вам доступ к платформам Windows и Mac, и, надеюсь, Лунный свет позже мы расскажем о платформе Linxu.(Здесь вы можете использовать Visual Studio и Expression Blend .)

Если вам нужно настольное приложение, то Java, вероятно, самое простое, поскольку вы уже знаете C #.Но если вы знаете C / C ++, попробуйте взглянуть на wxWidgets ( текстовые файлы ) например.

Зачем ограничивать себя традиционным C # / Java?Взгляните на Adobe AIR и Microsoft SilverLight

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top