Подтвердить что ты не робот

Может ли программа на С# быть кросс-платформенной?

Я новичок в программировании, и я рассматриваю возможность использования С# для написания ОЧЕНЬ простой программы, которая просто редактирует текстовый файл.

  • Будет ли он работать на Mac и Linux? Что будет работать?
  • Я хочу знать, что делает программу кросс-платформенной?
4b9b3361

Ответ 1

Да, С# является кросс-платформенным благодаря проекту Mono. Но имейте в виду, что это сторонняя реализация, а не Microsoft. Таким образом, любые новейшие функции последней версии .NET или версии языка С# могут быть не реализованы.

Ответ 2

Мне сложно ответить на что-то подобное кому-то, в котором говорится, что он только начинает программировать, но я попытаюсь дать вам (несколько упрощенный) обзор: С# - это язык, который скомпилирован в исполняемую программу. Сам язык переносится между plattforms, если у вас есть компилятор на каждой целевой форме. В Windows у вас есть стандартная реализация .Net, а на Linux/Mac у вас есть Mono. Чтобы сделать что-то полезное - например, редактировать файлы - вам нужно использовать некоторые библиотеки. Существует стандартная библиотека, которая доступна на каждой пластине. До тех пор, пока вы используете только эту функциональность, ваша программа будет перекрёстной. Очевидно, что это не будет cross plattform, как только вы используете некоторую библиотеку, специфичную для определенной plattform. Редактирование файлов является частью стандартной библиотеки, поэтому вы можете реализовать такие простые инструменты в виде перекрестного шаблона. Выбирая книгу, вы должны искать книги, которые сосредоточены на "сыром" языке, а не на Visual Studio или других специальных инструментах.

Ответ 3

Новая версия с открытым исходным кодом от Microsoft под названием CoreCLR является кросс-платформенной и теперь может использоваться для этого

Реплика CoreCLR содержит полную реализацию выполнения для .NET Core. Он включает в себя RyuJIT,.NET GC, собственный интерфейс и многие другие компоненты. Это кросс-платформенный, с несколькими портами ОС и ЦП.  - из репозитория CoreCLR

Ответ 4

Я бы не рекомендовал С# как лучший выбор для мультиплатформенного кодирования. Я бы порекомендовал python, но его очень легко запустить даже как script и отлично работает на всех платформах. Если вы настаиваете на том, чтобы С# был готов справиться с той же проблемой, объясненной Джастином Этье. Python, с другой стороны, одинакова для всех платформ, она очень мощная и даже имеет готовые к подключению к другим языкам.

Ответ 5

В этой статье в викторине проекта Mono очень хорошая работа, обобщающая, как писать переносные приложения с С#.

Ответ 6

С# - кросс-платформа, и вы можете запускать свою программу в Windows/Linux и Mac. Для Linux вам нужно запустить с помощью моно

Ответ 7

Если вы новичок и не настаиваете на С#, попробуйте Java, он недалеко от синтаксиса С# и работает

java -jar myprogram.jar

- то же самое для Mac/Linux/Win.

Ответ 8

Теперь С# полностью перекрестная платформа и имеет множество фреймворков и время выполнения.

Java - это язык + фреймворк. Но С# - это просто современный язык. Функции языка С# очень мощные, легкие в освоении. Никакой путаницы между каркасом и языком.

С# можно использовать в следующих рамках

  • .Net-ядро (Multi-платформа поддерживает Linux, Windows и Mac), в основном используется для создания служб поддержки, веб-приложений и корпоративных систем.
  • .Net Framework (только для Windows), то же самое, что и .net-ядро, но имеет больше функций только для Windows.
  • Unity - один из самых популярных игровых движков для разработки игр для ПК, Sony, Xbox devicesetc..
  • Xamrin - разработать собственные мобильные приложения (Android, IOS, Mac)
  • .Net standard. Создайте библиотеку в стандартном использовании .net во всех вышеприведенных приложениях.

Java - код один раз, отправка одного файла на все платформы

** С++, C, Rust ** - код один раз, компиляция для определенной платформы

С#. Это всего лишь язык, выберите свою структуру в соответствии с требованиями.

Самые популярные приложения, такие как Chrome, Firefox, используют С++, Rust и скомпилированы для каждой платформы. Но все же они разделяют большинство кодов между этими платформами. В некоторых играх используется С++ для обмена кодом между IOS и Android.

Для новых разработчиков полезно начинать с NodeJS и С#. Оба они легки и могут выполнять любые типы приложений.