Что такое моно программа

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

Mono — это платформа разработки с открытым исходным кодом, основанная на .NET Framework, которая позволяет разработчикам создавать кроссплатформенные приложения с повышенной производительностью разработчика. Реализация Mono .NET основана на стандартах ECMA для C# и Common Language Infrastructure.

Поддерживаемый ранее Novell, Xamarin, а теперь Microsoft и .NET Foundation, проект Mono имеет активное и увлечённое сообщество разработчиков. Mono включает в себя как инструменты разработчика, так и инфраструктуру, необходимую для запуска клиентских и серверных приложений .NET.

Там вы можете скачать все инструменты для разработки.

Моно состоит из следующих компонентов:

  • Компилятор C# — Компилятор Mono C# является полнофункциональным для C# 1.0, 2.0, 3.0, 4.0, 5.0 и 6.0 (ECMA).
  • Mono Runtime — среда выполнения реализует инфраструктуру общего языка ECMA (CLI). Среда выполнения предоставляет компилятор точно в срок (JIT), компилятор с опережением времени (AOT), загрузчик библиотек, сборщик мусора, потоковую систему и функциональные возможности взаимодействия.
  • Библиотека классов .NET Framework — Платформа Mono предоставляет полный набор классов, которые обеспечивают прочную основу для создания приложений. Эти классы совместимы с классами Microsoft .NET Framework.
  • Библиотека классов Mono — Mono также предоставляет множество классов, которые выходят за рамки базовой библиотеки классов, предоставляемой Microsoft. Они предоставляют дополнительные функциональные возможности, которые полезны, особенно при создании приложений Linux. Некоторыми примерами являются классы для Gtk+, Zip-файлов, LDAP, OpenGL, Cairo, POSIX и т.д.

Основные свойства проекта:

Внешние программы, которые можно подключить к программе

  • Мультиплатформенный . Работает на Linux, macOS, BSD и Microsoft Windows, включая x86, x86-64, ARM, s390, PowerPC и многие другие.
  • Многоязычный . Разрабатывайте на C# 4.0 (включая LINQ и dynamic), VB 8, Java, Python, Ruby, Eiffel, F#, Oxygene и других.
  • Двоичная совместимость . Построен на основе реализации инфраструктуры общего языка ECMA и C#.
  • Совместимый с Microsoft API . Запускайте приложения ASP.NET, ADO.NET, Silverlight и Windows.Forms без перекомпиляции.
  • Открытое программное обеспечениес открытым исходным кодом, свободное программное обеспечение . Среда выполнения Mono, компиляторы и библиотеки распространяются с использованием лицензии MIT.
  • Всесторонний технологический охват . Привязки и управляемые реализации многих популярных библиотек и протоколов.

Выбор Mono для разработки приложений имеет много преимуществ:

  • Популярность — Благодаря успеху .NET миллионы разработчиков имеют опыт создания приложений на C#. Существуют также десятки тысяч книг, веб-сайтов, руководств и примеров исходного кода, которые помогут справиться с любой мыслимой проблемой.
  • Программирование более высокого уровня — все языки Mono извлекают выгоду из многих функций среды выполнения, таких как автоматическое управление памятью, обобщенные функции и многопоточность. Эти функции позволяют вам сосредоточиться на написании вашего приложения вместо написания кода системной инфраструктуры.
  • Библиотека базовых классов — Наличие обширной библиотеки классов предоставляет тысячи встроенных классов для повышения производительности. Нужен код сокета или хэш-таблица? Нет необходимости писать свой собственный, поскольку он встроен в платформу.
  • Кроссплатформенный — Mono создан для того, чтобы быть кроссплатформенным. Mono работает на Linux, Microsoft Windows, macOS, BSD и Sun Solaris, Nintendo Wii, Sony PlayStation 3, Apple iPhone и Android. Он также работает на x86, x86-64, IA64, PowerPC, SPARC (32), ARM, Alpha, s390, s390x (32 и 64 бита) и других платформах. Разработка вашего приложения с помощью Mono позволяет вам работать практически на любом существующем компьютере.
  • Common Language Runtime (CLR) — CLR позволяет вам выбрать язык программирования, с которым вам больше всего нравится работать, и он может взаимодействовать с кодом, написанным на любом другом языке CLR. Например, вы можете написать класс на C#, наследовать от него в VB.NET, и использовать его в Eiffel. Вы можете выбрать написание кода в Mono на различных языках программирования.
  • Написание сценариев и встраивание — Среда выполнения Mono также может использоваться для написания сценариев ваших приложений путем встраивания её в другие приложения, что позволяет запускать управляемый код и скрипты в собственном приложении.
Читайте также:
Инфо бухгалтер описание программы

С платформой Mono можно использовать несколько языков. Проект Mono предоставляет компиляторы C#, Basic и Ilasm, и существуют как компиляторы с открытым исходным кодом, так и коммерческие компиляторы, которые можно использовать с Mono.

ЧТО ТАКОЕ МОНО И СТЕРЕО | В ЧЕМ РАЗНИЦА?

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

Совместимые с Mono компиляторы:

  • C#
  • F#
  • Java
  • Scala
  • Boo
  • Nemerle
  • Visual Basic.NET
  • Python
  • JavaScript
  • Oberon
  • PHP
  • Object Pascal
  • Lua
  • Cobra
  • Synergy-DBL

В общем, если захотите поразвлечься, то этот проект — то, что надо )))

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

Источник: dzen.ru

Моно

Моно — открытая среда .Net для работы обычных и веб-приложений в среде Linux.
Первичные целевые операционные системы — российские Astra Linux, Альт, РОСА.

Программный комплекс «Моно» предоставляет средства разработки и среду исполнения, совместимые с Microsoft .Net Framework и .Net Core для операционной системы Linux. Программный комплекс создан на основе свободного ПО Mono / .Net Core и дополнительных средств, необходимых для разработки защищённых решений для российских операционных систем.

Продукт существует в двух версиях: на базе Mono и на базе .Net Core.

Средства разработки

На базе Mono

«Моно» предоставляет средства разработки для создания кросс-платформенных приложений. Приложения могут запускаться как в среде исполнения «Моно», так и других средах, совместимых с .Net Framework 4.7.

«Моно» включает все необходимые компоненты для сборки кросс-платформенных приложений:

  • компилятор Roslyn C#;
  • система сборки MSBuild;
  • стандартная библиотека .Net Framework;
  • ассемблер промежуточного кода;
  • компилятор ресурсов;
  • дизассемблер промежуточного кода;
  • инструментарий сборки пакетов RPM и DEB.

На базе .Net Core

В состав продукта входят все средства разработки, предоставляемые .Net Core.

Среда исполнения

На базе Mono

Среда исполнения обеспечивает функционирование приложений, разработанных для среды .Net. Ядро среды исполнения сертифицировано по требованиям защиты и информации и включает:

  • интерпретатор промежуточного кода;
  • набор библиотек из состава стандартной библиотеки .Net Framework;
  • библиотеку GDI+ для базовой функциональности WinForms;
  • объектно-реляционную библиотеку Entity Framework;
  • модуль Entity Framework для работы с СУБД PostgreSQL;
  • математическая библиотека Math.NET.

Ядро среды исполнения «Моно» позволяет запускать приложения, разработанные по требованиям защиты информации ФСТЭК и Минобороны России. Программный комплекс может быть использован для работы в закрытых защищённых вычислительных системах, соответствующих требованиям МО к автоматизированным системам, обрабатывающим конфиденциальную, секретную и совершенно секретную информацию.

Дополнительные инструменты среды исполнения:

  • JIT-компилятор на базе LLVM;
  • модуль Apache для запуска приложений ASP.NET;
  • библиотека Gtk#.

На базе .Net Core

В состав включены все средства .Net Core:

Безопасность

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

Я участник 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 хорош?

Ответ зависит от того, кому этот вопрос был задан.
Задавая данный вопрос простым пользователям, в ответ вы услышите «ничем», равно как и для компилятора Scheme или LOLCODE-интерпретатора.
Но задавая тот-же вопрос программистам, вы будете получать множество СОВЕРШЕННО разных ответов. Mono предоставляет хорошо сбалансированную интегрированную систему позволяющую разрабатывать открытое ПО быстро, эффективно и продуктивно.

Под словом «сбалансированный» я имею в виду беспристрастность в растановке приоритетов особенностей языка программирования — использование оперативной памяти, скорость выполнения, доступность библиотек и многое другое — он довольно хорош ВО ВСЕМ. В плане скорости, Mono гораздо быстрее чем Python — вплоть до разницы в несколько сотен раз по результатам некоторых тестов; занимает меньше памяти, если сравнивать с программами на Java; содержит современные возможности вроде сборщика мусора, который делает очень легким написание кода по сравнению с malloc()-счастливчиками C и C++.

Это хорошо сбалансированная система. Таким образом, для тех, кто собирается писать программы для среды открытого ПО, она представляет собой оправданный выбор основы для разработки. Некоторые программы, которые были созданы сравнительно недавно — например, GNOME Do — полностью используют функциональность платформы Mono, вместе с возможностью писать очень быстро и просто, в сравнении с гоняющимся SIGSEGV за человеческими ошибками неизбежными при разработке на C. Mono с самого начала задумывался как способ избежать абсолютного ужаса в поддержке большой кодовой GUI-базы C (см. Evolution).
Далее, Mono в целом позволяет более лёгкую миграцию, как для разработчиков, так и для пользователей, с ставших привычными CLR-каркасов вроде Microsoft .NET. Студенты, изучающие Visual Studio .NET в университетах, могут использовать полученные навыки и напрямую применять их для создания и улучшения свободного ПО в новых дистрибутивах Ubuntu, без необходимости изучать новый язык. Коммерческие предприятия, вложившиеся в приложения, основанные на .NET, могут задуматься над заменой ПО своих серверов и десктопов на свободное. Хотя предоставление совместимости с .NET всегда было вторичной целью, оно всегда было очень популярно и побуждало разных людей к вкладу своих сил в улучшение Mono.
Однако стоит отметить, что этот случай использования (миграция с ОС Windows) не является причиной включения Mono в стандартные дистрибутивы (в большей степени, например, чем Wine). И действительно, библиотеки, необходимые для работы большинства приложений Microsoft.NET исключены из дистрибутива Ubuntu из-за отсутствия необходимости в них.

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

  • Mono не является результатом каких-либо дел между Novell и Microsoft. Он был создан за 4 года до той неприятной сделки. Он не обсуждался в этом деле профессионально, он вообще не упоминался (так же как и другие программы). Это важно отметить.
  • Mono находится под покровительством организации OIN, как и большая часть свободных приложений. Патентные атаки против Mono несут тот же риск для нападающих, как и атаки против других участников OIN. Атаки против Mono чреваты патентной «холодной войной», которую Microsoft не сможет выиграть. Такие действия повредят их бизнесу и приведут к потере большого количества денег.
  • Mono, как уже упоминалось, реализует международный стандарт – хотя и от признанного монополиста. Если это проблема, тогда почему люди используют Си, стандарт от другого монополиста — AT в частности, люди, которые используют 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.

    Источник: habr.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru