Может ли программа на C # быть кроссплатформенной? - PullRequest
24 голосов
/ 07 августа 2011

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

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

Ответы [ 8 ]

20 голосов
/ 07 августа 2011

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

8 голосов
/ 07 августа 2011

Трудно ответить кому-то на что-то подобное, утверждая, что он только начинает программирование, но я постараюсь дать вам (несколько упрощенный) обзор: C # - это язык, который компилируется в исполняемую программу.Сам язык переносим между платформами, если у вас есть компилятор на каждой целевой платформе.В Windows у вас есть реализация по умолчанию .Net, а в Linux / Mac - Mono.Чтобы сделать что-то полезное - например, редактирование файлов - вы должны использовать несколько библиотек.Существует стандартная библиотека, которая доступна на каждой платформе.Пока вы используете только эту функциональность, ваша программа будет кроссплатформенной.Очевидно, что это не будет кроссплатформенность, как только вы используете библиотеку, специфичную для определенной платформы.Редактирование файлов является частью стандартной библиотеки, поэтому вы можете реализовать такие простые инструменты кросс-платформенным способом.При выборе книги вам следует искать книги, ориентированные на «сырой» язык, а не на Visual Studio или другие специальные инструменты.

6 голосов
/ 08 декабря 2017

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

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

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

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

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

C ++, C, Rust - однократно кодировать, компилировать для конкретной платформы

C # - Это просто язык, выбирайте рамки в соответствии с требованиями.

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

Для новых разработчиков хорошо начинать с NodeJS и C #. И то, и другое легко и подходит для любого типа приложений.

5 голосов
/ 11 мая 2015

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

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

3 голосов
/ 28 мая 2015

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

2 голосов
/ 07 августа 2011

Эта статья вики-проекта Mono отлично справляется с тем, как писать переносимые приложения на C #.

1 голос
/ 23 октября 2017

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

java -jar myprogram.jar

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

1 голос
/ 07 августа 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...