Подтвердить что ты не робот

Возможность разработки С# с помощью Mono

Недавно я столкнулся с пакетами Mono и MonoDevelop в Linux Ubuntu. Они утверждают, что имеют время выполнения .NET в соответствии с CLI. Перед установкой пакетов я хотел бы знать следующее:

  • Насколько мощным является Mono?

  • Могу ли я разработать GUI-приложение для Linux как разработка WinForm приложений для Windows.

  • Совместимость с MonoDevelop IDE с Visual Studio IDE. Могу ли я импортировать решения VS 2008 в MonoDevelop и работать?

  • Поддерживает ли он .NET 2.0 и выше?

EDIT: добавление еще одного сомнения

Есть ли способ запустить .NET exe (из приложения winform) в Linux без создания трески в linux? На самом деле у меня нет кода для некоторых из небольших утилит, которые я разработал ранее, и хотел бы запустить их в Linux.

4b9b3361

Ответ 1

  • (Странно, уценка начинает перечисление с одного, хотя я начал с 2...)

  • Да, вы можете, но вы ограничены сторонними компонентами, потому что внутренняя реализация отличается, и в прошлый раз, когда я проверил (не так давно), реализация Mono WinForms заставила мое тестовое приложение выглядеть довольно странный (вид, составленный владельцем). На самом деле это не рекомендуется, хотя Mono утверждает, что теперь он полностью совместим с WinForms 2.0.

  • MonoDevelop является/является ветвью SharpDevelop, причем последняя имеет поддержку решения. Я не знаю, есть ли у MonoDevelop. Но здорово, что вы можете просто начать с Visual Studio и запустить свои скомпилированные приложения в Mono. И Mono, кстати, также доступен для Windows.

  • Да, это так, что касается CLR. Как уже писал Марк Гравелл, библиотеки Windows Foundation отсутствуют, как и некоторые другие (например, System.Management). Но в основном должны работать, включая ASP.NET 2.0. Руководства по переносимости приложений Mono, хорошо читайте об этом.

Ответ 2

1: довольно хорошо, на самом деле. Не все полные рамки существуют, поэтому, если вы пишете код, который должен основываться как на MS.NET, так и на моно, вам нужно заранее создать и протестировать на обеих платформах.

4: да - хотя такие вещи, как WPF/WCF/WF (3.0), отсутствуют или уменьшены

Я мало знаю о среде разработки, так как я использую VSTS (в Windows) и просто использую NANT script для сборки на моно...

Ответ 3

  • Определите "мощный".
  • Mono имеет реализацию WinForms, чтобы обеспечить некоторый уровень совместимости источника. Однако, в зависимости от ваших потребностей, вы можете использовать одно из привязок Mono для родной среды Linux, например Gtk # или Qyoto
  • Не знаю.
  • В зависимости от того, какие части .NET вы имеете в виду. С# язык кажется довольно актуальным, все становится более сумасшедшим, чем ближе вы к функциям предприятия, как уже упоминалось.

Подводя итог, если вы будете использовать Mono в качестве отдельной целевой платформы, вы, вероятно, добьетесь хороших результатов. Если вы хотите, чтобы уровень совместимости с кодом не требовал изменений кода, тем менее.

Ответ 4

  • Очень мощный. В основной реализации нет серьезных ошибок. Это не научный проект. Недостатки, в основном, вы ожидаете, новейшие API (у Microsoft по своей сути есть преимущество перед первым движением).

  • Да. Мы только что закончили проект, в котором большая часть кода GUI была разработана в WinForms в Windows. Я смог работать над ним, используя Ubuntu без серьезных головных болей. Тем не менее, это одна из самых сложных частей API, и все еще есть проблемы. Подробнее см. http://mono-project.com/WinForms.

  • Не знаю, поскольку я не использую его.
  • Да, опять же, во время выполнения могут отсутствовать API-интерфейсы.

Заметьте, я использую Ubuntu Hardy (8.04).

Ответ 5

  • Моно могущественно. Он имеет все .Net мышцы на очень сильном скелете с открытым исходным кодом.

  • Когда вы говорите: "Разработка GUI-приложения для Linux, как разработка приложений WinForm для Windows", я понимаю, что вы спрашиваете о визуальном дизайнере, который позволит вам быстро создать пользовательский интерфейс. Да, это возможно. MonoDevelop имеет Stetic - встроенный визуальный дизайнер для Gtk #. Существует также QyotoDevelop, который позволяет поддерживать QT в MonoDevelop.

  • Да, MonoDevelop изначально поддерживает формат файла проекта VS/Solution. Вы можете использовать одну и ту же базу кода для компиляции своего приложения с помощью VS в .NET на Windows и выиграть MD в Mono в Linux.

  • В настоящее время Mono поддерживает С# 3.0 с некоторыми вещами, которые уже реализованы, и многое в конвейере.

  • Да, во многих случаях можно запускать .Net компилированное приложение в Mono, однако с поддержкой MonoDevelop для VS-решений это не имеет большого значения. Требуется столько же, сколько нажать F7 для восстановления всего проекта, поэтому усилия действительно незначительны. Лучший инструмент для проверки того, может ли ваше приложение работать в Mono, - MoMA.

Ответ 6

  • Моно очень мощный, иногда даже более мощный, чем реализация Microsoft. текст ссылки
  • Да, вы можете. Поддержка Winforms 2.0
  • Я так считаю.
  • Да, да. поддерживается С# 3 и просто посмотрите на winforms и реализацию asp.net, чтобы узнать, сколько из них поддерживается в каждом из проектов. Посмотрите http://mono-project.com

Ответ 7

Я использую WinForms в моно. 2.x выпуски очень хороши.

Я разрабатываю формы в visual-studio на окнах и запускаю их в Linux с нулевыми изменениями кода. Да, формы выглядят немного иначе, чем на XP, но опять же, графический интерфейс XP-themed выглядел бы странно в GNOME.

Если вы только начинаете, придерживайтесь WinForms, а вам нравится Mono/Linux. Однако в какой-то момент вы можете изучить GTK.