2009-06-12 2 views
12

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

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

Заранее благодарен!

+1

Это может быть хорошо, как публичная вики или что-то еще, что называется. – wprl

ответ

14

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

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

В случае, если вы хотите перенести существующие приложения для 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-project.com/Companies_Using_Mono

Для новостей и прочее, следовать блог Мигеля на tirania.org/blog/

+0

отличная информация об этом блоге tirania.org! thx Alexandru – Mike

4

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

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

3

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

  • анонимных методы
  • итераторов
  • частичных классов
  • дженерик
  • Обнуляемых Типы
  • друг сборки
  • статическая класса с
  • ковариация и контрвариантность
  • свойства аксессор доступность
  • фиксированных буфера
  • внешнего сборки псевдоним
  • пространства имен псевдоним классификатор
  • встроенного контроль предупреждения
  • Метода расширения
  • Синтаксис LINQ
  • Выражения деревья
  • Автоматические свойства
  • Лямбда-выражения
  • Анонимные типы.
+1

Не знаете, кто это проигнорировал ... лично, я думаю, что список вещей, которые не реализованы, более важен, но список вещей, которые все еще удобны. – Powerlord

+0

Согласен, R. Bemrose - этот список на самом деле немного успокаивает мои страхи, просто чтобы увидеть, что я могу использовать. очень удобно. Спасибо, SoloBold, за информацию! – Mike

4

Реализация тока моно (2.4) довольно хорошо с точки зрения .NET 2.0 compilance (и некоторые из библиотек из 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.

2

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

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

Проблемы с отладкой очень медленные, а настройка среды отладки сложна.

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

+0

+1 Очень интересный момент в среде отладки. Это одно из реальных преимуществ разработки .net на стороне окна - это будет жесткая таблетка, чтобы проглотить! – Mike

+0

Да, особенно если вы используете VS, они, как правило, используют моно IDE. Затем есть различные замены lib и оконные менеджеры. – eschneider

2

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

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

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

Смежные вопросы