Как запустить проект C # под Linux - PullRequest
25 голосов
/ 04 июня 2009

Знаете ли вы какие-либо способы запуска проекта C # в Linux. Для этого есть фреймворки или библиотеки?

Ответы [ 3 ]

33 голосов
/ 04 июня 2009

Вы ищете Mono Project - кроссплатформенную (но в первую очередь ориентированную на Linux) реализацию .NET Framework и CLR. Он способен запускать двоичные файлы, скомпилированные для CLR (MS .NET), или создавать собственные собственные двоичные файлы Linux.

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

Информация о текущем состоянии:

Подавляющее большинство BCL (библиотеки базовых классов) доступно в Mono, за исключением некоторых компонентов .NET 3.0 / 3.5, таких как WPF (который в настоящее время имеет минимальную поддержку) и WCF (почти не существует). служба поддержки). Однако Silverlight 2.0 поддерживается проектом Moonlight , и прогресс в этом направлении идет хорошо. Насколько я знаю, функциональность WinForms (которая использует GTK # в качестве бэкэнда) довольно полна.

Реализация языка C # 3.0 фактически завершена, включая такие функции C # 3.0, как лямбда-выражения , LINQ и автоматические свойства . Я полагаю, что C # компилятор является зрелым настолько, что его эффективность, по крайней мере, сравнима с эффективностью компилятора MS, но еще не соответствует ему в некоторых отношениях. Что весьма круто (и уникально) в компиляторе Mono C #, так это то, что теперь он предлагает сервис компилятора - другими словами, настоящую динамическую компиляцию из кода (без использования CodeDOM). Это то, что MS, возможно, добавит только в .NET 5.0.

5 голосов
/ 04 июня 2009

Как уже говорили другие, вы можете запускать приложения .NET в Mono. Если ваши приложения используют вызов платформы (P / Invoke) для вызова собственного кода, вы можете столкнуться с некоторыми проблемами, если нет встроенной реализации Mono в собственной библиотеке. Чтобы проверить, выполняет ли это ваше приложение (или использует API, которые еще не были реализованы в Mono), вы можете использовать Mono Migration Analyzer (MoMA) .

1 голос
/ 25 октября 2018

Для тех, кто сталкивается с этим вопросом после 2016 года , может использовать .NET Core - универсальную платформу разработки с открытым исходным кодом, поддерживаемую Microsoft и сообществом .NET на GitHub. Он кроссплатформенный (поддерживает Windows, macOS и Linux) и может использоваться для создания устройств, облачных приложений и приложений IoT.

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