Мне интересно, включен ли mono.net в стандартную установку Ubuntu, Kubuntu, Fedora и других популярных дистрибутивов?
Если да, то есть ли у кого-нибудь веская причина, почему НЕ использовать его для разработки нового приложения с графическим интерфейсом, ориентированного в основном на Linux?





I'm wondering if mono.net is included in the default installation of Ubuntu, Kubuntu, and Fedora, and other popular distros?
Я не верю, что Ubuntu поставляется с ним по умолчанию, Kubuntu определенно нет.
Ubuntu Intrepid и, вероятно, Hardy по умолчанию поставляется с Mono. Не знаю о его статусе в других дистрибутивах.
If so, does anyone have a good reason why NOT to use it to develop a new GUI application targeted mainly for linux?
Если он ориентирован в основном на Linux, почему бы не использовать технологию, которая лучше интегрируется с рабочим столом Linux? Python и Java - хороший выбор. Используйте .NET только в том случае, если вы будете повторно использовать большой объем устаревшего кода.
Одной из целей mono не было - предоставить реализацию с открытым исходным кодом для платформ, отличных от Windows. Я не понимаю, почему моно не лучше интегрируется с Linux, чем Java или Python, особенно Java.
Вы можете использовать Java + GTK или Python + GTK. Оба имеют лучшие привязки для библиотек, связанных с Linux, и фактически кроссплатформенность являются.
Я бы даже зашел так далеко, чтобы сказать, что Mono мог бы быть спасительным средством для Linux на рабочем столе, если бы только люди могли избавиться от обычного Mono == MS == Плохая чушь.
В .NET есть делегаты, которые на 900% проще использовать, чем анонимные внутренние классы для программ с графическим интерфейсом. Одна только эта функция делает использование Mono оправданным. Mono также лучше работает на OS X, чем Java (есть ли у OS X даже Java6?)
OP пишет приложение, ориентированное на Linux, поэтому поведение в OS X не имеет значения. Java уже много лет используется для написания настольных приложений Linux. Я думаю, что он оказался эффективным языком для разработки графического интерфейса Linux.
Тем не менее, как человек, интенсивно использующий оба эти направления, я могу с уверенностью сказать, что Mono не только лучше интегрируется (GTK # превосходен), но также имеет гораздо более богатый язык (в C# есть функции, которые хотелось бы иметь в Java). Вы, вероятно, используете программу с монофоническим питанием каждый день и просто не знаете об этом.
@John ... но в новом парне нет ничего плохого. Mono сейчас достаточно зрелый, и есть масса разработчиков с навыками .NET, которые теперь могут ориентироваться на Linux без необходимости изучать Java и его собственную структуру.
@Jonathan: Это маловероятно, поскольку Mono не установлен (только что проверил). @Kev: Это было предсказано, но до сих пор единственные приложения Mono, которые хорошо работают в Linux, были написаны для него изначально и (в некоторых случаях) даже не были перенесены в Windows. Простое использование .NET не означает, что он будет переносимым.
@John - OP - «у кого-то есть веская причина, почему НЕ использовать его для разработки нового приложения с графическим интерфейсом, ориентированного в основном на Linux?» ... похоже, переносимость не так уж и важна.
Я имею в виду то, что предсказанных масс разработчиков Windows, которые начнут писать приложения для Linux, не появилось. Единственные приложения для Linux в Mono были написаны для Linux пользователями Linux.
@ Джон-Еще рано. Linux требует больше отличных приложений, и если Mono сможет обеспечить это, то это хорошо, даже если это приложения только для Linux. Черт возьми, я умер в шерстяных окнах, и моно подогревает мой аппетит, потому что я могу использовать свои навыки .NET.
Я не видел, чтобы Java хорошо интегрировалась с какой-либо средой рабочего стола; Mono, безусловно, кажется лучшим выбором, чем Java, если критерием является интеграция с вашим рабочим столом. (Или даже если это не так.)
Он включен в Fedora, Ubuntu, Mandriva, Debian и OpenSUSE.
Единственная основная ОС, которая не включает его, - это RHEL, но пакеты для нее доступны для отдельной загрузки.
Кроме того, при необходимости вы можете связать Mono со своим приложением в один двоичный файл (не рекомендуется, но всегда возможно).
Mono с графическим интерфейсом поддерживает Windows.Forms API в Unix и MacOS, но если вам нужен более естественный интерфейс, вы можете использовать Gtk # API (он предоставляет .NET API для стека библиотек GNOME) или вы можете использовать Qyoto, если вы хотите вместо этого интегрироваться с API KDE.
Существует множество лучших приложений с графическим интерфейсом для Linux, разработанных с использованием Gtk # и Mono, некоторые из самых популярных включают Гном-До (средство быстрого запуска приложений), программное обеспечение для управления фотографиями F-точка, медиаплееры Банши и Muine, а также IDE MonoDevelop.
Я почти уверен, что в Ubuntu это по умолчанию. Если это не так, я не заметил его установки.
Менеджеры пакетов в современных дистрибутивах автоматически извлекают зависимости. Нет никаких серьезных препятствий для использования какой-либо странной платформы в этих дистрибутивах.
Тем не менее, многие приложения Ubuntu пишутся на Mono с использованием GTK #. В первую очередь у меня в голове - Tomboy Notes и Gnome Do.
Mono с графическим интерфейсом поддерживает Windows.Forms API в Unix и MacOS, но если вам нужен более естественный интерфейс, вы можете использовать Gtk # API (он предоставляет .NET API для стека библиотек GNOME) или вы можете использовать Qyoto, если вы хотите вместо этого интегрироваться с API KDE.
Существует множество лучших приложений с графическим интерфейсом для Linux, разработанных с помощью Gtk # и Mono, некоторые из самых популярных включают Гном-До (средство быстрого запуска приложений), программное обеспечение для управления фотографиями F-точка, медиаплееры Банши и Muine, а также IDE MonoDevelop.
Кстати, для тех, кто не знает, miguel.de.icaza является основным автором Mono (и Gnome) :)
Я думаю, что самая большая причина не использовать его - политическая. При этом я считаю, что моно - отличная среда для разработки программ для Linux, и я бы рекомендовал ее всем, кто пишет новое приложение.
Я не могу придумать более простую платформу, чем C# + GTK # для создания кроссплатформенного приложения, она чертовски превосходит Java + Swing, и я действительно не хочу делать C++ и QT или C + GTK +