Насколько независим от платформы .Net? - PullRequest
8 голосов
/ 20 февраля 2011

Можно ли установить .NET Framework в операционных системах Linux, Unix, MAC и т. Д.?

Ответы [ 6 ]

7 голосов
/ 20 февраля 2011

Вы должны взглянуть на Mono Project .

Моно

Кроссплатформенный открытый код реализация C # и CLR, которые совместим с бинарным Microsoft.NET

5 голосов
/ 20 февраля 2011

.Net per se * , как и большинство программных продуктов Microsoft, на 100% платформо- зависит .Он только работает в среде Microsoft (например, Windows и ее различные версии).Нет никакого официального .Net для чего-либо еще (Mac, Linux и т. Д.)

НО ...

Некоторые платформы действительно пытаются разработать альтернативы, эмуляторы и т. д., чтобы попытаться запустить MS Software. Mono , как написал Ник, - это проект Linux для поддержки кода .Net для работы под Linux.

Но Mono - это НЕ .Net.Это другое программное обеспечение, написанное разными людьми, которое на 100% совместимо с .Net (и это чертовски круто).Но он не предоставляется и не поддерживается Microsoft.

И Mono, являясь бесплатным программным обеспечением с открытым исходным кодом, не зависит от платформ , так как может быть перенесен на любую платформу (в настоящее времяуже поддерживают несколько, не только Linux)

Таким образом, с технической точки зрения, правильный ответ будет следующим:

.Net Framework, предоставленный Microsoft, вообще не зависит от платформ.,Вы не можете установить его ни в Linux, ни в Mac

, но Mono, независимая совместимая реализация .Net, поддерживается и доступна для установки как в Linux, так и в Mac, среди нескольких других платформ.И вы используете его для запуска кода, написанного в .Net

2 голосов
/ 20 февраля 2011

Linux имеет Mono, который является средой .Net для Linux.Я не знаю о других ОС.
Во всяком случае, что делает его независимым от платформы, так это то, что он компилируется в MSIL, поэтому любая платформа может реализовать среду выполнения и поддерживать ее.

Существует также реализация для небольших встроенных устройств, которая называется .Net Micro Framework .

.
1 голос
/ 20 февраля 2011

.Net можно рассматривать как две отдельные части. Одним из них является CLI , стандартизированный ECMA, а другим - CLR . CLR - это реализация CLI Microsoft.

CLI может выполняться на многих устройствах, таких как Windows (x86, x64, ia64 и теперь ARM), XBox, Zune, мобильные телефоны и даже встроенные устройства (небольшие чипы) . Mono / Moonlight - это реализации CLI и даже частей CLR, частично финансируемых Microsoft через Novell. Microsoft поддерживает эту работу и выпускает исходный код для помощи. Через Mono вы можете работать с большинством операционных систем и типов процессоров.

Существуют также компиляторы, которые могут компилировать код .Net непосредственно в независимый от платформы код, который может напрямую выполняться процессором. Хорошо, если вы хотите написать свою собственную операционную систему на C #. (Я не помню имен, но могу заинтересовать некоторые ссылки в Google.)

CLI разработан, чтобы быть независимым от платформы и языка . Он хорошо работает в большинстве операционных систем и процессоров благодаря различным реализациям. На практике это означает, что он поддерживает, например, языковые функции, такие как регистрозависимые / регистрозависимые переменные (+ много больше), и имеет набор инструкций, совместимый с большинством процессоров (машинный код CLI напоминает инструкции большинства предложений CPU).

Реализации .Net (обзор, чтобы ответить на ваш вопрос):

1 голос
/ 20 февраля 2011

Ответ на ваш очень точный вопрос - НЕТ. Ответ на вопрос «может ли программа .net запускаться на этих ОС» отличается? И это может быть. Как написано другими, ищите Mono.

Приложение (это более поздняя редакция)

Теперь я думаю, что мой ответ не был полным. Я должен был ответить «Да. Вы устанавливаете Wine, а затем устанавливаете .net framework». Вот ссылка с примером (для Ubuntu и .net 2.0): http://ubuntuforums.org/showthread.php?t=943298

Да, я действительно знаю, что это не ответ на то, что ОП, вероятно, хотел знать, но это, по крайней мере, частичный ответ на то, что он спросил.

0 голосов
/ 20 февраля 2011

Вам необходимо использовать бесплатную и открытую альтернативную реализацию .NET, которая называется Mono

В википедии

Основной сайт

...