Многоплатформенная разработка

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
570
7
Перейти к ответу Данный вопрос помечен как решенный

Ответы 7

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

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

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

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

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

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

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

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

Ответ принят как подходящий

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

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

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

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

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

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