Разработка C # в Linux

107

Я хотел бы знать, существуют ли эффективные инструменты с открытым исходным кодом для разработки приложений C # в Linux (Ubuntu). В частности, мне нужно разрабатывать приложения Windows Forms.

Я знаю о Моно проекте , но я никогда не использовал его. Какие инструменты (IDE, компилятор и т. Д.) Лучше всего подходят для настройки среды разработки .NET на Ubuntu?

Может ли программное обеспечение, разработанное для Linux, работать в Windows? Есть ли различное поведение или несовместимость?

Давиооо
источник
Также не стесняйтесь проверить этот вопрос stackoverflow.com/questions/151350/…
NlightNFotis
Это также может быть как-то полезно stackoverflow.com/questions/716077/…
NlightNFotis
Это также может быть интересно: mono-project.com/WinForms_Getting_Started_Guide
NlightNFotis

Ответы:

69

MonoDevelop, IDE, связанной с Mono Project, должно быть достаточно для разработки на C # в Linux. Сейчас я не знаю хороших профилировщиков и других инструментов для разработки на C # в Linux. Но опять же, имейте в виду, что C # - это язык, более родной для Windows. Вам лучше разрабатывать приложения на C # для Windows, чем для Linux.

РЕДАКТИРОВАТЬ: когда вы загружаете MonoDevelop из Центра программного обеспечения Ubuntu, он будет содержать почти все, что вам нужно, чтобы сразу начать работу (компилятор, среда выполнения, IDE). Если вам нужна дополнительная информация, перейдите по следующим ссылкам:

NlightNFotis
источник
1
Это программное обеспечение, разработанное для Linux, работающее в Windows?
davioooh
2
Программное обеспечение, разработанное для Windows или Linux, запускается поверх .Net framework. Таким образом, если в ОС можно установить .Net framework, он может запускать приложение. Вы должны знать о версии;)
Шихам
@nvrtheless мне было интересно, может ли другая реализация фреймворка создать несовместимость
davioooh
4
Насколько я знаю, обратная совместимость всегда есть. Проблемы могут возникнуть, если вы попытаетесь запустить приложение поверх .Net 2.0, которое разработано с .Net 3.5 или любыми более поздними версиями.
Shiham
Хотя вы должны заметить, что .Net всегда способен на большее в Windows. Mono - это скорее проект совместимости, чем реальная реализация комплекта разработки программного обеспечения. По крайней мере, так я это вижу.
NlightNFotis
9

Я бы предложил использовать MonoDevelop.

Он в значительной степени явно разработан для использования с Mono и настроен для разработки на C #.

Самый простой способ установить его в Ubuntu - это установить пакет monodevelop в Ubuntu. ( ссылка на Mono на ubuntu.com ) (Однако, если вы хотите установить более свежую версию, я не уверен, какой PPA подойдет)

Однако я бы не рекомендовал разрабатывать с помощью инструментария WinForms - я не ожидаю, что он будет вести себя одинаково в Windows и Mono (реализации сильно отличаются). Для обзора наборов инструментов пользовательского интерфейса, которые работают с Mono, вы можете перейти на информационную страницу Mono-project .

Жан Оминал
источник
8

Mono Develop - это то, что вам нужно, если вы использовали визуальную студию, вам должно быть достаточно просто начать работу.

Если я правильно помню, вы сможете установить с помощью sudo apt-get install monodevelop

Крис Дайвер
источник
Команда установки верна, однако вам необходимо убедиться, что вы добавили репозиторий monodevelop в свою систему, прежде чем делать это. Вот действующая ссылка: monodevelop.com/download А вот способ добавить репозиторий: `` sudo apt install apt-transport-https dirmngr sudo apt-key adv --keyserver hkp: //keyserver.ubuntu. com: 80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF echo "deb download.mono-project.com/repo/ubuntu vs-bionic main" | sudo tee /etc/apt/sources.list.d/mono-official-vs.list sudo apt update ''
FreedomInChaos
6

Mono - это среда выполнения, которая может запускать приложения .NET и работает как в Windows, так и в Linux. Он включает компилятор C #.

В качестве IDE вы можете использовать MonoDevelop , и я полагаю, что для Eclipse есть что-то доступное.

Обратите внимание, что поддержка WinForms в Mono есть, но в некоторой степени отсутствует. Как правило, разработчики Mono, похоже, предпочитают другие инструменты GUI, такие как Gtk #.

ИЛИ Картограф
источник