stringtranslate.com

Моно (программное обеспечение)

Mono — это бесплатная и открытая программная среда , предназначенная для запуска программного обеспечения, созданного для .NET Framework на Linux и других ОС. Первоначально разработанная Ximian , которая была приобретена Novell , она позже была разработана Xamarin , которая была приобретена Microsoft . [4] В августе 2024 года Microsoft передала право собственности на Mono компании WineHQ . [5]

История

Стенд Mono на выставке OSCON 2009 в Сан-Хосе, Калифорния

Когда Microsoft впервые анонсировала свой .NET Framework в июне 2000 года, он был описан как «новая платформа, основанная на стандартах Интернета» [6] , а в декабре того же года базовая Common Language Infrastructure была опубликована как открытый стандарт «ECMA-335» [7] , открыв потенциал для независимых реализаций. [8] Мигель де Икаса из Ximian считал, что .NET имеет потенциал для повышения производительности программистов, и начал исследовать, осуществима ли версия для Linux. [9] Понимая, что их небольшая команда не может рассчитывать на создание и поддержку полноценного продукта, они запустили проект Mono с открытым исходным кодом 19 июля 2001 года на конференции O'Reilly .

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

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

16 мая 2011 года Мигель де Икаса объявил в своем блоге, что Mono будет продолжать поддерживаться Xamarin , компанией, которую он основал после увольнения из Novell. Первоначальная команда Mono также перешла в новую компанию. Xamarin планировала продолжить работу над Mono и планировала переписать фирменные стеки .NET для iOS и Android с нуля, поскольку в то время Novell все еще владела MonoTouch и Mono для Android. [15] После этого объявления будущее проекта было поставлено под сомнение, поскольку MonoTouch и Mono для Android находились в прямой конкуренции с существующими коммерческими предложениями, которые теперь принадлежат Attachmate , и учитывая, что команде Xamarin будет трудно доказать, что они не использовали технологии, которые они ранее разработали, когда они были наняты Novell для той же работы. [16] Однако в июле 2011 года Novell, теперь дочерняя компания Attachmate, и Xamarin объявили, что предоставили бессрочную лицензию Xamarin на Mono, MonoTouch и Mono для Android, которая официально взяла на себя управление проектом. [17] [18]

24 февраля 2016 года Microsoft объявила о подписании окончательного соглашения о приобретении Xamarin. [19]

27 августа 2024 года Microsoft передала право собственности на Mono компании WineHQ, команде разработчиков Wine , совместимого с Windows уровня. [5]

Текущее состояние и дорожная карта

Текущая версия Mono — 6.12.0 (по состоянию на июнь 2024 г. ). Эта версия предоставляет основной API .NET Framework и поддержку Visual Basic.NET и C# 7.0. LINQ to Objects , XML и SQL являются частью дистрибутива. Windows Forms 2.0 также поддерживается, но не разрабатывается активно, и поэтому его поддержка в Mono неполна. [20] Версия 4.0 была первой версией, которая включает оригинальный исходный код Microsoft, выпущенный Microsoft как часть проекта .NET Core .

По состоянию на 14 января 2021 года Mono полностью поддерживает все функции .NET 4.7, за исключением Windows Presentation Foundation (WPF) (который команда Mono не планирует поддерживать из-за объема необходимой для этого работы) [20] и Windows Workflow Foundation (WF), а также с ограниченной поддержкой Windows Communication Foundation (WCF) и асинхронного стека ASP.NET. Однако System.Web и WCF являются кандидатами на «почти немедленное» портирование из исходного кода .NET обратно в Mono. [21] Некоторые недостающие части .NET Framework находятся в стадии разработки в экспериментальном подпроекте Mono под названием Olive. [22]

Проект Mono также создал компилятор Visual Basic .NET и среду выполнения, предназначенную для запуска приложений VB.NET. В настоящее время ее разрабатывает Рольф Бьярне Квинге.

Лунный свет

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

Проект Moonlight был заброшен 29 мая 2012 года. [26] По словам Мигеля, судьбу проекта решили два фактора: Microsoft добавила «искусственные ограничения», которые «сделали его бесполезным для программирования на десктопе», и технология не получила достаточной поддержки в Интернете. Кроме того, сам Silverlight был объявлен устаревшим Microsoft к 2012 году.

Моно компоненты

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

  1. Основные компоненты
  2. Стек разработки Mono/Linux/GNOME
  3. Стек совместимости Microsoft

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

Стек разработки 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 отслеживает разработку компонентов базы данных на своем веб-сайте. [29]

Стек совместимости Microsoft предоставляет путь для переноса приложений Windows .NET на Linux . Эта группа компонентов включает ADO.NET , ASP.NET и Windows Forms , среди прочих. Поскольку эти компоненты не охватываются стандартами Ecma , некоторые из них остаются предметом патентных страхов и опасений.

Архитектура фреймворка

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

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

Среда выполнения Mono содержит механизм выполнения кода, который транслирует байт-коды ECMA CIL в машинный код и поддерживает ряд процессоров: ARM , MIPS (только в 32-разрядном режиме), SPARC , PowerPC , z/Architecture , IA-32 , x86-64 и IA-64 для 64-разрядных режимов.

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

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

Начиная с Mono 2.7 preview, больше нет необходимости выбирать один движок вместо другого во время конфигурации. Движок генерации кода можно выбрать при запуске с помощью аргументов командной строки --llvmили --nollvm, и по умолчанию используется быстрозапускающийся движок генерации кода Mono.

Начиная с Mono 5.18, поддержка LLVM является опцией конфигурации по умолчанию. Предыдущие версии требовали специального форка LLVM, но теперь mono может вернуться к своему собственному генератору кода, когда сталкивается с чем-то, что не обрабатывается LLVM. [30]

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

Начиная с Mono 2.8, среда выполнения Mono поставляется с двумя сборщиками мусора : сборщиком поколений и консервативным сборщиком мусора Boehm–Demers–Weiser . Сборщик мусора Boehm может вызывать утечки памяти в определенных классах приложений, что делает его непригодным для некоторых долго работающих серверных приложений. [31] [32] Mono перешла на Simple Generation GC (SGen-GC) в качестве сборщика по умолчанию в версии 3.1.1.

Сборщик мусора SGen имеет много преимуществ по сравнению с традиционным консервативным сканером. Он использует сборку мусора поколений , при которой новые объекты выделяются из питомника, во время цикла сборки мусора все выжившие объекты переносятся в пул памяти старого поколения. Идея заключается в том, что многие объекты являются временными и могут быть быстро собраны, и только несколько объектов являются долгосрочными объектами, которые живут в течение всей жизни приложения. Для повышения производительности этот сборщик назначает пулы памяти каждому потоку, чтобы потоки могли выделять новые блоки памяти без необходимости координировать действия с другими потоками. Миграция объектов из питомника в старое поколение выполняется путем копирования данных из питомника в пул старого поколения и обновления любых живых указателей, которые указывают на данные, чтобы они указывали на новое местоположение. Это может быть затратно для больших объектов, поэтому SGen от Mono использует отдельный пул памяти для больших объектов (раздел больших объектов) и использует алгоритм пометки и очистки для этих объектов. [31]

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

Библиотека классов предоставляет полный набор возможностей для разработки приложений. Они в основном написаны на C#, но благодаря спецификации Common Language они могут использоваться любым языком .NET. Библиотека классов структурирована в пространства имен и развернута в общих библиотеках, известных как сборки. Говоря о .NET Framework, мы в первую очередь имеем в виду эту библиотеку классов. [33]

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

Пространства имен — это механизм для логической группировки схожих классов в иерархическую структуру. Это предотвращает конфликты имен. Структура реализуется с использованием слов, разделенных точками, где наиболее распространенным пространством имен верхнего уровня является System, например System.IO и System.Net. Существуют также другие пространства имен верхнего уровня, например Accessibility и Windows. Пользователь может определить пространство имен, поместив элементы внутрь блока пространства имен.

Сборки — это физическая упаковка библиотек классов. Это файлы .dll, как и (но не путать) разделяемые библиотеки Win32. Примерами сборок являются mscorlib.dll, System.dll, System.Data.dll и Accessibility.dll. Пространства имен часто распределяются между несколькими сборками, и одна сборка может состоять из нескольких файлов.

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

Common Language Infrastructure (CLI), реализованная Common Language Runtime (CLR) , реализуется исполняемым файлом Mono. Среда выполнения компилирует и выполняет приложения .NET. Common Language Infrastructure определяется стандартом ECMA. [27] Чтобы запустить приложение, необходимо вызвать среду выполнения с соответствующими параметрами.

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

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

В родном приложении .NET/Mono весь код управляется ; то есть он регулируется стилем управления памятью и потокобезопасностью CLI. Другие приложения .NET или Mono могут использовать устаревший код, который называется неуправляемым, используя библиотеки System.Runtime.InteropServices для создания привязок C#. Многие библиотеки, которые поставляются с Mono, используют эту функцию CLI, например Gtk# .

Моноспецифичные инновации

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

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

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

Windows 7, Windows 8, Windows 8.1, Windows 10, macOS или Linux

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

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

Кроссплатформенность:

macOS:

Мобильные платформы:

Окна:

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

У Microsoft есть версия .NET 2.0, доступная только для Windows XP , которая называется Shared Source CLI (Rotor) . Лицензия Microsoft на общий исходный код может оказаться недостаточной для нужд сообщества (она явно запрещает коммерческое использование).

Проект Portable.NET , закрытый Фондом свободного программного обеспечения . [44]

MonoDevelop

MonoDevelop — это бесплатная интегрированная среда разработки, в первую очередь разработанная для C# и других языков .NET, таких как Nemerle , Boo и Java (через IKVM.NET ), хотя она также поддерживает такие языки, как C , C++ , Python и Vala . MonoDevelop изначально был портом SharpDevelop на Gtk#, но с тех пор он развился, чтобы удовлетворить потребности разработчиков Mono. IDE включает в себя управление классами, встроенную справку, автодополнение кода, Stetic (дизайнер графического интерфейса), поддержку проектов и встроенный отладчик.

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

Xamarin.iOS и Xamarin.Android

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

Xamarin.iOS

Xamarin.iOS (ранее называвшаяся MonoTouch) — это библиотека, которая позволяет разработчикам создавать приложения на основе C# и .NET, которые работают на устройствах iPhone, iPod и iPad. Она основана на фреймворке Mono и разработана совместно с Novell. В отличие от приложений Mono, «приложения» Xamarin.iOS компилируются в машинный код, предназначенный специально для Apple iPhone и iPad . [48] Это необходимо, поскольку ядро ​​iOS не позволяет компиляторам JIT выполняться на устройстве.

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

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

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

История версий

Xamarin.Android

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

В августе 2010 года представитель Microsoft Том Ханрахан из Центра технологий с открытым исходным кодом Microsoft заявил, ссылаясь на иск, поданный Oracle против Google из-за использования Android Java, что «Такого рода действия, которые Oracle предпринимает против Google из-за Java, не будут иметь место. Если бы порт .NET на Android осуществлялся через Mono, он подпадал бы под Соглашение Microsoft Community Promise ». [75] [76]

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

Моно на macOS

CocoaSharp

Cocoa# (также известный как CocoaSharp) был мостовым фреймворком для Mac OS X , который позволял приложениям, разработанным с использованием среды выполнения Mono, получать доступ к API Cocoa . Первоначально он был выпущен 12 августа 2004 года [78] и был включен в дистрибутив Mono, начиная с версии 1.0.6, выпущенной 18 февраля 2005 года. [ требуется ссылка ] Он не развивался с 2008 года [ требуется ссылка ] и в настоящее время устарел. [79]

Монобжк

Monobjc был заменой CocoaSharp. Он позволяет разработчикам .NET использовать большую часть API Mac OS X, включая Cocoa, без собственного кода, при этом сохраняя собственный пользовательский интерфейс. [ необходима цитата ]

Xamarin.Mac

Xamarin.Mac — это библиотека, которая позволяет разработчикам запускать приложения .NET и C# на Mac . [80]

Лицензия

Mono имеет двойную лицензию от Xamarin, подобно другим продуктам, таким как Qt и Mozilla Application Suite . Компилятор и инструменты Mono C# выпускаются под лицензией GNU General Public License (только GPLv2) (начиная с версии 2.0 Mono, исходный код компилятора Mono C# также доступен под лицензией MIT X11 License ), [81] библиотеки времени выполнения под лицензией GNU Lesser General Public License (только LGPLv2), а библиотеки классов под лицензией MIT License . Все они являются лицензиями свободного программного обеспечения и программного обеспечения с открытым исходным кодом , и, следовательно, Mono является свободным программным обеспечением с открытым исходным кодом .

Лицензия компилятора C# была изменена с GPL на лицензию MIT X11 [82], чтобы разрешить повторное использование кода компилятора в некоторых случаях, когда GPL это запрещала:

18 марта 2016 года приобретение Xamarin корпорацией Microsoft было официально закрыто. [83] 31 марта 2016 года на конференции Microsoft Build компания Microsoft объявила , что полностью повторно лицензирует Mono по лицензии MIT даже в тех случаях, когда ранее требовалась коммерческая лицензия, [84] и заявила, что не будет заявлять о каких-либо «применимых патентах» против сторон, которые «используют, продают, предлагают для продажи, импортируют или распространяют Mono». [85] [86] Также было объявлено, что Xamarin внесла проект Mono в .NET Foundation. [85]

Mono и патенты Microsoft

6 июля 2009 года Microsoft объявила, что она помещает свои спецификации ECMA 334 и ECMA 335 в свое Community Promise, пообещав, что они не будут отстаивать свои патенты против кого-либо, кто реализует, распространяет или использует альтернативные реализации .NET. [87] Реализация Mono тех компонентов стека .NET, которые не были представлены в ECMA для стандартизации, была источником беспокойства о нарушении патентов на протяжении большей части жизни проекта. [88] В частности, обсуждался вопрос о том, может ли Microsoft уничтожить проект Mono посредством патентных исков. [89]

Базовые технологии, представленные в ECMA, а следовательно, и специфичные для Unix/GNOME части, считаются безопасными, поскольку Microsoft явно поместила стандарты ECMA 334 ( C# ) и ECMA 335 ( CLI ) в Microsoft Community Promise . Проблемы в первую очередь касаются технологий, разработанных Microsoft поверх .NET Framework, таких как ASP.NET , ADO.NET и Windows Forms (см. нестандартизированные пространства имен ), т. е. частей, составляющих стек совместимости Mono с Windows. Эти технологии сегодня [ когда? ] не полностью реализованы в Mono и не требуются для разработки приложений Mono, они просто предназначены для разработчиков и пользователей, которым нужна полная совместимость с системой Windows.

В июне 2009 года Технический совет Ubuntu заявил, что «не видит причин исключать Mono или приложения на его основе из архива или из установочного набора по умолчанию». [90]

Ричард Столлман из Free Software Foundation заявил 2 июня 2009 года, что «[...] мы должны отговаривать людей от написания программ на C#. Поэтому мы не должны включать реализации C# в стандартную установку дистрибутивов GNU/Linux или в их основные способы установки GNOME». [91] 1 июля 2009 года Бретт Смит (также из FSF) заявил, что «патенты Microsoft гораздо опаснее: это единственная крупная софтверная компания, которая объявила себя врагом GNU/Linux и заявила о своем намерении атаковать наше сообщество с помощью патентов», «C# представляет для нас уникальную угрозу» и «The Community Promise ничего не делает, чтобы изменить что-либо из этого». [92]

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

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

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

Медиаплеер Banshee
GNOME Делать

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

Ряд видеоигр, таких как The Sims 3 и Second Life (для их скриптовых языков ), сервер виртуального мира OpenSimulator или игры, созданные на игровых движках Unity или MonoGame , также используют Mono. [95] OpenRA объединяет свои Apple Disk Image и Linux AppImages с Mono, по сути, удаляя почти все зависимости из игры. [96]

История версий

Смотрите также

Ссылки

Цитаты

  1. ^ "Mono Releases". Моно .
  2. ^ Представляем Mono на AIX и IBM i
  3. ^ "FAQ: Лицензирование" . Получено 3 июля 2020 г.
  4. ^ "Microsoft приобретает Xamarin и дает большему количеству разработчиков возможность создавать приложения на любом устройстве". Официальный блог Microsoft . 24 февраля 2016 г. Получено 24 февраля 2016 г.
  5. ^ ab Sourav, Rudra (2024-09-02). «Неожиданный шаг Microsoft по передаче проекта с открытым исходным кодом команде Wine: щедрый шаг?». Это новости FOSS . Получено 2024-09-08 .
  6. ^ Бонистил, Стивен (23 июня 2000 г.). «Microsoft не видит впереди ничего, кроме .NET». ZDNet. Архивировано из оригинала 5 ноября 2011 г. Получено 5 апреля 2011 г.
  7. ^ "ECMA-335-Часть-I-IV - ECMA-335, 1-е издание, декабрь 2001 г." (PDF) .
  8. ^ Уилкокс, Джо; Шенкленд, Стивен (28 июня 2001 г.). «Microsoft продвигается к совместному использованию кода». ZDNet.
  9. ^ "[Mono-list] Mono early history". mono-list (список рассылки). 2003-10-13. Архивировано из оригинала 2011-06-06 . Получено 2005-03-30 .
  10. ^ "Выпущена реализация OSS .NET Mono 1.0 - Ars Technica". ArsTechnica . 30 июня 2004 . Получено 2009-10-23 .
  11. ^ "Поддерживаемые платформы". Сайт Mono.
  12. ^ Koep, Paul (2011-05-02). "Сотрудники говорят, что сотни сотрудников уволены в офисе Novell в Прово". KSL-TV . Получено 07.05.2011 .
  13. ^ Vaughan-Nichols, Steven J. (2011-05-04). «Mono мертв? Novell умирает?». ZDNet . Получено 2024-08-02 .
  14. ^ Кларк, Гэвин (2011-05-03). ".NET Android и iOS клоны удалены Attachmate". The Register . Получено 2011-05-07 .
  15. ^ «Анонс Xamarin - Мигель де Икаса» . Тирания.орг. 16 мая 2011 г. Проверено 17 июля 2013 г.
  16. ^ "Смерть и возрождение Mono". infoq.com. 2011-05-17 . Получено 2011-05-29 . Даже если они его не поддерживают, они владеют продуктом, который напрямую конкурирует с будущими предложениями Xamarin. Без какого-либо юридического соглашения между Attachmate и Xamarin, последний столкнулся бы с пугающей перспективой доказательства того, что их новая разработка не использует ни одной из технологий, которые использовала старая. Учитывая, что это на самом деле просто оболочка вокруг собственного API, было бы трудно доказать, что у вас была реализация чистой комнаты, даже для команды, которая не была близко знакома с кодом Attachmate.
  17. ^ "SUSE и Xamarin объединяются для ускорения инноваций и поддержки клиентов и сообщества Mono". Novell . 2011-07-18 . Получено 2011-07-18 . Соглашение предоставляет Xamarin широкую бессрочную лицензию на всю интеллектуальную собственность, охватывающую Mono, MonoTouch, Mono для Android и Mono Tools для Visual Studio. Xamarin также будет оказывать техническую поддержку клиентам SUSE, использующим продукты на базе Mono, и возьмет на себя управление проектом сообщества с открытым исходным кодом Mono.
  18. ^ де Икаса, Мигель (2011-07-18). "Партнерство Novell/Xamarin вокруг Mono" . Получено 2011-07-18 .
  19. ^ "Microsoft приобретает Xamarin и предоставляет большему числу разработчиков возможность создавать приложения на любом устройстве". Официальный блог Microsoft . 24 февраля 2016 г. Архивировано из оригинала 24 февраля 2016 г. Получено 24 февраля 2016 г.
  20. ^ ab de Icaza, Miguel (2011-03-07). "GDC 2011" . Получено 2011-03-11 . У нас нет планов по созданию WPF. У нас просто нет рабочей силы, чтобы создать реализацию в разумные сроки (...) Для инструментов, которые в основном основаны на OpenGL/DirectX, используйте Windows.Forms, имея в виду, что может потребоваться исправление некоторых ошибок или обходные пути с их стороны, поскольку наша Windows.Forms не разрабатывается активно.
  21. ^ "Список совместимости Mono".
  22. ^ "Mono Project Roadmap - Mono". Mono-project.com . Получено 2013-07-17 .
  23. ^ "MoonlightRoadmap". Mono Team . Получено 2008-11-08 .
  24. ^ «Выпуск Moonlight 2, дорожная карта Moonlight 3 и 4 — Мигель де Икаса». Tirania.org. 2009-12-17 . Получено 2013-07-17 .
  25. ^ «Превью Moonlight 3.0 1 — Мигель де Икаса» . Тирания.орг. 03 февраля 2010 г. Проверено 17 июля 2013 г.
  26. ^ "Xamarin отказывается от своей технологии Silverlight для Linux". ZDNet .
  27. ^ ab "Ecma-335".
  28. ^ "Technet.com". Архивировано из оригинала 2013-05-23 . Получено 2009-07-07 .
  29. ^ «Доступ к базе данных — Моно».
  30. ^ "Моно LLVM". Моно .
  31. ^ ab "Compacting GC". mono-project.com . Получено 2008-12-16 .
  32. ^ Boehm, Hans-J. "Advantages and Disadvantages of Conservative Garbage Collection". Xerox PARC . Архивировано из оригинала 2013-07-24 . Получено 2008-12-16 .
  33. ^ «Архитектура .NET Framework». официальная документация Mono.
  34. ^ ab "Компилятор Mono C# как сервис в Windows. - Мигель де Икаса". Tirania.org. 2010-04-27 . Получено 2013-07-17 .
  35. ^ ab "CsharpRepl - Mono". Mono-project.com . Получено 2013-07-17 .
  36. ^ ab "Поддержка SIMD в Mono: делаем Mono безопасным для игр - Мигель де Икаса". Tirania.org. 2008-11-03 . Получено 2013-07-17 .
  37. ^ де Икаса, Мигель. «Статическая компиляция в моно».
  38. ^ "Продолжения - Моно".
  39. ^ де Икаса, Мигель. «Моновация: внедрение сборки в живые процессы».
  40. ^ «Поддерживаемые платформы — Mono».
  41. ^ Нараянасвами, Ананд (23 ноября 2012 г.). "Создание кроссплатформенных приложений с помощью Xwt". InfoQ . Архивировано из оригинала 2016-04-15 . Получено 2016-04-15 .
  42. ^ де Икаса, Мигель (22 февраля 2013 г.). "Создание Xamarin Studio". InfoQ . Архивировано из оригинала 2016-04-15 . Получено 2016-04-15 .
  43. ^ "Xwt Read Me". Xwt на GitHub . 15 января 2012 г. Архивировано из оригинала 2016-04-16 . Получено 2016-04-15 .
  44. ^ "DotGNU Project" . Получено 2 июня 2014 г.
  45. ^ "FAQ". os.xamarin.com. 2011-08-01. MonoTouch — это коммерческий продукт, основанный на проекте Mono с открытым исходным кодом и лицензируемый на основе индивидуального разработчика.
  46. ^ "Моно-лицензированный MIT" . www.mono-project.com. 31 марта 2016 г.
  47. ^ "Xamarin для всех". blog.xamarin.com. 2016-03-31. Сегодня мы объявляем о нашем обязательстве открыть исходный код Xamarin SDK для Android, iOS и Mac по лицензии MIT в ближайшие месяцы
  48. ^ "MonoTouch и iPhone 4". Приложения, созданные с помощью MonoTouch, являются нативными приложениями, неотличимыми от других нативных приложений.
  49. ^ «Apple нацеливается на Adobe… или Android?». 9 апреля 2010 г.
  50. ^ "Заявление Apple о рекомендациях по обзору App Store". На основе их предложений сегодня мы вносим некоторые важные изменения в нашу лицензию iOS Developer Program в разделах 3.3.1, 3.3.2 и 3.3.9, чтобы ослабить некоторые ограничения, введенные нами ранее в этом году. В частности, мы ослабляем все ограничения на инструменты разработки, используемые для создания приложений iOS, при условии, что полученные приложения не будут загружать какой-либо код. Это должно дать разработчикам необходимую им гибкость, сохраняя при этом необходимую нам безопасность.
  51. ^ "Отличные новости для пользователей MonoTouch". С этими новыми терминами двусмысленность исчезает, и любители и энтузиасты C# могут вернуться к использованию MonoTouch. Разработчики, которым нравится сборка мусора и их строго типизированные языки, могут возобновить свою работу.
  52. ^ де Икаса, Мигель. «MonoTouch 1.0 запущен в эксплуатацию» .
  53. ^ "MonoTouch 2.0.0". Xamarin .
  54. ^ "MonoTouch 3.0.0". Xamarin .
  55. ^ "MonoTouch 4.0.0". Xamarin .
  56. ^ "MonoTouch 5.0". Xamarin .
  57. ^ "MonoTouch 6.0". Xamarin .
  58. ^ "Xamarin.iOS 6.2". Xamarin . 28 января 2023 г.
  59. ^ "Xamarin.iOS 6.4". Xamarin . 8 июля 2022 г.
  60. ^ "iOS 7 и Xamarin: Ready When You Are". Блог Xamarin . 2013-09-18 . Получено 2021-03-20 .
  61. ^ "iOS 8 больше и лучше с Xamarin". Блог Xamarin . 2014-09-10 . Получено 2021-03-20 .
  62. ^ "Xamarin для iOS 9: Search Deeper". Блог Xamarin . 2015-09-16 . Получено 2021-03-20 .
  63. ^ "Основные обновления: iOS 10, Android Nougat и другие вкусные мелочи". Блог Xamarin . 2016-09-13 . Получено 2021-03-20 .
  64. ^ spouliot (19 сентября 2017 г.). "Заметки о выпуске Xamarin.iOS 11.0 - Xamarin". docs.microsoft.com . Получено 2021-03-20 .
  65. ^ spouliot (14 сентября 2018 г.). "Заметки о выпуске Xamarin.iOS 12.0 - Xamarin". docs.microsoft.com . Получено 2021-03-20 .
  66. ^ spouliot (13 сентября 2019 г.). "Заметки о выпуске Xamarin.iOS 13.0 - Xamarin". docs.microsoft.com . Получено 2021-03-20 .
  67. ^ spouliot (21 сентября 2020 г.). "Заметки о выпуске Xamarin.iOS 14.0 - Xamarin". docs.microsoft.com . Получено 2021-03-20 .
  68. ^ "Как лицензируется Mono для Android?". Часто задаваемые вопросы о Mono для Android. 2011-08-28 . Получено 2012-03-29 .
  69. ^ «Проект Mono от Novell переносит разработку .Net на Android». NetworkWorld.
  70. ^ "Проект Mono от Novell переносит разработку .Net на Android". InfoWorld. 16 марта 2010 г.
  71. ^ "MonoDroid: поддержка .NET появится в Android". TechieBuzz. 18 октября 2022 г.
  72. ^ "Mono для Android приносит C# на Android". Heise Online . 2011-04-07 . Получено 2011-04-07 .
  73. ^ "Novell (Mono/C#) разрабатывает MonoDroid". Сообщество Android. 18 февраля 2010 г. Это упростит разработчикам создание кроссплатформенных приложений, а также позволит перенести некоторые из существующих приложений, созданных с использованием MonoTouch, на Android.
  74. ^ "Mono для Android". H-Online. Наше видение — позволить разработчикам повторно использовать свой движок и код бизнес-логики на всех мобильных платформах и заменить код пользовательского интерфейса на API, специфичный для платформы.
  75. ^ "Microsoft не остановит (Mono) .NET на Android". TechWorld. Действия, которые Oracle предпринимает против Google из-за Java, не будут иметь место. Если бы порт .NET на Android осуществлялся через Mono, он подпадал бы под Соглашение Microsoft Community Promise.
  76. ^ «Microsoft заявляет, что .NET на Android безопасен, никаких судебных разбирательств, как в случае с Oracle». Разработчик Fusion.
  77. ^ "Xamarin Designer для Android". Visual Studio Magazine. 14 мая Xamarin анонсировала Mono для Android 4.2.
  78. ^ «Cocoa# развивается; доступны первые скриншоты – OSnews».
  79. ^ "macOS | Mono". www.mono-project.com . Получено 2023-02-04 .
  80. ^ davidortinau. "Xamarin.Mac - Xamarin". learn.microsoft.com . Получено 2023-02-04 .
  81. ^ "Mono C# Compiler Under MIT X11 License". Novell Inc. 2008-04-08. Архивировано из оригинала 2008-05-13 . Получено 2008-04-09 .
  82. ^ де Икаса, Мигель. «Компилятор Mono C# теперь также имеет лицензию MIT X11».
  83. ^ "Xamarin для всех". Блог Xamarin . Xamarin. 31 марта 2016 г. Архивировано из оригинала 2016-04-12 . Получено 2016-04-12 .
  84. ^ Андерсон, Тим (31 марта 2016 г.). «Microsoft сделает инструменты и код Xamarin бесплатными и с открытым исходным кодом». The Register .
  85. ^ ab Ferraira, Bruno (31 марта 2016 г.). «Xamarin теперь поставляется бесплатно с Visual Studio». Tech Report .
  86. ^ "Microsoft Patent Promise for Mono". Mono на GitHub . Проект Mono. 2016-03-28. Архивировано из оригинала 2016-04-12 . Получено 2016-04-12 .
  87. ^ "Стандарты ECMA C# и CLI". Порт 25. 6 июля 2009 г. Архивировано из оригинала 23 мая 2013 г. Получено 7 июля 2009 г. В соответствии с Community Promise компания Microsoft гарантирует, что не будет предъявлять свои Необходимые требования к любому, кто создает, использует, продает, предлагает для продажи, импортирует или распространяет любую Охваченную реализацию в рамках любого типа модели разработки или распространения, включая модели лицензирования с открытым исходным кодом, такие как LGPL или GPL.
  88. ^ Бабкок, Чарльз (7 августа 2001 г.). «Зацепится ли открытый исходный код за .Net?». ZDNet Asia.
  89. Смит, Бретт (16 июля 2009 г.). «Пустое обещание Microsoft». fsf.org.
  90. ^ "Заявление о позиции Mono". Canonical Ltd. 30 июня 2009 г. В индустрии программного обеспечения принято регистрировать патенты в качестве защиты от судебных разбирательств, а не как намерение вести судебный процесс. Таким образом, само существование патента без заявления о нарушении не является достаточным основанием для исключения из проекта Ubuntu.
  91. ^ «Почему свободное программное обеспечение не должно зависеть от Mono или C#».
  92. ^ «Пустое обещание Microsoft».
  93. ^ "Fedora обеспокоена Mono". internetnews.com. 12 июня 2009 г. Архивировано из оригинала 19 июня 2009 г. Получено 4 июля 2010 г. Мы не пришли к юридическому выводу, который был бы достаточно хорош для нас, чтобы принять решение об исключении Mono
  94. ^ "'Bansheegeddon' может увидеть Banshee, Mono выведен из Ubuntu по умолчанию". ITWorld . Архивировано из оригинала 10 июля 2015 г. Получено 31 августа 2015 г.
  95. ^ "Компании, использующие Mono". Mono-project . Получено 30 августа 2015 г.
  96. ^ Пол Чот: OpenRA: Playtest 20190825, 25 августа 2019 г.
  97. ^ "Mono Releases". Mono-project.com . Получено 2015-04-04 .
  98. ^ "OldReleases". Mono-project.com . Получено 2013-07-17 .
  99. ^ "Mono 1.0 Release Notes". Mono-project.com . Получено 2013-07-17 .
  100. ^ "Mono 1.1.1: Development Release". Mono-project.com . Получено 2013-07-17 .
  101. ^ "Mono 1.2: Заметки о выпуске". Mono-project.com . Получено 2013-07-17 .
  102. ^ "Заметки о выпуске Mono 2.0". Mono-project.com. 2008-10-06 . Получено 2013-07-17 .
  103. ^ "Заметки о выпуске Mono 2.2". Mono-project.com . Получено 2013-07-17 .
  104. ^ "Линейный ИК - Моно". Mono-project.com . Получено 2013-07-17 .
  105. ^ "Заметки о выпуске Mono 2.4". Mono-project.com . Получено 2013-07-17 .
  106. ^ "Заметки о выпуске Mono 2.6". Mono-project.com . Получено 2013-07-17 .
  107. ^ "Заметки о выпуске Mono 2.8". Mono-project.com . Получено 2013-07-17 .
  108. ^ "Заметки о выпуске Mono 2.10". Mono-project.com . Получено 2013-07-17 .
  109. ^ "Заметки о выпуске Mono 3.0". Mono-project.com . Получено 2013-09-23 .
  110. ^ "Заметки о выпуске Mono 3.2". Mono-project.com . Получено 2013-09-23 .
  111. ^ "Заметки о выпуске Mono 3.4". Mono-project.com . Получено 2015-04-04 .
  112. ^ "Заметки о выпуске Mono 3.6". Mono-project.com . Получено 2015-04-04 .
  113. ^ "Заметки о выпуске Mono 3.8". Mono-project.com . Получено 2015-04-04 .
  114. ^ "Заметки о выпуске Mono 3.10". Mono-project.com . Получено 2015-04-04 .
  115. ^ "Заметки о выпуске Mono 3.12". Mono-project.com . Получено 2015-04-04 .
  116. ^ "Заметки о выпуске Mono 4.0". Mono-project.com . Получено 2015-05-03 .
  117. ^ "Заметки о выпуске Mono 5.0". Mono-project.com . Получено 2017-05-13 .
  118. ^ «Заметки о выпуске Mono 5.2.0».
  119. ^ «Заметки о выпуске Mono 5.4.0».
  120. ^ «Заметки о выпуске Mono 5.8.0».
  121. ^ «Заметки о выпуске Mono 5.10.0».
  122. ^ «Заметки о выпуске Mono 5.12.0».
  123. ^ «Заметки о выпуске Mono 5.14.0».
  124. ^ «Заметки о выпуске Mono 5.16.0».
  125. ^ «Заметки о выпуске Mono 5.18.0».
  126. ^ «Заметки о выпуске Mono 5.20.0».
  127. ^ «Заметки о выпуске Mono 6.0.0».
  128. ^ «Заметки о выпуске Mono 6.4.0».
  129. ^ «Заметки о выпуске Mono 6.6.0».
  130. ^ «Заметки о выпуске Mono 6.8.0».
  131. ^ «Заметки о выпуске Mono 6.10.0».
  132. ^ «Заметки о выпуске Mono 6.12.0».

Источники

Внешние ссылки