Используется ли С# где-либо помимо .NET-программирования?

Я понимаю, что С#, хотя и созданный Microsoft, - это язык программирования, который можно использовать или реализовывать для других целей, помимо .NET-программирования. Например, я мог бы создать компилятор для С# для назначения собственных x86 или других процессоров или даже JVM. Непонятно ли мое понимание? Кто-нибудь знает, если С# используется для чего-либо помимо .NET?

Ответы

Ответ 1

Вы правы, что его можно использовать для других вещей. Это языковая спецификация... вы можете скомпилировать ее во все, что вам нравится, если вы потратите время, но это будет огромным усилием.

Я не знаю других применений, кроме Mono, как сказал jrcs3, но, надеюсь, Eric Lippert будет прослушивать и дать вам точку компилятора на С#/p >

Ответ 2

С# используется для экспериментальной операционной системы, называемой Singularity ', которая написана на управляемом уровне с нуля. Интересный проект для просмотра!

Изменить: Спасибо Jörg W Mittag за его комментарий - Helios на самом деле является модифицированной формой Singularity для поддержки ядер сателлитов, цитируя статью, которую я читаю прямо сейчас "Helios - это операционная система, предназначенная для упрощения задачи написания, развертывания и настройки приложений для гетерогенных платформ. Helios представляет собой ядра сателлитов, которые экспортируют единый набор абстракций ОС на процессорах разрозненных архитектур и характеристик производительности. Ядро Satellite позволяет разработчику писать приложения со знакомыми API-интерфейсами операционной системы и абстракциями."... интересно...

Надеюсь, это поможет, С наилучшими пожеланиями, Том.

Ответ 3

С# сама спецификация, указанная ECMA, которая "задает форму и устанавливает интерпретацию программ, написанных на языке программирования С#." как CLR. Наиболее популярная реализация этих программ в настоящее время предоставляется Microsoft, которая, как известно, является С#.net. С# и CLR являются открытыми стандартами, что означает, что каждый может реализовать их самостоятельно, отсюда формирование mono, компилятор С# для mac/linux. Сравните это с java, который только реализация обеспечивается солнцем. Это не открытый стандарт, поэтому вы не можете создавать свои собственные реализации.

из wikipedia:

Mono "Открытый исходный код, кросс-платформенный, реализация С# и CLR, совместимый с Microsoft.NET",

DotGNU "является частью проекта GNU, целью которого является предоставление бесплатной замены программного обеспечения для Microsoft.NET Framework"

Dot Net Anywhere является интерпретатором .net CIL для таргетинга встроенных систем.

Ответ 4

Насколько мне известно, все существующие в настоящее время реализации С# строятся на CIL и запускаются в .NET CLR или совместимой среде, и единственная альтернатива .NET CLR, о которой я знаю, - это Mono.

Другими словами, все текущие версии С# build выполняются в .NET или Mono.

.NET и Mono используют одни и те же "двоичные файлы", поэтому все текущие компиляторы С# имеют только одну цель.

Ответ 5

Еще одна область использования для разработки iPhone-приложений (и теперь я считаю iPad тоже) через MonoTouch.

Что такое MonoTouch?

MonoTouch позволяет разработчикам создавать приложения на базе С# и .NET, которые работают на устройствах Apple iPhone и Apple iPod Touch, используя при этом преимущества API iPhone и повторное использование как кода, так и библиотек, которые были созданы для .NET, а также существующих навыки.

Грубо говоря, это происходит следующим образом:

MonoTouch → MonoDevelop/С# → написать приложение iPhone → скомпилировано в собственный код → приложение для iPhone.

Соответствующие ссылки:

Ответ 6

Обратите внимание, что Unity 3D также позволяет " С# Scripts "и компилируется для работы с Mac, Windows, Web, Wii и iPhone (и, следовательно, iPad).

Ответ 7

Вы можете скомпилировать программу С# на Mono. Но это, вероятно, не считается.

Mono - это альтернативная реализация Common Language Infrastructure (CLI), которая работает в Linux и других операционных системах. Как упоминалось в других местах, как С#, так и CLI являются стандартами ECMA и могут быть реализованы любым, кто этого хочет.

Ротор - это другая реализация не .NET.

Ответ 8

Есть действительно инструменты для преобразования сборки .NET в автономный исполняемый файл или библиотеку, чтобы ваши клиенты не нуждались в платформе .NET. Это также дополнительно защищает ваш код от обратного проектирования до некоторой степени - вы не можете использовать Reflector, чтобы увидеть источник .NET в родной двоичной версии.

См. Remotesoft Salamander.NET Protector, например.

Но это не строго С# → native; Salamander преобразует MSIL в собственный код.

С другой стороны, существует хотя бы один академический проект по созданию С# → родного компилятора с использованием LLVM, называемого LLVM #.

Ответ 9

Вы можете использовать его в приложениях iPod, если используете MonoTouch.