Действительно ли C# независим от платформы?

Сегодня я купил Ссылку Кармана C# 3.0 (Издатели O'Reilly).

В той книге в первом параграфе первой страницы это - учитывая, что "Язык C# независим от платформы, но это было записано для работы хорошо с Microsoft платформы .NET"

Если я не ошибаюсь, Независимый от платформы средний, который программное обеспечение, сделанное из того языка, должно выполнить во всей ОС (например, Mac, Windows, Linux и т.д.).

Я знаю, что эта характеристика удовлетворяется Java, но .NET еще не был в состоянии сделать это (Хотя МОНО сделал некоторые успехи в Linux).

Тогда, каково значение того слова "PLATFORM NEUTRAL" до сих пор c# является беспокойством?

Заранее спасибо

14
задан Georg Fritzsche 14 December 2009 в 11:02
поделиться

8 ответов

Сам язык C # не зависит от платформы, как и C и C ++ - вы можете реализовать компилятор и другие для него на любой платформе.

Платформа .Net и связанные с ней библиотеки, с которыми она была разработана для хорошей работы, не являются платформенно-нейтральными по дизайну - они предназначены для работы с Windows, хотя Mono в некоторой степени компенсирует это .

Если вы напишете программу на C # без использования каких-либо функций какой-либо .Net-библиотеки, она гарантированно будет независимой от платформы - вы можете быть уверены, что она будет работать на любой платформе, имеющей инструменты для C # ... вы просто но особо полезной программы у меня не будет;)

19
ответ дан 1 December 2019 в 06:48
поделиться

Язык C # не зависит от платформы.

Но среды dotNEt, обычно связанные с C #, не являются. Они работают в операционных системах Microsoft.

Mono позволяет использовать C # на многих других (в основном unix-oid) платформах, предоставляя необходимую среду выполнения, но не содержит (всех) фреймворков, необходимых для запуска типичных программ C #.

9
ответ дан 1 December 2019 в 06:48
поделиться

Не забывайте, что вы можете использовать C # в:

  • MS .NET (Windows)
  • .NET Compact Framework (PocketPC, XBox 360)
  • Silverlight (Windows, Mac )
  • Moonlight (Mono / Linux)
  • MonoTouch (iPhone)
  • MonoDevelop (различные, включая android)
  • Micro Framework (некоторые часы и т.д.)

Не совсем покрытие. У языка очень мало требований к среде выполнения / ОС.

6
ответ дан 1 December 2019 в 06:48
поделиться

C # нейтральна к платформе в смысле ОС (т. е. нейтральна к ОС), если вы считаете Mono надежной средой выполнения в Linux.

Но C # и .Net могут работать как есть без перекомпиляции как на 32-, так и на 64-разрядной машине. Думаю, в этом смысл автора.

3
ответ дан 1 December 2019 в 06:48
поделиться

В этом случае нейтральная платформа определяется как «возможность работать на любой машине, имеющей совместимую с виртуальную машину ». В зависимости от того, какие языковые функции и компилятор вы используете, C # можно считать пригодным для работы на машинах с последними версиями Windows, Mac OS и Linux.

2
ответ дан 1 December 2019 в 06:48
поделиться

C # язык может быть реализован на любая платформа, имеющая совместимый компилятор и виртуальную машину. Сам язык имеет стандарт ECMA для реализации и, следовательно, сам не содержит каких-либо языковых элементов, специфичных для платформы (например, Microsoft).

2
ответ дан 1 December 2019 в 06:48
поделиться

Прежде чем ответить на вопрос, нужно учесть, что любой язык в наши дни бесполезен без своих библиотек. Тем не менее, многие пространства имен, которые составляют часть, являются только окнами. Многие из них являются просто оболочкой для технологий Microsoft, таких как com, win forms и т. Д.

Все рассмотрено, просто взгляните на настройки, которые mono внесла, чтобы предоставить альтернативы точечной сети. Мигель много раз упоминал, что они надеются, что Silverlight победит, а не другие инструменты пользовательского интерфейса, потому что он действительно платформенно-независимый, а не wpf, winforms и т. Д.

Если вам нужен настоящий многоплатформенный язык и среда, посмотрите на Java.

1
ответ дан 1 December 2019 в 06:48
поделиться

На мой взгляд, Microsoft ' s утверждение, что C # нейтральна к платформе (повторяется в тексте, который вы цитируете), неискренне.

Это технически правильно, но на практике ограниченная переносимость приложений C # в операционные системы, отличные от MS, произошла несмотря на Microsoft, а не из-за них. Совершенно очевидно, что Microsoft не намерена поддерживать C # / .Net в какой-либо операционной системе, отличной от MS. Действительно, многие люди думают, что Microsoft (через соглашение о лицензировании патентов с Novell) использует C # / Mono в качестве «клина», чтобы нанести ущерб экосистеме GNU / Linux.

ИМО, любой, кто думает об использовании Mono, должен учитывать: 1) риски для их проекта, если MS решит жестко сыграть против патентов .NET, и 2) ущерб, который они могут в результате нанести экосистеме с открытым исходным кодом.

но на практике ограниченная переносимость приложений C # в операционные системы, отличные от MS, имела место несмотря на Microsoft, а не из-за них. Совершенно очевидно, что Microsoft не намерена поддерживать C # / .Net в какой-либо операционной системе, отличной от MS. Действительно, многие люди думают, что Microsoft (через соглашение о лицензировании патентов с Novell) использует C # / Mono в качестве «клина», чтобы нанести ущерб экосистеме GNU / Linux.

ИМО, любой, кто думает об использовании Mono, должен учитывать: 1) риски для их проекта, если MS решит сыграть решительную роль в патентах .NET, и 2) ущерб, который они могут в результате нанести экосистеме с открытым исходным кодом.

но на практике ограниченная переносимость приложений C # в операционные системы, отличные от MS, имела место несмотря на Microsoft, а не из-за них. Совершенно очевидно, что Microsoft не намерена поддерживать C # / .Net в какой-либо операционной системе, отличной от MS. Действительно, многие люди думают, что Microsoft (через соглашение о лицензировании патентов с Novell) использует C # / Mono в качестве «клина», чтобы нанести ущерб экосистеме GNU / Linux.

ИМО, любой, кто думает об использовании Mono, должен учитывать: 1) риски для их проекта, если MS решит сыграть решительную роль в патентах .NET, и 2) ущерб, который они могут в результате нанести экосистеме с открытым исходным кодом.

Совершенно очевидно, что Microsoft не намерена поддерживать C # / .Net в какой-либо операционной системе, отличной от MS. Действительно, многие люди думают, что Microsoft (через соглашение о лицензировании патентов с Novell) использует C # / Mono в качестве «клина», чтобы нанести ущерб экосистеме GNU / Linux.

ИМО, любой, кто думает об использовании Mono, должен учитывать: 1) риски для их проекта, если MS решит сыграть решительную роль в патентах .NET, и 2) ущерб, который они могут в результате нанести экосистеме с открытым исходным кодом.

Совершенно очевидно, что Microsoft не намерена поддерживать C # / .Net в какой-либо операционной системе, отличной от MS. Действительно, многие люди думают, что Microsoft (через соглашение о лицензировании патентов с Novell) использует C # / Mono в качестве «клина», чтобы нанести ущерб экосистеме GNU / Linux.

ИМО, любой, кто думает об использовании Mono, должен учитывать: 1) риски для их проекта, если MS решит сыграть решительную роль в патентах .NET, и 2) ущерб, который они могут в результате нанести экосистеме с открытым исходным кодом.

0
ответ дан 1 December 2019 в 06:48
поделиться
Другие вопросы по тегам:

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