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

Текущее состояние Mono в Linux?

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

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

Спасибо заранее!

4b9b3361

Ответ 1

Статус высокого уровня: 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

Для новостей и других материалов, следуйте блогу Miguel на tirania.org/blog/

Ответ 2

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

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

Ответ 3

Текущая моно-реализация (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

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

  • анонимные методы
  • итераторы
  • частичные классы
  • Общие понятия
  • Nullable Types
  • друг сборки
  • статические классы
  • ковариация и контравариантность
  • доступность доступа к ресурсам
  • фиксированные буферы
  • внешний псевдоним сборки
  • идентификатор псевдонима пространства имен
  • встроенное предупреждение
  • Методы расширения
  • Синтаксис LINQ
  • Деревья выражений
  • Автоматические свойства
  • Лямбда-выражения
  • Анонимные типы.

Ответ 5

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

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

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

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

Ответ 6

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

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

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