Приложение MonoDevelop для .NET в Linux - PullRequest
4 голосов
/ 27 февраля 2012

Мне нужно разрабатывать приложения на C #, но я использую Linux (Ubuntu), я обнаружил MonoDevelop, но я не понимаю, могу ли я написать .NET-приложения из Linux для использования в Windows, поэтому разработка на linux и выполнение на винде. они совместимы?

На сайте Mono я нашел:

Mono - это программная платформа, разработанная, чтобы позволить разработчикам легко создавать кроссплатформенные приложения.

Что это значит? Могу ли я писать на Linux c # приложения, которые могут работать везде, где установлена ​​платформа .NET?

Спасибо за разъяснения

Ответы [ 5 ]

6 голосов
/ 27 февраля 2012

Любой код C #, который вы компилируете из MonoDevelop или где-либо еще, может быть запущен на любой платформе с Mono или .NET Framework.Пока в системе Linux установлена ​​Mono, она может запускать любое скомпилированное приложение C #, в том числе .exe, скопированное с компьютера Windows.

Причина этого в том, что при компиляции приложения C # оно не компилируется.в собственный системный код, он компилируется в CIL .Когда вы запускаете программу, она автоматически JIT компилирует ваш код для системы, на которой она работает, оставляя исходный исполняемый файл без изменений.Как .NET Framework для Windows, так и Mono для всего остального могут считывать и компилировать байт-код CIL.

И еще одна вещь, о которой следует помнить, Mono не имеет всего стека .NET Framework.Почти все BCL не повреждены, но такие библиотеки, как WPF, недоступны в Mono.Mono рекомендует использовать GTK # для графического интерфейса.

4 голосов
/ 27 февраля 2012

Да, вы можете использовать mono для создания приложений .NET, которые будут работать в Linux, Windows и Mac.

Моно :

Это реализация Microsoft .Net Framework с открытым исходным кодом, основанная на стандартах ECMA для C # и Common Language Runtime.

Это означает, что, пока вы не пишете код, специфичный для платформы, вы можете запускать его на всех платформах, на которых может работать .NET. (Таким образом, вместо конкатенации путей с использованием \ или / вы используете Path.Combine, а вместо жестких кодов разрывов строк, таких как \n, вы используете Environment.NewLine и т. Д.).

2 голосов
/ 27 февраля 2012

Еще одним преимуществом является то, что моно инструменты разработки бесплатны.(см .: http://www.mono -project.com / Main_Page )

0 голосов
/ 27 февраля 2012

Вы можете до тех пор, пока вы будете осторожны, ничего не предполагать о таких вещах, как разметка файловой системы, и использовать библиотеки, которые также являются переносимыми.Графические интерфейсы, в частности, проблематичны: Windows.Forms в Linux выглядит чуждо, а Gtk может показаться немного неуместным в Windows.

0 голосов
/ 27 февраля 2012

Вы действительно можете написать код .NET в Mono в Linux и запустить приложение в Windows, Mac OS X и Linux.
Но имейте в виду, что полный стек .NET недоступен длявы.Наиболее заметным является полное отсутствие поддержки WPF .

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