Является ли .NET платформой для однократной записи и запуска в любом месте (WORA), как утверждает Java? - PullRequest
8 голосов
/ 17 сентября 2008

Я так ярко помню лозунг Солнца ... "Напиши один раз, беги куда угодно" . Идея заключается в том, что, поскольку программы компилируются в стандартные байтовые коды, любое устройство с виртуальной машиной Java может запустить его. За прошедшие годы Java, похоже, вышла на многие платформы / устройства.

Является ли это намерением или было намерением .NET. Если да, то какие усилия предпринимаются для того, чтобы сделать это реальностью?

Ответы [ 29 ]

1 голос
/ 17 сентября 2008

В теории да. Сборки .Net - это байт-коды, которые при запуске преобразуются в собственный код с использованием компилятора JIT («точно в срок»).

На практике, помимо Windows, не так много платформ, имеющих JIT-компилятор .Net. Есть один для Linux, который называется MONO.

Не знаю о Mac, Sun и т.д ...

1 голос
/ 17 сентября 2008

Он никогда не будет поддерживаться на таком количестве платформ, как Java, ИМХО.

Единственное усилие - Mono, не спонсируемое Microsoft.

Отметьте здесь на SO и на официальном сайте

1 голос
/ 17 сентября 2008

Я думаю, что идея с .NET заключается в том, что это «Пиши один раз, беги куда угодно (по выбору Microsoft)». Однако проект Mono медленно меняет ситуацию.

1 голос
/ 17 сентября 2008

Это теоретически возможно, поскольку CLR («виртуальная машина» .Net) соответствует открытому стандарту (CLI). Вопрос в том, какие есть другие реализации этого стандарта. Mono - это еще одна работа в процессе, но это единственная другая, о которой я знаю.

1 голос
/ 17 сентября 2008

Намерение, или, по крайней мере, шаг, было, чтобы это имело место. Реальность такова, что .NET не может работать на других платформах. Единственным серьезным исключением является Mono , который является проектом с открытым исходным кодом. По сути, это перезапись среды выполнения .NET (эквивалент виртуальной машины Java), которая работает в Linux, Solaris, Mac OS X, Windows и Unix.

Это было довольно успешно, но официально не поддерживается.

Если вы хотите, чтобы ваш монолитный работодатель Acme Corp. перешел на .Net и Linux, забудьте об этом. Реально, с .NET вы работаете на Windows, точка.

1 голос
/ 17 сентября 2008

Да, .NET имеет Common Language Runtime (CLR), который является .NET эквивалентом JVM. Microsoft не поддерживает его на стольких платформах, как Java, но с помощью проекта Mono можно создавать кросс-платформенные приложения с обычными оговорками.

Имейте в виду, что .NET - это больше, чем просто CLR. Это целая платформа.

0 голосов
/ 28 апреля 2012

Я думаю, что идея заключалась в том, чтобы создать взаимодействие между различными языками программирования, а не WORA.

0 голосов
/ 17 сентября 2008

Поскольку .NET доступен (официально) только в Windows, то нет, он не записан, работает где угодно. Тем не менее, команда Mono делает все возможное, чтобы помочь распространению .NET за пределами Windows, но они всегда сильно отстают от официальных материалов.

0 голосов
/ 24 мая 2010

Если бы Microsoft серьезно относилась к dotnet на других платформах, отличных от Windows, она выпустила бы библиотеки классов для повторного использования другими, что помогло бы переписать те же библиотеки снова. Sun, с другой стороны, сделал это, то есть меньше барьеров присутствует, если никто не хочет переноситься на другую платформу. Обычно с java все еще нужно писать vm и делать нативные вещи, но это помогает избежать головной боли, которая переопределяет всю библиотеку классов. Стандартизация языка - маркетинговая уловка для захвата технического персонала. Язык без библиотек бесполезен. Попробуйте выполнить ваш следующий проект только с prjkitive типами ... Правильно, напишите свой собственный строковый класс и т. Д. И скажите мне, насколько полезен стандартизированный язык без доступных библиотек ...

0 голосов
/ 17 сентября 2008

Я не думаю, что изначально Microsoft планировала создавать среды выполнения для каждой платформы и устройства, но они поощряли это, используя документированный (?) Промежуточный язык.

...