Подтвердить что ты не робот

Моно для iOS/Android Open или Closed? Платные или бесплатные?

Я пытаюсь узнать больше о разработке мобильных/планшетов и, как разработчик .NET, я, естественно, обращается к Mono. Но я смущен - я думал, что Моно был свободным и открытым исходным кодом; однако все признаки, похоже, указывают на то, что Mono является сделкой "оплата за игру" (https://store.xamarin.com/).

Может кто-то, пожалуйста, помогите мне понять, какой правильный ответ?

Спасибо!

Matt

4b9b3361

Ответ 1

Обновление (2016/03/31)

Ответ истории

Сначала проясним случай Моно: -)

Моно бесплатно, как в свободной речи, а не бесплатное пиво. Вы можете получить его бесплатно (т.е. Без оплаты), поскольку он доступен под лицензиями с открытым исходным кодом, которые позволяют это. Но вы все равно можете заплатить за него (например, люди платили за некоторые версии Mono в Novell). Также некоторые люди не могут использовать Mono под бесплатными лицензиями с открытым исходным кодом (например, в качестве игрового движка, где источник недоступен...). В таких случаях необходима коммерческая лицензия от владельцев авторских прав.

Mono для Android - это коммерческий продукт на основе Mono и проданный Xamarin (у которого есть права на лицензию Mono). Он повторно использует много того, что достигло Mono, а также предоставляет много больше возможностей, чтобы разработчики .NET могли использовать свои навыки на платформах Android.

Наконец, оценочные версии Mono для Android бесплатны и полностью функциональны при использовании с эмулятором Android (а не с устройствами). Таким образом, вы все еще можете попробовать, научиться и наслаждаться Mono и Mono для Android, не заплатив ни копейки за Xamarin: -)

Примечание: то же самое относится к MonoTouch, который позволяет вам создавать приложения на базе .NET для iPhone/iPad (iOS) с компьютера Mac OSX.

Отказ от ответственности: Я работаю над Xamarin

Ответ 2

Как давний разработчик .Net(начиная с 1.0), я могу сказать вам, что если вы что-то другое, кроме любителя, любые деньги, которые вы тратите на MonoTouch и MonoDroid, будут выплачивать огромные дивиденды за очень короткий срок.

Существует определенная кривая обучения для пользовательского интерфейса, а внешняя управляющая среда не так уж и надежна, как и для платформ Windows, но возможность программирования с использованием инфраструктуры .Net(даже если язык С#) является неописуемым преимуществом и стоит каждого пенни, потраченного на Xamarin.

Мы смогли перенести приложение на 500 000 строк VB.Net, написанное для планшетных ОС и PocketPC на iPad менее чем за 3 месяца, включая поддержку локальной базы данных, взаимодействие с веб-сервисами и т.д. И это должно занять меньше, чем другое месяц для создания пользовательского интерфейса для Android теперь, когда у нас есть общий уровень обслуживания. В этот момент у нас будет приложение, которое будет иметь аналогичную функциональность в iOS, Android, Windows, Windows Tablet и Windows Phone. Я, конечно, не могу этого сделать с десятками тысяч долларов, которые я трачу в год в экосистеме Microsoft.

Ответ 3

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

Прежде всего, начиная с публикации Poupou, Xamarin добавила новую лицензию Community Edition на весь стек Mono/Android/iOS, который позволяет закрывать исходные дистрибутивы приложений, но эта лицензия ограничивается тем, насколько большими могут быть двоичные файлы. На практике даже некоторые приложения Hello World превышают ограничения размера бинарных файлов сообщества, поэтому, на мой взгляд, это не реальный вариант с помощью какого-либо практического определения.

Таким образом, основные библиотеки времени исполнения Mono и библиотеки времени исполнения лицензируются в соответствии с LGPL. Это затрудняет выпуск программного обеспечения с закрытым исходным кодом в хранилище приложений с использованием монопрограммы без покупки коммерческой лицензии от Xamarin, но не невозможно. Один из вариантов, который LGPL позволяет, по моему мнению, предоставить объектные файлы для вашего приложения. Это позволит пользователю повторно связать файлы объектов приложения с другой версией моно исполняемой версии, а затем установить это повторно подключенное приложение на свое устройство. Они все равно будут иметь доступ к объектным файлам, но вы все равно можете сохранить свой источник закрытым, если хотите. Я не юрист, но я думаю, что вы сможете взимать плату за эти объектные файлы и распространять их только по запросу.

Если вы хотите выпустить приложение с открытым исходным кодом с использованием моно, вы бы хорошо сделали это, потому что вы можете, конечно, выпускать не только объектный код, но и полный источник вашего приложения, позволяя пользователям переводить моно в свои собственные версии вашего приложения и, таким образом, удовлетворяя требованиям LGPL.

Теперь, вот проблема. Хотя то, что я сказал выше, верно, оно ТОЛЬКО относится к основной среде исполнения. Это из-за того, что основная моно-среда исполнения имеет лицензию с открытым исходным кодом. Вы можете быть удивлены, узнав, что ни одна из специфичных для платформы BINDINGS, которые являются библиотеками и инструментами разработчика, которые Xamarin обеспечивает для подключения вашего .net-моно-кода к, скажем, к пользовательским интерфейсам UI/системных систем android и iOS, являются с открытым исходным кодом вообще. Итак, Mono для Android и MonoTouch (и monomac?) Не являются ни бесплатными, как в свободной речи, ни бесплатными, как в бесплатном пиве. Они представляют собой 100% коммерческих продуктов. Теперь мне говорят, что вы можете запросить лицензию на совместимость с открытым исходным кодом в частном порядке, но ваш проект с открытым исходным кодом должен быть предварительно одобрен, а это значит, что вы не сможете воспользоваться опцией объектного кода для проекта с закрытым исходным кодом, а я не знаю, какие ограничения Xamarin поместили бы на такую ​​лицензию (я подозреваю, что подобные ограничения распространяются на издание сообщества).

EDIT: Исправление к вышеизложенному - Xamarin не даст вам совместимую с открытым исходным кодом лицензию для проекта с открытым исходным кодом. Вместо этого они дадут вам (как разработчику, желающему выпустить сборку приложения с открытым исходным кодом в одном из магазинов приложений), бесплатную полную лицензию Xamarin, если они смогут проверить, что ваше приложение является законным с открытым исходным кодом. Это все еще коммерческая лицензия (для одного разработчика), а не совместимая с открытым исходным кодом лицензия, поэтому эта лицензия не распространяется на других разработчиков, которые загружают код для вашего проекта и строят его. Им нужно будет приобрести собственную лицензию Xamarin, чтобы опубликовать свою версию приложения с открытым исходным кодом.

Это означает, что единственным способом воспользоваться опцией объектного кода LGPL для распространения с закрытым исходным кодом (или, действительно, для выпуска совместимого с LGPL приложения с открытым исходным кодом без разрешения Xamarin) вам нужно будет написать все ваши собственные привязки к платформе, чтобы ваше приложение могло взаимодействовать с системой или пользовательским интерфейсом каким-либо значимым образом. Koushik Dutta, от ClockworkMod, изначально начал такой проект, по крайней мере, для привязок к андроидам, до выпуска Xamarin для Mono для Android. Он отказался от проекта после выпуска Xamarin, но код по-прежнему доступен здесь: https://github.com/koush/androidmono

Если бы кто-то создавал набор привязок android/iOS для Mono и выпускал их под разрешительной лицензией с открытым исходным кодом, например MIT/X11, тогда приложения могли обойти Xamarin и выпускать приложения под опцией объектного файла для соответствия LGPL (или просто освободите код, если это приложение с открытым исходным кодом).

Переход на один шаг GIANT далее - если вы посмотрите на разбивку основного монолитического лицензирования, вы заметите, что только лицензионная версия ядра и ее библиотеки лицензируются под LGPL. Почти все библиотеки классов уже используют разрешительную лицензию, такую ​​как MIT/X11, или другую форму Apache или MS-PL. Это означает, что, если гипотетически, помимо создания каких-либо разрешительных привязок с открытым исходным кодом для android/iOS, кто-то должен был начать с нуля и переписать основные моно исполняемые и исполняемые библиотеки (все части LGPL), используя более разрешительные лицензия, то гипотетическая версия моно (я называю это "MonoLibre", когда я мечтаю об этом) может быть встроена в приложение с закрытым исходным кодом, бесплатно, не выпуская объектные файлы, открывать источники вашего приложения, оплачивать Xamarin что угодно или попросите Xamarin получить разрешение на распространение вашего приложения с открытым исходным кодом. Xamarin может продолжать продавать "коммерческую" моно исполняемую версию, но MonoLibre может продолжать использовать все те же библиотеки классов и даже тот же самый компилятор.

Ответ 4

Моно само бесплатно. Это не значит, что все написанное с помощью моно бесплатно. Как и для mono для android. Кто-то нашел время, чтобы написать программное обеспечение, которое делает моно работу с Android. Просто потому, что он написан в моно, не означает, что они должны делиться им бесплатно. Единственное, что им нужно поделиться, это любые изменения, внесенные в моно. Просто потому, что андроид является бесплатным и открытым, не означает, что я не могу создавать приложения и требовать, чтобы люди их покупали, чтобы использовать их.

Ответ 5

Прошло некоторое время с тех пор, как были заданы первые вопросы, но я столкнулся с полностью открытым исходным кодом под названием Monocross http://monocross.net/

Не использовал его, поэтому я не знаю, насколько он хорош.