Текущее состояние Mono в Linux? - PullRequest
13 голосов
/ 12 июня 2009

Я давно пользуюсь .NET Framework на платформах Windows, но я также много занимаюсь программированием на Linux. Я хотел бы воспользоваться Mono для некоторых конкретных проектов, но в последний раз, когда я пытался (возможно, 2 года назад?), Mono просто не справился с задачей. Кроме того, было особенно трудно получить действительно хорошую информацию о состоянии Моно либо с их сайта, либо с помощью Google.

Есть ли какие-нибудь моно-гуру, которые могут упростить текущее состояние проекта для кого-то, кто привык использовать .NET 3.0 в Windows? Приблизительно, сколько библиотек базовых классов можно использовать, а сколько - WinForms?

Заранее спасибо!

Ответы [ 6 ]

14 голосов
/ 12 июня 2009

Статус высокого уровня: mono-project.com / Планы

Статус API: go-mono.com / статус

Если вы хотите перенести существующее приложение в Linux: MoMA

Я также думаю, что было бы лучше ...

  • подумайте о некоторых случаях использования Mono ... ваш текущий вопрос слишком общий
  • задают конкретные вопросы в списках рассылки, поскольку многие умные и знающие люди, которые там работают, вероятно, не читают StackOverflow: mono-project.com / Mailing_Lists

Краткое изложение моего короткого опыта:

  • Asp.net 2.0 полностью реализован, и я могу заставить работать Asp.net MVC
  • Windows Forms поддерживается, но никогда не будет высокого качества, потому что это не приоритет. Избавьтесь от боли и просто создайте интерфейс Gtk # для вашего порта Linux
  • базовые библиотеки реализованы, и Linq DB уже почти у вас, но вам не повезет с API, специфичными для Windows, такими как WPF и WCF, хотя Silverlight реализован в Moonlight
  • Mono имеет успех в последних играх, которые нуждаются в мощной среде сценариев. Посмотреть компании, использующие Mono: mono-project.com / Companies_Using_Mono

Новости и прочее читайте в блоге Мигеля по адресу tirania.org / blog /

4 голосов
/ 12 июня 2009

Текущая реализация mono (2.4) довольно хороша с точки зрения компиляции .NET 2.0 (и некоторых библиотек 3.5, например ASP.NET MVC или LINQ), но все еще далека от универсального .NET 3.0 / 3.5 , Если ваше приложение разработано с использованием winforms и мало использует .NET 3.0 / 3.5, то у вас есть хорошие шансы, что оно будет работать с моно. Конечно, будут некоторые части платформы .NET 3.5, которые, вероятно, никогда не будут поддерживаться, например WPF.

На моно странице есть Migration Analyzer , который может точно определить, будет ли ваше приложение работать нормально или нет под моно 2.4.

4 голосов
/ 12 июня 2009

Я бы сказал, что пройти долгий путь, если он может поддерживать разработку движка для создания игр, такого как Unity, который использовался для разработки Sims 3, помимо прочего. Кроме того, команда Mono в некотором роде опережает Microsoft в своей собственной игре, создавая такие вещи, как статический компоновщик, чтобы код .NET мог работать непосредственно на iPhone и на консоли C # REPL.

Что бы это ни стоило, я играл с ним на стороне ASP.NET, и, хотя было несколько ударов, это был очень положительный опыт. Мне удалось запустить приложение ASP.NET MVC с использованием NHibernate и MySQL.

3 голосов
/ 12 июня 2009

моно-сайт заявляет, что поддерживаются следующие функции C # 3.0:

  • анонимные методы
  • итераторы
  • частичные занятия
  • Дженерики
  • Обнуляемые типы
  • дружеские сборки
  • статические классы
  • ковариация и контравариантность
  • свойство accessor accessibility
  • фиксированные буферы
  • псевдоним внешней сборки
  • квалификатор псевдонима пространства имен
  • встроенный контроль предупреждений
  • Методы расширения
  • Синтаксис LINQ
  • Выражение деревьев
  • Автоматические свойства
  • Лямбда-выражения
  • Анонимные типы.
2 голосов
/ 12 июня 2009

По моему опыту, специальные элементы управления, такие как datagridview, прошли долгий путь. Они добираются туда, но еще не совсем там.

Я разрабатываю небольшое приложение OpenGL, используя библиотеку OpenTK. Это приложение, когда оно запускается в Windows и Mono, в основном совпадает, но такие вещи, как представление данных, кажутся немного случайными в реализации. Выберите самую последнюю версию моно, и вы должны быть в основном в порядке.

По моему мнению, различия теперь незначительны, без каких-либо посредников (за исключением, может быть, отладчика). Однако в Monodevelop отсутствуют хорошие инструменты рефакторинга, которые есть у VS.

2 голосов
/ 12 июня 2009

По моему опыту работы с областью Window Forms части .NET 2.0, похоже, работают хорошо. Чем сложнее программное обеспечение, тем больше у вас проблем. Есть вещи, которые нужно изменить, чтобы заставить вещи работать. Такие вещи, как разделители пути. Кроме того, некоторые элементы управления Win Forms ведут себя по-разному, такие мелочи, как наложение порядка запуска событий на вас. Вы должны проверить все, вы найдете проблемы, как в Java. Вы найдете проблемы во всех перестановках Win / Mono и Linux / Mono, также у Mono есть ошибки, которые не исправлены, что может быть остановкой показа.

Вы можете использовать инструмент MOMMA для поиска известных проблем, но он не улавливает все. http://www.mono -project.com / MoMA

проблемы отладки очень медленные, а настройка среды отладки затруднена.

Я думаю, что для .NET 3.0 это слишком рано, если только вы не делаете это ради удовольствия.

...