Сегодня решил рассказать о проекте Mono, который развивается за счёт Microsoft, и кому-то может показаться интересным.
Mono - это платформа разработки с открытым исходным кодом, основанная на .NET Framework, которая позволяет разработчикам создавать кроссплатформенные приложения с повышенной производительностью разработчика. Реализация Mono .NET основана на стандартах ECMA для C# и Common Language Infrastructure.
Поддерживаемый ранее Novell, Xamarin, а теперь Microsoft и .NET Foundation, проект Mono имеет активное и увлечённое сообщество разработчиков. Mono включает в себя как инструменты разработчика, так и инфраструктуру, необходимую для запуска клиентских и серверных приложений .NET.
Официальный сайт - https://www.mono-project.com/
Там вы можете скачать все инструменты для разработки.
Моно состоит из следующих компонентов:
- Компилятор 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
- Lua
- Cobra
- Synergy-DBL
В общем, если захотите поразвлечься, то этот проект - то, что надо )))
Хотел ещё привести пример простой программы, но статья получилась и так большой. Так что в следующий раз. Подписывайтесь на канал, чтобы ничего не пропустить.