mono project что это

Почему Mono хорош

Мы с участниками социальной сети open-life.org решили сделать перевод статьи Джо Шилдза (Jo Shields) «Here we go again – why Mono doesn’t suck». В результате получилась статья «Почему Mono хорош». Копию данного перевода можно прочитать здесь: Почему Mono хорош — open-life.org
Прим.: Если кто захочет инвайт на open-life.org — стучитесь в личку

mono project что это
Я участник Debian Mono Group, Debian CLI Applications Team, и Debian CLI Libraries Team. И уже в течении года работаю над сопровождением пакетов проекта Mono и программ, которые используют его в ОС Ubuntu (и Debian). Мне хорошо известны горячие споры, угрозы и последующие переходы на личности, и сейчас я принимаю ваш «вызов». В этой статье я говорю от себя лично — не от проекта Debian, не от Ubuntu, не от Mono, и не потому, что меня попросил мой начальник.

Вам хотелось «объективного пояснения, чем хорош Mono, почему он не представляет угрозы и почему его следует включить в Ubuntu по умолчанию»? — Я отвечу на эти 3 вопроса по очереди, затем предложу общий вывод к этой статье, а так же к более широкому движению «Анти-Mono». Это сообщение подписано GPG (прим. переводчика: GPG=GNU Privacy Guard — свободная альтернатива набору криптографического ПО PGP) для подтверждения факта его публикации без изменений. Оригинальный текст доступен по адресу retro.apebox.org/herewegoagain.txt чтобы каждый желающий мог проверить его подлинность самостоятельно.

Почему Mono не опасен?

Почему Mono должен быть включен в Ubuntu по-умолчанию?

Мы не хотим, чтобы Mono был установлен по-умолчанию во всех дистрибутивах. Mono — это программная платформа, а значит он не должен быть установлен у всех пользователей. Ubuntu не поставляется по-умолчанию с Java, Scheme, Assemby, LISP и различными фреймворками, просто потому, что они не интересны большинству пользователей.
Мы хотим, чтобы по-умолчанию были хорошие программы. После загрузки Ubuntu, Kubuntu, Xubuntu или другого дистрибутива пользователь должен сказать «Ух ты, Свободное ПО настолько хорошо, что я больше не нуждаюсь в Windows». Все дистрибутивы СПО, стремящиеся обрести фанатов, должны выбирать лучшие приложения. В случае с Ubuntu, командой Desktop Team было принято решение включить в дистрибутив лучшее приложение для работы с заметками и лучший фото менеджер.

Zim — высококачественный продукт, но Desktop Team решила использовать Tomboy, поскольку это приложение удобнее для многих пользователей (и сейчас Tomboy используется как стандартное приложение в этом классе)
Также Desktop Team решила, что лучшим фото-менеджером является программа F-Spot. Приложение F-Spot можно сравнить по возможностям с проприетарными приложениями iPhoto компании Apple и Picasa от Google Inc. F-Spot нельзя сравнивать с приложениями типа файл-менеджер как gThumb, поскольку одной из ключевых особенностей является возможность прикреплять к фотографии важные метаданные, но gThumb работает для каждого каталога отдельно, а не для всех фото сразу, как F-Spot.

Как Tomboy, так и F-Spot для запуска требуют Mono JITter, а также набор библиотек таких как GTK#. Таким образом, чтобы предложить эти лучшие бесплатные программы для новых пользователей (эти программы выбраны командой Ubuntu Desktop Team), часть свободного программного обеспечения нужна для запуска других приложений, как например GNOME System Monitor требует для работы GTKmm. До тех пор, пока Tomboy и F-Spot будут лучшими в своем классе, они будут включены в дистрибутив Ubuntu, а значит вместе с ними будут включены нужные для их работы библиотеки и приложения. Если же найдутся лучшие программы, то они будут включены в стандартную поставку Ubuntu, если приложение основанное на Mono будет лучше других приложений, то Mono будет включен в дистрибутив. Это мнение не основывается на предпочтении к данному фреймфорку, хотя я думаю, что разработка на языках высокого уровня таких как C# или Python гораздо быстрее и удобна, чем на C.

Пост размещенный в Linux Today

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

«Есть множество приложений и получше, которые можно включить в дистрибутив» — Пожалуйста, назовите такие приложения.

«проталкивание технологий Microsoft» — Помогите! Помогите! Нас угнетают! Нет, давайте серьёзно. Хорошая технология — это хорошая технология, а не изобретение велосипеда, который никому никогда не помогал. Среди участников Desktop Team нет профессионалов в Mono (большинство из них фанаты Python) и односторонних решений связанных с включением программ в дистрибутив не было, нету и не будет. Никто ничего не проталкивает! Ни один из пакетов связанных с Mono не был помечен как «важный» (Essential:yes).

«Включение этих програм оскверняет Ubuntu» — Демагогия. Microsoft — обычная корпорация, а не нечто сверхъестественное. Обвинение Microsoft в нечестивости и проталкивании продуктов делает им слишком много чести. Они — корпорация с огромным количеством глупых менеджеров и с редкими просветами в виде компетентных разработчиков. И ничего больше.

«Фанаты Mono разводят слишком много шума на форумах Ubuntu» — На самом деле, в этом виноваты противники Mono. Если вы говорите об обвинениях в цензуре, то вы заблуждаетесь. Те, кто читал подробности этих обвинений, могут увидеть в сообщениях грубость, угрозы, споры и прочее, а в корне всего этого были противники Mono. Ни ребячество, ни друзья среди модераторов не помогли победить в споре.

«Просто включить его в стандартный репозиторий не приемлемо.» — Это абсолютно приемлемо, хотя это не единственное выдвинутое предложение — они варьируются от реклассификации Mono в non-Free репозиторий, до его полного удаления из Debian и Ubuntu. Свободные программы должны быть в стандартном репозитории, независимо от их реализации — но если реализация какого-то приложения является лучшей, то она должна быть включена по умолчанию.

«Неспособность фанатов Mono ответить на те простые вопросы меня немного беспокоит, такое впечатление, что есть куда более важные вопросы.» — Если вы обвиняете кого-то, тогда объясните суть обвинений. Если у вас есть конкретные обвинения к людям, которые не противостоят Mono, тогда напишите их или же не распространяйте мифы.

Движение против Mono

Есть люди, которые «за» какие-то вещи. Они за свободу, или за техническое превосходство, или за спортивную команду, или за что-то другое. Есть люди, которые «против». Они против некоторых политиков, или людей определенной национальности, или чего-то другого. Некоторые люди определяют себя сторонниками чего-то, а другие противниками. Mono вызывает огромный гнев среди второй группы; в частности, люди, которые используют GNU/Linux не потому, что они «за» что-либо, а потому, что они «против» Microsoft. Это можно хорошо разглядеть в использовании слов «Microshaft» или «Micro$oft» или других детских попытках определить «их» и «нас», чтобы высмеять «их». Для них все символично: если Mono — свободное ПО, то они «за», но если оно безвозмездно получено из рук Великого Сатаны, то это непростительно.

Многие из тех, кто рекламировал себя как противник Mono, откровенно говоря, выглядят жутковато, т.к. желают смерти сотрудников Microsoft (см. комментарии к Boycott Novell), или пытаются навредить людям, которые позитивно отозвались о Mono (см. недавние замечания в списках рассылки Ubuntu), или намекают на это тем, кто с ними не согласен (практически в каждой новости Boycott Novell) — это отвратительное поведение представляет из себя наихудшую рекламу «Свободному ПО». Если люди хотят быть «против» Mono, то для этого есть разумный путь — например, работа по поддержке пакетов альтернативного ПО. Если анти-Mono движение хочет быть принято всерьез, то они должны понять, что для борьбы им необходимо хорошо знать как Mono работает и почему, для того, чтобы правильно направлять свою энергию (и крики “ZOMG! MICRO$HAFT!” имеют неверное направление). Я буду СЧАСТЛИВ увидеть высококачественные приложения для GNOME на Java или Python — такая конкуренция приведет к улучшению ПО в целом.

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

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

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

Источник

Mono и ОС МСВС

Знакомство с ОС МСВС

Итак, википедия говорит, что ОС МСВС — это Мобильная Система Вооруженных Сил. А именно, защищенная операционная система общего назначения. Разработала ее организация ВНИИНС. Система создана на базе Linux в соответствии с требованиями Министерства Обороны РФ.

В постановке задачи не была указана конкретная версия системы, поэтому, посоветовавшись с техподдержкой ВНИИНС, была выбрана наиболее актуальная на сегодняшний день ОС МСВС 5.0 ЦАВМ.11004-01 изм. №7.

Примерно месяц ушел на покупку официальной версии и еще несколько дней на подбор “железа” и установку системы. Однозначно можно сказать что ОС МСВС 5.0 не ставится на процессоры х86 и ноутбуки с 2-мя видеокартами.

Так выглядит графическая оболочка МС ОСВС:

mono project что это

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

Установка Mono

Реализации Mono существуют для следующих операционных систем: Windows, Linux, BSD (FreeBSD, OpenBSD, NetBSD), Solaris, Mac OS X, Apple iOS, Wii. Поддерживаются платформы: s390, SPARC, PowerPC, x86/x86-64, IA64, ARM, Alpha, MIPS, HPPA.

Идем на сайт проекта и видим там, что для установки нужно выполнить всего лишь 3 команды:

Первая команда добавляет ключ подписи для доступа в репозиторий, вторая настраивает репозиторй, третья инсталлирует Mono.

Программное обеспечение устанавливается в ОС МСВС (как в наследнике RHEL) в виде RPM пакетов. Для удобства этого процесса часто используется менеджер пакетов YUM. В состав ОС МСВС входит графическая оболочка менеджера пакетов, но я пользовался консольной версией. Пакеты находятся в репозиториях, которые могут находиться как на локальной машине, так и где-то в сети. Добавив ссылки на репозитории в менеджер пакетов YUM, можно довольно удобно обновлять систему. Как правило, в RHEL и его наследниках репозитории уже добавлены и настроены, однако в ОС МСВС имеется только один репозиторий, расположенный на установочном компакт-диске.

Проблемы начались уже на второй команде. Оказалось, что yum-config-manager отсутствует в системе:
mono project что это

[mono_repository]
name=mono repository
baseurl=http://download.mono-project.com/repo/centos/
enabled=1
gpgcheck=0

Однако и теперь ничего не получилось:
mono project что это

После этого репозитории заработали, как нужно:
mono project что это

Но выполнить инсталляцию Mono все равно не получается.:
mono project что это

При установке проверяются зависимости пакетов. Оказалось, что инсталляция Mono из данного репозитория требует, чтобы в системе были версии библиотек не ниже:

Можно было бы попробовать обновить все эти библиотеки, однако это может привести к проблемам в работе другого ПО, использующего их.

StackOverFlow подсказал мне другое решение: нужно попробовать поставить более раннюю версию Mono. Оказывается, существует архив версий. Опытным путем удалось определить, что самой свежей версией Mono, которая нормально ставится на ОС МСВС 5.0 ЦАВМ.11004-01 изм. №7 является версия 2.10.2. Репозиторий находится тут.

В итоге, чтобы все установить, нужно сделать следующее:

2. Выполнить команду yum install monotools-addon-server для установки основных библиотек.
3. Выполнить команду yum install mono-addon-winforms-2.10.2-5.1.x86_64 для установки библиотек winforms.
4. Выполнить команду yum install mono-addon-libgdiplus0.x86_64 0:2.10-6.2 для установки реализации GDI+.

В результате должно получиться так:
mono project что это

Кроме того, можно проверить работоспособность, запустив пару программ.

Проблемы портирования

Чтобы работать в привычной среде, я установил ту же версию Mono для Windows.

В каждой из них я добавил опцию компилятора /define MONO
mono project что это

Теперь можно использовать такую вот конструкцию:

С первого раза, конечно же, ничего не заработало. В первую очередь — получение имени процессов:

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

При этом код продолжил выполнять свою функцию.

Затем на форме “уехали” кнопки. Должно быть так:
mono project что это

А получилось так:
mono project что это

Это решилось небольшим изменением расположения элементов на форме:

В итоге пришлось переписывать весьма внушительную часть кода, заменяя автоматическую сериалиацию на “ручную” сборку класса из массива.

Результат

В результате задача была решена. Непосредственно на портирование ушло около 2-х недель. Еще где-то неделю заняли исследования процесса установки Mono. И месяц заняла покупка операционной системы.

Что дальше?

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

Но, как обычно, все поменялось на самом интересном месте. В самом разгаре работы оказалось, что ОС МСВС уже не актуальна. Нужно все делать на AstraLinux… А это уже немного другая история.

Источник

Национальная библиотека им. Н. Э. Баумана
Bauman National Library

Персональные инструменты

Mono Project

Mono

mono project что это
Разработчики:Xamarin, ранее Novell
Выпущена:30 June 2004 года ; 17 years ago ( 2004-06-30 )
Постоянный выпуск:5.0.1 / 23 May 2017 года ; 4 years ago ( 2017-05-23 ) [1]
Написана на:C, C#, XML
Операционная система:Windows, macOS, Linux
Платформа:x86-64, x86, ARM, MIPS, PowerPC, SPARC, S390, IA-64
Тип ПО:Платформенное ПО
Лицензия:GPL, LGPL, MIT
Веб-сайтhttp://www.mono-project.com/

Основной разработчик проекта Mono — корпорация Xamarin, ранее Novell. Проект возглавляет Мигель де Икаса, известный разработчик, основатель проекта GNOME. Реализации Mono существуют для следующих операционных систем: Windows, Linux, BSD (FreeBSD, OpenBSD, NetBSD), Solaris, Mac OS X, Apple iOS, Wii. Поддерживаются платформы: s390, SPARC, PowerPC, x86/x86-64, IA-64, ARM, Alpha, MIPS, HP PA. [Источник 2]

Содержание

История

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

Novell приобрела Ximian в 2003 году. После того, как Novell была приобретена Attachmate в апреле 2011 года, Attachmate объявила о сотнях увольнений работников Novell, ставя под сомнение будущее Mono.

Текущее состояние и функциональность

Moonlight

Внедрение Microsoft Silverlight с открытым исходным кодом, называемое Moonlight, было включено после Mono 1.9. Moonlight 1.0, поддерживающий API Silverlight 1.0, был выпущен 20 января 2009 года. Moonlight 2.0 поддерживает Silverlight 2.0 и некоторые особенности Silverlight 3.0. Предварительный выпуск Moonlight 3.0 был анонсирован в феврале 2010 года и содержит обновления для поддержки Silverlight 3.

Компоненты Mono

Моно состоит из трех групп компонентов:

К основным компонентам относятся компилятор C #, виртуальная машина для Common Language Infrastructure и библиотеки основных классов. Эти компоненты основаны на стандартах Ecma-334 и Ecma-335, что позволяет Mono предоставлять стандартную совместимую бесплатную виртуальную машину CLI с открытым исходным кодом. Microsoft выпустила документ, который охватывает оба стандарта в соответствии с их лицензией Community Promise.

Стек разработки Mono / Linux / GNOME обеспечивает пользователей инструментами для разработки приложений при использовании существующих в GNOME и бесплатных библиотек с открытым исходным кодом. К ним относятся: Gtk # для разработки графического интерфейса пользователя (GUI), библиотеки Mozilla для работы с механизмом рендеринга Gecko, библиотеки интеграции Unix (Mono.Posix), библиотеки подключений к базам данных, стек безопасности и язык XML-схемы RelaxNG. Gtk # позволяет приложениям Mono интегрироваться в рабочий стол Gnome в качестве родных приложений. Библиотеки баз данных обеспечивают возможность подключения к объектно-реляционной базе данных Db4o, Firebird, Microsoft SQL Server (MSSQL), MySQL, [[Open Database Connectivity (ODBC)], Oracle, PostgreSQL, SQLite и многим другим. Проект Mono отслеживает разработку компонентов базы данных на своем веб-сайте.

Архитектура Framework

Основные компоненты Mono включают:

Механизм выполнения кода

mono project что это

Генератор кода отображается в трех режимах:

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

Сборщик мусора

Начиная с Mono 2.8, Mono время выполнения осуществляется двумя сборщиками мусора: generational collector (коллектором поколений) и Boehm conservative collector (консервативным коллектором Бемом).

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

Библиотека классов

Пространства имен и сборки

Общая языковая инфраструктура и общая языковая спецификация

Спецификация общего языка (CLS) описана в главе 6 ECMA-335 и определяет интерфейс для CLI, например соглашения, подобные базовым типам для Enum. Компилятор Mono генерирует изображение, соответствующее CLS. Это общий промежуточный язык. Время выполнения Mono берет это изображение и запускает его. Стандарт ECMA формально определяет библиотеку, которая соответствует CLS в качестве основы.

Управляемый и неуправляемый код

В некоторых областях Mono имеет нововвведения с новыми расширениями основных спецификаций C # и CLI:

Кроме того, Mono доступен в различных операционных системах и архитектурах.

Системные требования

Связанные проекты

Несколько проектов расширяют Mono и позволяют разработчикам использовать его в своей среде разработки. Эти проекты включают:

Другие реализации

Portable.NET от компании Free Software Foundation был выведен из эксплуатации.

MonoDevelop

Браузер MonoDoc обеспечивает доступ к документации API и образцам кода. В браузере документации используется управление контентом в стиле wiki, что позволяет разработчикам редактировать и улучшать документацию.

Xamarin.iOS and Xamarin.Android

Xamarin.iOS и Xamarin.Android, разработанные Xamarin, являются реализациями Mono для iPhone и смартфонов на базе Android. Ранее доступный только для коммерческого лицензирования, после приобретения Microsoft Xamarin в 2016 году, сама среда исполнения Mono была переведена в соответствии с лицензией MIT, и Xamarin.iOS и Xamarin.Android стали бесплатными и открытыми.

Xamarin.iOS

Стек Xamarin.iOS состоит из:

Xamarin Studio используется в качестве основной IDE, однако были добавлены дополнительные ссылки на Xcode и iOS-симулятор.

С апреля по начало сентября 2010 года будущее MonoTouch было поставлено под сомнение, поскольку Apple представила новые условия для разработчиков iPhone, которые, по-видимому, запрещают им развиваться на языках, отличных от C, C ++ и Objective-C, и использование среднего уровня между iOS и приложениями для iPhone. Из-за этого будущее MonoTouch и других технологий, таких как Unity, было неопределенным. Затем, в сентябре 2010 года, Apple отменила это ограничение, заявив, что они ослабляют языковые ограничения, которые они установили в начале этого года.

Xamarin.Android

Xamarin.Android (ранее известный как Mono для Android), первоначально разработанный Novell и продолжаемый Xamarin, является частной версией Mono для смартфонов на базе Android. Он был впервые выпущен 6 апреля 2011 года. Mono для Android был разработан, чтобы позволить разработчикам легко писать кросс-платформенные приложения, которые будут работать на всех мобильных платформах. В интервью H-Online Мигель де Иказа заявил: «Наше видение заключается в том, чтобы позволить разработчикам повторно использовать свой код движка и бизнес-логики на всех мобильных платформах и заменять код пользовательского интерфейса для API-интерфейса, специфичного для платформы».

Стек Xamarin.Android состоит из следующих компонентов:

Лицензии

Патенты Mono и Microsoft

Если патентные вопросы когда-либо возникнут, стратегия проекта Mono для решения этих проблем выглядит следующим образом:

Кроме того, Mono также входит в список программного обеспечения, которое Open Invention Network обязуется защищать.

Руководитель проекта Fedora Пол Фриелдс заявил: «У нас есть серьезные опасения по поводу Mono, и мы продолжим рассматривать его с нашим юрисконсультом, чтобы узнать, нужны ли с нашей стороны какие-либо шаги», но «Мы не пришли к юридическому заключению, которое достаточно для того, чтобы мы решили принять Mono».

В ноябре 2011 года на саммите разработчиков Ubuntu разработчики проголосовали за удаление медиа-проигрывателя Banshee на основе Mono из установки по умолчанию Ubuntu, начиная с Ubuntu 12.04; хотя сообщаемые рассуждения включали проблемы производительности в архитектуре ARM, блокирующие проблемы в ее версии GTK + 3, и, по их мнению, «не поддерживаемая». На решение также повлияло желание удалить Mono из базы распределение, так как остальные программы, зависящие от Mono, gbrainy и Tomboy, также должны были быть удалены. Mono-разработчик Джозеф Майкл Шилдс защищал работу Banshee на ARM, а также утверждения о том, что Banshee не поддерживался в качестве «целенаправленное личное оскорбление» одному из его основных участников.

mono project что это

mono project что это

mono project что это

Программное обеспечение, разработанное с помощью Mono

Многие программы, охватывающие целый ряд приложений, были разработаны с использованием интерфейса программирования приложений Mono (API) и C #. Некоторые программы, написанные для Linux Desktop, включают Banshee, Beagle, Docky, F-Spot, Gbrainy, GNOME Do, MonoTorrent, Pinta и Tomboy.

Ряд видеоигр, таких как The Sims 3 и Second Life для своих языков сценариев, сервер виртуального мира OpenSimulator или игры, созданные с помощью движков Unity или MonoGame, также используют Mono.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *