Что такое моно для Windows

Обновлено: 04.07.2024

Получите полный доступ к Mono: A Developer's Notebook и более чем 60 000 других игр с бесплатной 10-дневной пробной версией O'Reilly.

Есть также прямые онлайн-мероприятия, интерактивный контент, материалы для подготовки к сертификации и многое другое.

Глава 1. Запускаем Mono

Лабораторные работы в этой главе помогут вам получить, установить и настроить Mono для Linux, Windows и Mac OS X. Система Mono состоит из компилятора, среды выполнения, сборок (библиотек кода) и документации. В дополнение к этим компонентам вам понадобится среда разработки и система сборки. Эта глава также удовлетворит эти потребности, независимо от того, используете ли вы графическую среду IDE или интегрируете Mono, чтобы идеально вписаться в вашу любимую и давно зарекомендовавшую себя среду редактирования.

Некоторые лабораторные работы в этой главе обретут смысл только после того, как вы проработаете главы 2 и 3, поэтому не стесняйтесь вернуться и осмотреться, прежде чем переходить к главе 4.

Установить моно

Начнем с самого начала. Как вы попали в Mono?

В этом лабораторном занятии описывается, как получить и установить Mono, а также основные сопутствующие сборки. Большинство лабораторных работ в этой книге можно выполнить с помощью пакетов, установленных как часть этой лабораторной работы. Если требуются дополнительные загрузки, они будут отмечены в каждой соответствующей лаборатории.

Как это сделать

Лучший способ установить Mono — использовать официальные пакеты. Проект Mono выпустил предварительно скомпилированные пакеты для платформ Linux (Red Hat, SuSE и Fedora Core), Windows и Mac OS X. Кроме того, дистрибутивы Linux с собственными каналами загрузки, такие как Debian или Gentoo, включили Mono в свои обычные репозитории.

Мы не контролируем веб-сайт Mono, поэтому вы можете заметить, что некоторые изменения могут быть незначительными. Следите за исправлениями в этой книге в Интернете .

Линукс

Чтобы упростить жизнь, пользователи Fedora Core могут настроить канал yum. Для этого добавьте следующий код в /etc/yum.conf, изменив URL-адрес на тот, который указан для Fedora на странице загрузки Mono, и запустите yum проверьте обновление, чтобы убедиться, что все работает.

На странице загрузки объясняются взаимозависимости пакетов. Чтобы получить функциональную среду разработки Mono, установите следующие пакеты: mono-core, mono-core-devel, mono-posix, mono-xml-relaxng, mono-data-postgresql, mono-data-sqlite, gtk-sharp, monodoc, mono-web-services, mono-remoting и bytefx-data-mysql. Пользователи Fedora Core могут использовать yum install для загрузки и установки этих пакетов. Кроме того, вы можете скачать пакеты RPM и установить их вручную с помощью rpm -i.

Пользователи Debian Unstable (на x86 или PowerPC) могут установить Mono с помощью следующей команды, запущенной от имени пользователя root:

Пользователи Gentoo Linux (на x86 или PowerPC) должны скомпилировать и установить Mono следующим образом:

Окна

Установщик поместит все необходимые файлы в C:\Program Files\Mono-1.0, но вы можете переопределить это, указав другую папку.

Пакетные файлы, которые обертывают каждый из исполняемых файлов Mono, будут установлены в C:\Program Files\Mono-1.0\bin, поэтому необходимо добавить это в переменную среды PATH. Диалоговое окно на рис. 1-1 появится после установки, чтобы напомнить вам об этом.

Напоминание PATH для установщика Mono Windows

Вы можете использовать пакетный файл setmonopath.bat, чтобы добавить каталог к ​​вашему пути:

Mac OS X

Вы также можете обнаружить, что Mono доступен через установщики программного обеспечения fink и DarwinPorts .

Установка из исходников

Mono поддерживается на большем количестве платформ, чем бинарных пакетов. В частности, Mono работает на Solaris, HP/UX и PowerPC Linux. Для этих платформ вы должны скомпилировать Mono из исходного кода.

Вы можете получить пакеты с исходным кодом на странице загрузки веб-сайта Mono. Инструкции по сборке из исходников можно найти в примечаниях к выпуску. Mono относительно просто скомпилировать в Linux и Mac OS X, и он рассматривается в этом разделе. Для Windows специальные инструкции следует найти в примечаниях к выпуску.

Вы можете найти сторонние предварительно скомпилированные пакеты Mono для малоиспользуемых платформ, но не рассчитывайте на это .

Решите, куда установить Mono в вашей системе, желательно не в /usr, которым обычно управляет системный менеджер пакетов. Хороший выбор — /opt/mono. Настройте и скомпилируйте Mono с помощью следующих команд:

Теперь, когда Mono установлен, вы должны настроить некоторые переменные среды, прежде чем сможете использовать Mono.Используйте следующие команды, заменяя при необходимости свои пути:

Если вы хотите скомпилировать разрабатываемую версию Mono из исходного кода, см. Раздел 8.4.

А как насчет .

Исследуйте моно

В дополнение к сборкам классов и документации дистрибутив Mono содержит множество инструментов для создания и выполнения программ Mono. В этом практическом занятии вы ознакомитесь с наиболее важными инструментами.

Теперь у вас установлен Mono, что в коробке?

Как мне это сделать?

mcs не компилирует программы в непосредственно исполняемый код; скорее, он компилируется в промежуточный байт-код, называемый Common Intermediate Language (CIL).

Команда mono выполняет скомпилированную программу Mono на виртуальной машине. mono использует JIT-компилятор для преобразования скомпилированного байт-кода CIL в машинный код для выполнения. Программу Hello.exe можно запустить с помощью mono Hello.exe.

Узнайте, какая версия Mono установлена, запустив mono —version. Вывод будет выглядеть примерно так:

Включите эту информацию о версии, если вам нужно задать вопросы на любом из форумов, перечисленных в Разделе 1.5.

Не на каждой платформе, на которой работает Mono, реализован JIT-компилятор. Более медленная альтернатива mono доступна в форме mint, которая интерпретирует байт-код CIL в режиме реального времени во время выполнения программы.

монодокумент

Monodoc — это средство просмотра документации Mono, с помощью которого доступна официальная документация Mono API. Его можно запустить с помощью команды monodoc. Помимо официальных API-интерфейсов Mono, любая сторонняя сборка также может установить свою документацию, чтобы ее можно было просматривать из Monodoc. Одной из полезных функций Monodoc является то, что он позволяет любому желающему вносить изменения и дополнения в документацию. Они отправляются на центральный сервер, и человек-редактор объединяет их в репозиторий официальной документации. Рисунок 1-2 показывает Monodoc в действии.

Просмотр документации Monodoc

моноп

Иногда бывает непросто найти документацию по конкретной сборке. Здесь на помощь приходит monop. monop может распечатать сигнатуры любого класса, для которого в системе есть сборка. Например:

Если нужного вам класса нет в основной сборке системы, имя сборки можно указать в командной строке:

monop – очень удобный инструмент, когда все, что вам нужно, — это быстрая проверка подписи метода .

гакутил

А как насчет .

<р>. Названия команд? Поскольку все программы Mono компилируются в файл с суффиксом .exe, почему такие программы, как Monodoc, не запускаются с mono monodoc.exe?

Ответ заключается в том, что Mono использует скрипты-оболочки для вызова исполняемой программы mono, чтобы команды выглядели более естественно в среде Unix. Если вы собираетесь распространять свои программы Mono, хорошей идеей будет создать похожие скрипты, чтобы облегчить пользователям задачу. В некоторых системах Linux, таких как Debian, пакеты Mono используют хитрый прием под названием binfmt. Это позволяет системе напрямую выполнять файлы Mono .exe. При использовании binfmt вам просто нужно сделать символическую ссылку на .exe без суффикса.

Некоторые пользователи Linux очень расстраиваются, увидев в своей системе расширение файла «Windows», такое как .exe!

Где узнать больше

Чтобы узнать больше о приложениях командной строки, устанавливаемых Mono, попробуйте следующие варианты. Самый быстрый (но не всегда самый информативный) способ — запустить команду с ключом —help. Это должно привести к выводу на консоль краткой помощной записки о функции программы.

Mono также поставляется со страницами руководств для использования с программой чтения руководств системы Unix, man. Например, функцию загадочной команды soapsuds можно узнать, запустив man soapsuds. Если ваш Mono установлен в пользовательском каталоге, таком как /opt/mono, не забудьте добавить /opt/mono/man в переменную окружения MANPATH.< /p>

Запустите IDE MonoDevelop

Настоящие мужчины могут использовать vi , но продуктивные используют IDE .

По мере выполнения лабораторных работ в этой книге вам потребуется среда разработки. В то время как в Разделе 1.4 приводятся советы по интеграции Mono с существующей установкой, в этой практической работе показано, как приступить к работе с МоноДевелопмент. В выпуске Mono 1.0 MonoDevelop поддерживается только в Linux, хотя некоторые члены сообщества Mono запустили его в Mac OS X. См. раздел «Что насчет» в конце этого практического занятия, чтобы узнать о решениях IDE для Windows и Mac OS. Х.

MonoDevelop предоставляет современные средства программирования, общие для большинства IDE, такие как просмотр классов, встроенная документация по API, система сборки, завершение кода и поддержка нескольких типов файлов. Даже если вы заядлый фанат командной строки и текстового редактора, стоит попробовать MonoDevelop. Интегрированная документация помогает ориентироваться во множестве новых API, доступных в Mono.

Как мне это сделать?

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

Создание решения в MonoDevelop

Когда вы указываете создать новое решение, MonoDevelop создает несколько файлов: AssemblyInfo.cs, который содержит метаданные о вашем проекте и более подробно описан в Разделе 2.8, Главная. cs, содержащий основную функцию программы; и MyWindow.cs, содержащий класс окна приложения. Перейдите к MyWindow.cs с помощью панели просмотра решения, показанной на рис. 1-4, и дважды щелкните MyWindow.cs, чтобы его исходный код появился в окне исходного кода. .

Поместите курсор в конец строки this.ShowAll() в MyWindow.cs, нажмите Enter, чтобы создать новую пустую строку, и введите this.Ti . Появится окно завершения кода, как показано на рисунке 1-5. Мышь можно использовать для прокрутки вверх и вниз списка возможных завершений, при этом подпись каждого завершения отображается в окне «подсказка» рядом со списком завершений. Нажмите Enter, чтобы выбрать завершение this.Title (вы можете нажать Escape, чтобы закрыть окно завершения). Автозавершение кода можно повторно активировать во время редактирования с помощью комбинации клавиш Ctrl-пробел.

Завершение кода в MonoDevelop

Помимо автодополнения кода, MonoDevelop интегрирует полную документацию по API, предоставленную Monodoc. Доступ к этому можно получить, выбрав вкладку «Справка» на левой панели и используя дерево, чтобы перейти к нужной части API. На рис. 1-6 показан браузер справки в действии.

Интегрированная документация по API в MonoDevelop

Помимо просмотра API-интерфейсов Mono, MonoDevelop представляет структурированное представление классов в каждом проекте. Щелкните вкладку «Классы» на левой панели и разверните дерево, чтобы просмотреть классы в вашем проекте. Вид должен выглядеть примерно так, как показано на рис. 1-7. Двойной щелчок по определению переместит курсор в соответствующую точку в исходном коде.

Обозреватель классов MonoDevelop

Ошибки при компиляции в MonoDevelop

На рис. 1-7 показана загадочная функция ctor. Это сокращение от конструктора, обычно используемое в Mono .

А как насчет .

Подберите Mono к своему миру

У каждого есть предпочитаемая среда разработки, будь то текстовый редактор или полноценная IDE. Хотя у Mono есть отличная IDE в виде MonoDevelop, может быть много причин для продолжения использования вашей текущей среды.

Среда разработки — почти религиозный вопрос. Mono не заставит вас отказаться от любимых инструментов .

В этом лабораторном занятии показано, как Mono можно интегрировать с некоторыми наиболее распространенными инструментами, используемыми разработчиками Linux и Java.

Как мне это сделать?

Знатоки Unix также знакомы с использованием make для создания своих программ. Легко использовать make для управления сборкой программ Mono. Наиболее очевидным отличием от C и C++ является то, что Mono не нуждается в промежуточных объектных файлах, поэтому все исходные файлы должны быть переданы компилятору сразу. В примере 1-1 показан пример make-файла, который можно использовать в качестве отправной точки. Сопутствующие исходные файлы, используемые этим make-файлом, доступны на веб-сайте книги.

Запуск make с make-файлом из примера 1-1 дает следующий результат:

Конечно, вы можете взять лучшее из обоих миров. IDE MonoDevelop создает make-файлы для своих проектов .

Для достижения наилучших результатов с Mono используйте NAnt версии 0.85 или выше .

А как насчет .

Где узнать больше

Присоединяйтесь к сообществу Mono

Один из немногих недостатков этой книги заключается в том, что после печати ее нельзя изменить, чтобы охватить последние разработки в мире Mono. К счастью, помощь рядом. Mono — динамичный и развивающийся проект с открытым исходным кодом, с растущим сообществом активных разработчиков и пользователей. Таким образом, существует множество онлайн-ресурсов, которые вы можете использовать для получения новостей, справки и новых инструментов для Mono.

Не боритесь в одиночку, вам всегда помогут!

В этом практическом занятии представлены основные ресурсы сообщества Mono и показано, как извлечь из них максимальную пользу. По мере чтения этой книги знакомство с онлайн-ресурсами Mono поможет вам в изучении Mono.

Как мне это сделать?

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

Списки рассылки — это популярный способ получения поддержки от коллег по технологиям. Существует несколько списков рассылки, к которым пользователи Mono должны присоединиться, чтобы получать (и предоставлять!) помощь и находить объявления о выпуске программного обеспечения, связанного с Mono. Полный список списков рассылки доступен по ссылке на домашней странице Mono. Вот наиболее полезные для разработчиков, начинающих работу с Mono.

Сначала сделайте домашнее задание, и вы получите максимум от сообщества разработчиков Mono .

Когда вы сообщаете об ошибках, чем больше информации вы можете предоставить, тем лучше. Убедитесь, что вы включили:

Ваша операционная система, дистрибутив, версия ядра (при необходимости) и семейство процессоров.

Почему возникает ошибка и как ее воспроизвести. Если уместно, сообщите, что вы ожидали, и что произошло на самом деле.

Тестовый пример. Вы не всегда можете создать ее, но небольшая программа, демонстрирующая проблему, очень полезна.

Одним из способов обучения для разработчика является изучение исходного кода и, возможно, участие в проектах с открытым исходным кодом, использующих Mono. Кроме того, некоторые из этих проектов могут быть библиотеками кода, которые окажутся полезными в ваших собственных проектах. Вот некоторые полезные ресурсы и проекты:

Получите Mono: блокнот разработчика прямо сейчас с онлайн-обучением O’Reilly.

Члены O’Reilly проходят онлайн-обучение в режиме реального времени, а также получают книги, видео и цифровой контент от более чем 200 издателей.

Это руководство представляет собой обзор Mono и Xamarin и того, как они соотносятся с подключаемыми модулями RhinoCommon.

Проект Mono находится в активной разработке уже более десяти лет и незаметно используется во многих продуктах.

Mono и Rhino для Mac


RhinoCommon на Mac выполняется с помощью встроенной пользовательской платформы Mono. Это означает, что Rhino для Mac не использует общедоступный Mono или премиальный Xamarin.Mac. Однако различия между общедоступным MonoMac и MonoMac Rhino для Mac несущественны.

Ксамарин

Xamarin — дочерняя компания Microsoft — это компания, основанная инженерами, создавшими Mono. Xamarin является основным сопровождающим и коммерческим спонсором Mono. Xamarin предоставляет профессиональные инструменты для разработчиков, которые упрощают создание, тестирование и обслуживание межплатформенного кода. ПРИМЕЧАНИЕ. Поскольку платформа Xamarin все больше интегрируется в Microsoft, некоторые из этих заголовков могут измениться.

Платформа Xamarin

Платформа Xamarin состоит из следующих частей:

Для разработки подключаемых модулей RhinoCommon требуется только Visual Studio для Mac.

Visual Studio для Mac

Xamarin.Mac?

Rhino для Mac в настоящее время не использует Xamarin.Mac.

Поддержка Visual Studio для Windows?

Xamarin предлагает расширение Visual Studio для Windows, однако это расширение полезно только для разработки Xamarin.iOS и Xamarin.Android, не для RhinoCommon. Если вы пишете подключаемые модули RhinoCommon, вы можете свободно использовать Visual Studio для Windows, ориентируясь либо на Rhino для Mac, либо на Rhino для Windows, как обычно. Если вы хотите отладить и протестировать подключаемый модуль в Rhino для Mac, вам придется использовать Visual Studio для Mac, но вы можете использовать точно такое же решение и файлы проекта для сделай это.

Решение и проект

Visual Studio для Mac использует те же форматы, что и Visual Studio для Windows:

Важно подчеркнуть: это являются решениями и проектами Visual Studio. Решения и проекты, созданные в Visual Studio для Mac, можно открывать в Visual Studio для Windows и наоборот.

P/Вызов

Интерфейс и это

В пользовательском интерфейсе разработчики обычно сталкиваются с проблемами, связанными с зависимостями и функциями платформы. Мы используем и поддерживаем развитие Eto. Использование Eto может заставить ваш плагин выглядеть и работать как собственное приложение на всех платформах, используя единую кодовую базу пользовательского интерфейса. Eto поставляется с Rhino для Mac (и будет поставляться с Rhino 6 для Windows). Eto имеет простой в использовании API и использует собственные наборы инструментов, абстрагируя специфичные для платформы реализации для WinForms (GDI и Direct2D), WPF и Cocoa (в macOS). Несмотря на то, что Eto мощный, у него неглубокая кривая обучения, и мы уверены, что вы освоитесь так же быстро, как и мы.

Содержание

Установка

Из источника

Из исходного дерева можно использовать цель make dev для сборки Wine Mono и настроить текущий префикс Wine (по умолчанию или в соответствии с переменной среды WINEPREFIX) для использования сборки. Цель make dev-setup просто настроит префикс Wine без сборки.

Совместная установка

Для упаковщиков и пользователей с несколькими префиксами рекомендуется общая установка.

Чтобы создать общую установку, загрузите соответствующий двоичный архив с https://dl.winehq.org/wine/wine-mono/ (или соберите его из исходного кода с помощью make bin) и извлеките его в соответствующее место. .

Wine будет искать Wine Mono в следующих местах (заменив 5.0.0 ожидаемой версией):

  • c:\windows\mono\mono-2.0. Распаковывать архив здесь не рекомендуется. Если вы хотите выполнить установку в определенный префикс, воспользуйтесь приведенными ниже инструкциями по локальной установке префикса. Он включен в этот список только для того, чтобы было ясно, что установленный файл .msi имеет приоритет над другими локациями.
  • Каталог, указанный в строковом значении HKEY_CURRENT_USER\Software\Wine\Mono "RuntimePath".
  • $/доля/вино/моно/вино-моно-5.0.0 или $/../моно/вино-моно-5.0.0
  • /usr/share/вино/моно/вино-моно-5.0.0
  • /opt/вино/моно/вино-моно-5.0.0


При использовании общей установки пакет «Wine Mono Windows Support» должен быть установлен в префиксе. Это обрабатывается автоматически при обновлении префикса, поэтому обычно это не должно быть проблемой, но в некоторых крайних случаях вам может потребоваться запустить «wineboot -u», чтобы настроить это после создания общей установки.

Префикс локальной установки

Wine автоматически загрузит и установит соответствующий Wine Mono MSI при обновлении префикса, поэтому обычно в этом нет необходимости.

Если вы хотите использовать установщик MSI, отличный от того, который вы получите автоматически:

  • Получите файл MSI, который вы хотите использовать, либо с https://dl.winehq.org/wine/wine-mono/, либо запустив «make msi» в дереве сборки. Возможно, нужный файл уже есть в ~/.cache/wine.
  • Запустите "Wine Uninstaller" и удалите "Wine Mono Runtime" и "Wine Mono Windows Support", если они у вас есть.
  • Запустите "wine msiexec /i path/to/wine-mono.msi"

Обычно установщик ничего не сообщает об успешном выполнении. Вы можете снова запустить "деинсталлятор вина", чтобы убедиться, что у вас установлена ​​та версия, которую вы ожидаете.

Версии

< td>4.6.3
Версия Wine Версия Wine Mono
7.2 7.1.1< /td>
6.22 7.0.0
6.18 6.4.0< /td>
6.14 6.3.0
6.10 6.2.0< /td>
6.6 6.1.1
6.2 6.0.0< /td>
5.19 5.1.1
5.11 5.1.0< /td>
5.7 5.0.0
4.20 4.9.4< /td>
4.17 4.9.3
4.14 4.9.2< /td>
4.11 4.9.0
4.7 4.8.3< /td>
4.6 4.8.1
4.3 4.8.0< /td>
4.0-rc6 4.7.5
3.13 4.7. 3
2.14 4.7.1
2.4 4.7. 0
2.0-rc1 4.6.4
1.9.12
1.9.8 4.6.2
1.9.5 4.6.0
1.7.37 4.5.6
1.7.32 4.5.4
1.7.7 4.5.2
1.5.16 0.0.8
1.5 .5 0.0.4

Здание

Отладка

Начиная с Wine Mono 0.0.4, переменная среды WINE_MONO_TRACE может быть установлена ​​следующим образом для трассировки вызовов в Mono:

Этот параметр аналогичен параметру --trace в Mono.

Обратите внимание, что "Все сборки" включают в себя саму программу и все поставляемые с ней библиотеки. Mono способен отслеживать любые файлы .НЕТ код. Вам, вероятно, следует избегать трассировки "все", если в процессе может выполняться проприетарный код.

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

Иногда встраивание Mono может скрыть источник исключения, особенно NotImplementedException. Это можно обойти, установив MONO_INLINELIMIT=0.

Установка WINE_MONO_VERBOSE=1 отобразит адреса всех методов, скомпилированных JIT. Установка MONO_VERBOSE_METHOD=MethodName будет отображать подробную информацию о компиляции метода и переходить к отладчику, если он подключен.

Документация

Тестовый набор

Тесты можно создать с помощью команды "создать тесты" в дереве сборки или загрузить с https://github.com/madewokherd/wine-mono/releases. Цель "maketests-zip" создаст zip-файл для запуска вне дерева сборки.

Чтобы запустить полный набор тестов в Wine, используйте цель make test.

Чтобы запустить полный набор тестов в Windows, используйте run-tests.exe без аргументов.

В обоих этих методах используется набор параметров командной строки -skip-list, -pass-list и -fail-list по умолчанию, чтобы пропустить определенные ненадежные тесты и определить, какие тесты должны пройти или не пройти. Поскольку они тестируются только на машине сборки Esme и GitHub CI, и даже там они непредсказуемы, ожидайте неожиданных результатов. Переключатель -nodefaults удалит этот набор параметров командной строки по умолчанию, но это означает выполнение всех тестов, даже если они могут дать сбой, зависнуть или быть неправильными.

Конкретные имена тестов могут быть переданы в run-tests.exe в качестве аргументов, например:

Обратите внимание, что эта конкретная среда Mono предназначена только для создания компонентов Wine Mono и может неточно отражать состояние исходной версии Mono. Кроме того, многие тесты работают только в среде Win32.

Mono включает интерфейс командной строки, содержащий виртуальную машину, отвечающую за загрузку классов, JIT-компилятор (Just-in-time) и сборщик мусора; все это написано с нуля в соответствии со спецификацией ecma-334.

Происхождение моно

Mono был задуман Мигелем Де Икаса, проект в то время спонсировался его компанией Ximian; в настоящее время Novell является спонсором проекта Mono, так как Novell приобрела Ximian.

Мотивация создания Mono связана с поиском инструментов, которые помогут быстро создавать приложения в среде Linux.

Моноподдерживаемые платформы

В настоящее время Mono работает на платформах x86, PPC, SPARC и S390 в 32-разрядной версии; и x86-64 и SPARC в 64 битах; возможность создавать и запускать приложения в операционных системах: Linux, Windows, OSX, BSD и Solaris.

Последний из них — WindowsForms — требует, чтобы большая часть работы была завершена полностью. Хотя следует отметить, что проект не предусматривает создание совместимых библиотек для Enterprise Services.

Какие типы приложений я могу создавать с помощью Mono в настоящее время?

Также можно создавать приложения для доступа к базам данных, таким как Microsoft SQL, Oracle, Postgresql и т. д.

На самом деле конкретных приложений нет, если это приложение на основе интерфейса командной строки; хотя есть некоторые моменты, которые следует принять во внимание:

  1. Linux чувствителен к регистру в именах файлов и каталогов; поэтому необходимо иметь согласованность с именами, которые мы используем.
  2. Разделитель пути в Windows () и в Linux отличается (/), поэтому рекомендуется использовать API Path.DirectoryPathSeparator, чтобы получить правильный разделитель при выполнении приложения.
  3. Если используются библиотеки, отличные от CLI (например: библиотеки на C, C++ и т. д.), с помощью p/Invoke убедитесь, что библиотека существует в разных средах, в которых будет выполняться приложение.
  4. Не используйте технологии, которые существуют только в определенной среде (например, реестр в Windows или GConf в Linux -Gnome-); или предоставить решение, позволяющее приложению правильно работать в той среде, в которой оно запущено.
  5. Приложения, основанные на Windows Forms и очень сложные, в настоящее время могут не работать, поскольку Windows Forms в Mono не завершена.

Какие инструменты разработки существуют в Mono?

Ну, из Windows можно разработать приложение с помощью Visual Studio. На стороне Linux есть MonoDevelop, IDE, основанная на SharpDevelop.

MonoDevelop позволяет управлять проектом, подкрашивать синтаксис, автоматически заполнять код, компилировать и запускать приложение из одной и той же среды IDE.
За счет дополнений (надстроек) функциональность расширена, например:

  • Подключение к базам данных из IDE
  • Включение отладчика, который позволяет, подобно Visual Studio, выполнять код построчно и просматривать значения переменных.

Приложения для Mono.

Существует большое количество приложений, разработанных для Linux в Mono, чтобы получить представление, вот 2 списка этих приложений:

Обезьяна и лицензии

  • Переосуществите функциональность, чтобы избежать патента, пытаясь сохранить совместимость API.
  • Удалите то, что нельзя реализовать повторно.
  • Ищите элементы, которые могут аннулировать патент.

С другой стороны, проект Gnome разрабатывает альтернативный язык Vala, созданный специально для разработки приложений для Gnome, но свободный от потенциальных угроз со стороны Microsoft.

Моя рекомендация

Удалить моно

Я хочу удалить моно из моего дистрибутива Ubuntu (и, таким образом, сэкономить много места, которое занимают его зависимости и которые в случае Ubuntu нужны только для «поддержки» 2 приложений, установленных по умолчанию: F-Spot и Tomboy). Если вы не используете ни один из этих двух, удалите их из Synaptic, а также все пакеты с надписью Mono или CLI.

Чтобы удалить Mono в Ubuntu, вы также можете открыть терминал и ввести:

Альтернативы моно

  • Muine, Banshee >> существует множество альтернатив: Amarok, Rhythmbox, Songbird, Audacious, QuodLibet, Exile, BMP, Sonata, xmms и т. д.
  • F-Spot >>GThumb
  • Гном-до >>Медь
  • Docky >> Avant Window Manager (AWN), док-станция Cairo
  • Tombtoy >>Gnote

Подробнее

Для получения дополнительной информации о проекте Mono посетите официальный веб-сайт English, Plus monologue, который является агрегатором блогов разработчиков Mono; или на испанском языке на сайте Mono Hispano, в дополнение к блогам людей, которые поддерживают этот сайт.
Не забывайте оставлять комментарии по поводу Mono… =)

Содержание статьи соответствует нашим принципам редакционной этики. Чтобы сообщить об ошибке, нажмите здесь!.

Читайте также: