Mono framework mac os что это

Обновлено: 05.07.2024

Содержание

История

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

Лунный свет

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

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

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

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

Основные компоненты Mono:

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

Среда выполнения Mono содержит механизм выполнения кода, который переводит ECMA CIL байт-коды в собственный код и поддерживает ряд процессоров: РУКА, MIPS (только в 32-битном режиме), SPARC, PowerPC, S390 (в 64-битном режиме), x86, x86-64 и IA-64 для 64-битных режимов.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    - оболочки для родного набора инструментов macOS (Какао) (не рекомендуется). - набор привязок для программирования под macOS. - новые привязки для программирования под macOS, основанные на дизайне API MonoTouch.
  • MonoDroid. Mono для операционной системы Android. С привязками для Android API. . Моно для iPhone, iPad и iPod Touch. С привязками к API iOS.
    Плагин Visual Studio, который позволяет разработчикам Windows ориентироваться на Linux и macOS прямо из Visual Studio и интегрируется с SUSE Studio.

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

MonoDevelop

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

Xamarin.iOS и Xamarin.Android

Xamarin.iOS

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

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

Xamarin.Android

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

Лицензия

Патенты Mono и Microsoft

  • Обходите патент, используя другой метод реализации, который сохраняет API, но меняет механизм; если это невозможно, они бы
  • Удалите фрагменты кода, на которые распространяется действие этих патентов, а также
  • Найдите известный уровень техники, который сделает патент бесполезным.

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



Основной разработчик проекта 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.

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

Компоненты Mono

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

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

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

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

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

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


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

  • Компиляция «точно в срок» (JIT): время выполнения превратит байты ECMA CIL в собственный код при запуске кода.
  • Компиляция Ahead (Ahead): этот код включает коды байтов ECMA CIL (обычно они находятся в файле .exe или .dll) и генерирует собственный код, хранящийся в операционной системе, архитектуре и конкретном файле CPU (для foo. exe, он будет производить foo.exe.so в Linux). Этот режим работы компилирует большую часть кода, который обычно выполняется во время выполнения. Существуют некоторые исключения, такие как батуты и другой административный код, которые все еще требуют, чтобы JIT функционировал, поэтому изображения AOT не полностью автономны.
  • Полная статическая компиляция: этот режим поддерживается только на нескольких платформах и выполняет процесс компиляции Ahead-of-Time на один шаг дальше и генерирует все батуты, функции обертки и прокси, которые требуются для статического файла, который может быть статически связан и полностью исключает необходимость использования JIT во время выполнения. Это используется на iOS от Apple, в PlayStation 3 от Sony и операционных системах Microsoft Xbox 360.

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

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

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

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

По состоянию на октябрь 2010 года новый коллектор поколений, называемый Simple Generational GC (SGen-GC), стал доступен как часть Mono. Начиная с Mono 3.1.1 это значение по умолчанию. Для версий Mono от 2.8 до 3.1.0 пользователи могут выбрать использование сборщика мусора SGen, передав при запуске ключ -gc = sgen во время выполнения Mono. Этот новый сборщик мусора имеет много преимуществ перед традиционным консервативным сканером. Он использует коллекцию мусора для генерации, в которой новые объекты выделяются из детской, во время цикла сбора мусора все оставшиеся объекты переносятся в пул памяти старшего поколения. Идея состоит в том, что многие объекты являются временными и могут быть быстро собраны, и только несколько объектов - долгосрочные объекты, которые живут на протяжении всей жизни приложения. Чтобы повысить производительность, этот коллекционер назначает пулы памяти для каждого потока, чтобы потоки выделяли новые блоки памяти без необходимости координировать их с другими потоками. Миграция объектов из детского сада в старое поколение осуществляется путем копирования данных из детской в ​​пул старого поколения и обновления любых указателей в реальном времени, указывающих на данные, характеризующие новое местоположение. Это может быть дорогостоящим для больших объектов, поэтому SGen Mono использует отдельный пул памяти для больших объектов (Large Object Section) и использует алгоритм mark-and-sweep для этих объектов.

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

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

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

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

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

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

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

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

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

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

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

    - обертки вокруг встроенного инструментария macOS (Cocoa) (устарело). - набор привязок для программирования macOS. - новые привязки для программирования macOS, основанные на дизайне API MonoTouch.
    . Моно для операционной системы Android. С привязками для API Android.
  • MonoTouch. Моно для iPhone, iPad и iPod Touches. С привязками к API iOS.
    для Visual Studio. Плагин Visual Studio, который позволяет разработчикам Windows ориентироваться на Linux и macOS прямо из Visual Studio и интегрируется с SUSE Studio.

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

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 состоит из:

  • Разработка SDK: - используется для связывания кода, используемого в окончательном приложении; - собственный компилятор и инструмент, используемый для развертывания на целевом устройстве;
  • Инструменты интеграции интерфейса Builder;
  • Библиотеки, которые связывают родные API CocoaTouch;
  • Xamarin Studio IDE.

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 компонентов, не представленных в ECMA для стандартизации, стало источником проблем, связанных с нарушением патентных прав на протяжении большей части существования проекта. В частности, состоялось обсуждение вопроса о том, может ли Microsoft уничтожить проект Mono с помощью патентных заявок. Это обсуждение стало спорным после того, как Microsoft приобрела Xamarin - основных разработчиков Mono. В июне 2009 года Техническая комиссия Ubuntu заявила, что не видит причин исключать Mono или приложения на основе него из архива или из установочного набора по умолчанию.

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

  • Работайте над патентом, используя другую технику реализации, которая сохраняет API, но меняет механизм;
  • Удалите фрагменты кода, которые были охвачены этими патентами;
  • Найдите известный уровень техники, который сделает патент бесполезным.

Кроме того, 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


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

СОДЕРЖАНИЕ


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

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

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

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

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

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

Основные компоненты Mono:

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

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

  • Компиляция точно в срок (JIT): среда выполнения будет преобразовывать байтовые коды ECMA CIL в собственный код по мере выполнения кода.
  • Компиляция с опережением времени (AOT): этот код преобразует байт-коды ECMA CIL (обычно присутствующие в файлах .exe или .dll) и генерирует собственный код, хранящийся в файле операционной системы, архитектуры и процессора (для файла foo. exe-файл, он создаст foo.exe.so в Linux). В этом режиме работы выполняется компиляция большей части кода, что обычно выполняется во время выполнения. Есть некоторые исключения, такие как батуты и другой административный код, для работы которых по-прежнему требуется JIT, поэтому образы AOT не являются полностью автономными.
  • Полная статическая компиляция: этот режим поддерживается только на нескольких платформах и продвигает процесс предварительной компиляции на один шаг вперед и генерирует все необходимые трамплины, оболочки и прокси-серверы в статический файл, который может быть статически связан с программа и полностью устраняет необходимость в JIT во время выполнения. Это используется в операционных системах Apple iOS , Sony PlayStation 3 и Microsoft Xbox 360 . [ необходима цитата ]

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

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

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

Начиная с Mono 2.8, среда выполнения Mono поставляется с двумя сборщиками мусора : сборщиком поколений [62] и консервативным сборщиком Boehm.

С октября 2010 [Обновить] года сборщик нового поколения под названием Simple Generational GC (SGen-GC) стал доступен как часть Mono. Начиная с Mono 3.1.1 это значение по умолчанию. Для версий Mono от 2.8 до 3.1.0 пользователи могут выбрать использование сборщика мусора SGen, передав --gc=sgen переключатель в среду выполнения Mono при запуске. [62] Этот новый сборщик мусора имеет много преимуществ перед традиционным консервативным сканером. Он использует поколенческую сборку мусора там, где новые объекты выделяются из питомника, во время цикла сборки мусора все уцелевшие объекты переносятся в пул памяти более старого поколения. Идея состоит в том, что многие объекты являются временными и могут быть быстро собраны, и лишь небольшая часть объектов является долгосрочными объектами, которые живут в течение всей жизни приложения. Для повышения производительности этот сборщик назначает пулы памяти каждому потоку, чтобы позволить потокам выделять новые блоки памяти без необходимости координировать свои действия с другими потоками. Миграция объектов из питомника в старое поколение выполняется путем копирования данных из питомника в пул старого поколения и обновления любых активных указателей, которые указывают на данные, чтобы они указывали на новое местоположение. Это может быть дорого для больших объектов, поэтому Mono 's SGen использует отдельный пул памяти для больших объектов (раздел больших объектов) и использует алгоритм маркировки и очистки для этих объектов.

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

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

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

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

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

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

    - оболочки для собственного инструментария macOS ( Какао ) (устарело). - набор привязок для программирования под macOS. - новые привязки для программирования под macOS, основанные на дизайне API MonoTouch.
  • MonoDroid. Mono для операционной системы Android. С привязками для Android API. . Моно для iPhone, iPad и iPod Touch. С привязками к API iOS.
    модуль Visual Studio, который позволяет разработчикам Windows ориентироваться на Linux и macOS прямо из Visual Studio и интегрируется с SUSE Studio .

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

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

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

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

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

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

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

Можете ли вы помочь мне разобраться во всех этих терминах, и если мои ожидания реалистичны?

Necromancing.
Предоставление актуального ответа.

Кроме того, поскольку он все еще относительно новый, не все основные библиотеки были портированы (пока), и я сомневаюсь, что некоторые из них когда-либо будут портированы.
Поддержка изображений также сомнительна в лучшем случае.
Для любого шифрования используйте BouncyCastle.

Можете ли вы помочь мне разобраться во всех этих терминах и, если мои ожидания реалистичны?

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

Вы можете запустить

С другой стороны, производительность определенно улучшилась:

PS:

Если вы использовали его на Windows, вы, вероятно, никогда не видели это:

Когда я пишу о своем опыте с моно 2.x, 3.x и 4.x, это также не обязательно означает, что эти проблемы не были решены ни к настоящему времени, ни к тому времени, когда вы читаете это, ни к тому, если они Исправлено: теперь не может быть регрессии, которая вновь вводит какие-либо из этих ошибок/функций. Это также не означает, что если вы внедрите моно-среду выполнения, вы получите те же результаты, что и при использовании (dev) системы моно-среды выполнения. Это также не означает, что внедрение моно-времени выполнения (где угодно) обязательно бесплатно.

Вы выбрали не только реалистичный путь, но, возможно, одну из лучших экосистем, сильно поддерживаемых (также X-платформы) MS. Тем не менее вы должны учитывать следующие моменты:

Я надеюсь, что это поможет

Чтобы быть простым,

Mono Develop = Компилятор + IDE

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