Является ли MonoMac устаревшим?

Страница для MonoMac кажется заброшенной. Кажется, последний раз он обновлялся несколько лет назад, потому что в нем говорится, что «Горный лев» — это «новая» операционная система.

Новые API Lion и Mountain Lion для AppKit

И MonoMac находится в разделе «Не поддерживается» в Xamarin Studio (я хотел загрузить Mono Develop, но страница автоматически была перенаправлена ​​​​в Xamarin Studio).

Итак, MonoMac устарел или все еще активно разрабатывается вместе с Xamarin.Mac?


person Damn Vegetables    schedule 25.01.2015    source источник
comment
подумайте об изменении принятого ответа, чтобы идти в ногу со временем;)   -  person ympostor    schedule 18.02.2017


Ответы (4)


Разница не очень хорошо выражена; они даже сами плохо работают на форумах. И MonoMac не был особенно активен в прошлом году.

Но быстрый ответ заключается в том, что MonoMac живет. «Не поддерживается» просто означает, что вы не приобрели лицензию Xamarin, поэтому не ожидайте, что служба поддержки клиентов Xamarin поможет, если что-то сломается. Но вы уже были в этой лодке до того, как появился Xamarin.Mac.

Обратите внимание, что среда выполнения Mono qua с открытым исходным кодом все еще находится в активной разработке. Вы также можете загрузить MonoDevelop для Linux, например, какой тип имитирует, где MonoMac был до Xamarin начать продажу лицензий. Сама MonoDevelop все еще довольно активна, и на момент написания этой статьи регистрация прошла 13 дней назад. Итак, Mono все еще жив и фактически является подмножеством всех программных продуктов Xamarin.

Два отличия Mono-on-Mac заключаются в том, что вы можете использовать MonoMac AppKit и т. д., сборки и активную версию Xamarin Studio для разработки на Mac, а не зацикливаться, скажем, на Gtk# и МоноДевелопмент. Это Очень Хорошие Вещи.

MonoMac является своего рода эквивалентом "начальной" версии Xamarin для Xamarin.Mac.

Но это лучше. «Стартовая версия» двух других поддерживаемых платформ Xamarin — Xamarin.iOS и Xamarin.Android — имеет "лимиты сборки", которые ограничивают размер приложения (включая ссылки), которое вы можете создать, прежде чем вам потребуется покупать лицензию. Не так с MonoMac. Итак, MonoMac-через-Xamarin Studio — это своего рода «Стартовая версия на стероидах». На MonoMac вы можете создать приложение любого размера и выпустить его в открытый доступ.

Проблема? Проекты MonoMac, по сути, предполагают, что у вашего пользователя на Mac установлена ​​среда выполнения Mono, и он будет открывать вашу сборку с помощью команды mono в командной строке — точно так же, как вы делали со «старым» MonoMac. Это не очень гладко, если вы хотите ориентироваться на обычных конечных пользователей. Вы можете использовать BockBuild, чтобы сделать что-то похожее на объединение приложений Xamarin.Mac без лицензии (вот как BockBuild во всяком случае используется Banshee) для создания автономных пакетов приложений, но я не уверен, насколько универсальный BockBuild еще.

Однако... В двух других "начальных" версиях вы действительно получаете хороший, готовый к развертыванию пакет приложений. То есть, если вы заплатили Apple 99 долларов за то, чтобы стать разработчиком Apple и создать небольшое приложение Xamarin.iOS на Starter, вы можете сразу же развернуть это приложение в iOS App Store, не платя за лицензию Xamarin.iOS. Итак, в этом смысле MonoMac хуже, чем версия Starter в другом месте.

Исторические догадки (мой разум немного затуманен): Это было примерно в то время, когда Упаковщик MonoMac показал, что Xamarin.Mac выпущен и MonoMac через MonoDevelop "умер". Люди выпускали приложения MonoMac в Mac App Store (iirc), но Xamarin предпочел бы, чтобы вы купили лицензию для этого сегодня, и поддержка MonoMac Packager с открытым исходным кодом (?) умерла< /strong>, поглощенный Xamarin.Mac. Я считаю, что суть в том, что Xamarin понимает, что они начали с MonoMac с открытым исходным кодом, и если они перестанут поддерживать разработку для Mac (то есть если они уменьшат его полезность по сравнению с нашими ожиданиями до Xamarin), был бы некоторый отпор.

EDIT: Еще несколько исторических ссылок. Cocoa#, выпущенный в 2004 году и продолжавшийся до 2008 года, предшествовал и, по словам Мигеля, сообщил о создании MonoMac. CocoaSharp также какое-то время выпускался с Mono. Я знаю, что иногда смешивал в голове MonoMac и Cocoa#. MonoMac кажется, родился примерно в 2010 году, после монотач.

Со стороны Xamarin очень мило позволить нам сохранить MonoMac в их новейшей версии Xamarin Studio и продолжать получать выгоду от обновлений, которые они выполняют для основного набора функций Mac.

Таким образом, Xamarin.Mac построен на основе MonoMac, и в некотором смысле он не может не поддерживаться. Единственный вопрос заключается в том, как долго Xamarin позволяет нам использовать «неподдерживаемый» проект MonoMac для создания столь большого приложения, как мы хотим, и не заменять MonoMac «начальной» версией, похожей на X.iOS и X.Android. Я надеюсь, что они продолжат поступать правильно и не лишат нас возможности, которую дало нам первоначальное сообщество Mono с открытым исходным кодом: для любого, кто может создавать полнофункциональные приложения с родными пользовательскими интерфейсами Mac с помощью C#.

Это кажется немного бессвязным, но я надеюсь, что это помогло. Существует MonoMac, и Xamarin.Mac является надстройкой над ним. Опять же, большим преимуществом покупки Xamarin.Mac является пакет приложений, но также есть несколько дополнительных сборок (Джеймс перечисляет некоторые из них ниже: «GameKit, StoreKit и т. д.») и, как также отмечает Джеймс, поддержка 64-разрядных систем. Xamarin не очень хорошо продвигает эти преимущества.

Однако суть вашего вопроса в том, что вы не должны чувствовать, что MonoMac — гражданин второго сорта. На самом деле сейчас вы находитесь в довольно хорошем положении, чтобы создать такое сложное приложение для Mac, как вам хотелось бы.

person ruffin    schedule 26.01.2015
comment
Водяной знак комментария сказал мне избегать комментария типа «спасибо», но я должен поблагодарить вас за подробное объяснение. - person Damn Vegetables; 26.01.2015
comment
Благодаря новому Unified API Xamarin.Mac сильно отличается от MonoMac. Теперь он ближе к Xamarin.iOS. Я бы сказал, что ваш ответ был идеальным, если бы вопрос был задан 6 месяцев назад. - person Mike James; 26.01.2015
comment
Я не тот, кто проголосовал за ваш пост, но явно есть вещи, которые вы пропустили, например объявление об унифицированном API. Кроме того, я считаю, что MonoMac следует считать полностью мертвым в пользу Xamarin.Mac. - person Lex Li; 07.05.2016
comment
@LexLi Прекратил ли Xamarin.Mac сборку на основе MonoMac? Если это так, это, безусловно, интересно, и его стоит добавить в качестве нового ответа, если у вас есть 411. И, как упомянул Майк Джеймс, я не особо касался 64-битной версии, поскольку этот вопрос был конкретно о том, что MonoMac устарел. Я не думал, что он так устарел, как спрятан под Xam.Mac. Я все еще пишу приложения для MonoMac, например. И, Лекс, у вас есть хорошие ответы о Xamarin в других местах — позвольте мне призвать вас добавить ответ здесь! Этому уже больше года, и вам может понадобиться более подробная информация, если она у вас есть. - person ruffin; 07.05.2016
comment
То же самое с недавними отрицательными голосами - скажите мне, чего не хватает, и я смогу улучшить ответ! Помоги мне помочь тебе и все такое. ;^) - person ruffin; 18.02.2017

Как говорит @Lex:

31 марта 2016 г. Microsoft/Xamarin объявили о плане открытого исходного кода Xamarin SDK, а 27 апреля 2016 г. код был опубликован на GitHub, http://open.xamarin.com. Так что теперь вы должны полностью отказаться от MonoMac и использовать Xamarin.Mac.

Затем MonoMac устаревает (в пользу Xamarin.Mac/iOS, который также является открытым исходным кодом). и бесплатно). Это было подтверждено Мигелем в списке рассылки. .

person user1623521    schedule 08.05.2016

Обновление:

Microsoft приобрела Xamarin и создала Xamarin.Mac OSS. Если вы хотите создавать приложения для Mac с помощью C#, вам следует использовать Xamarin.Mac. MonoMac не будет активно развиваться, поскольку Xam.Mac доступен всем бесплатно.

Я думаю, что есть три вещи, которые можно сравнить с разработкой C# для Mac. У нас есть MonoMac, Xamarin.Mac Classic и Xamarin.Mac Unified. Все они разные, но классическая и унифицированная версия, пожалуй, самая большая разница для разработчиков.

MonoMac начинался как проект с открытым исходным кодом, созданный на хакатоне выходного дня. Чуть позже Xamarin предложил расширенный набор MonoMac под названием Xamarin.Mac. Он содержал более широкий набор API (GameKit, StoreKit и т. д.), которые недоступны в MonoMac. Xamarin.Mac также предоставляет коммерческую лицензию на Mono и позволяет публиковать в Mac AppStore. Если вы заинтересованы в MonoMac, вы можете скачать репозиторий с GitHub и приступить к работе над проектом.

В течение последних 18 месяцев мы работали над объединением ядер наших продуктов для iOS и Mac, исправляя при этом некоторые проблемы (орфографические ошибки в методах и свойствах и т. д.) и добавляя поддержку 64-разрядных систем. Эта новая версия Xamarin.Mac также содержит новый сборщик мусора и некоторые новые типы данных. Причина, по которой мы сделали это, заключается в том, чтобы обеспечить больше совместного использования кода между проектами Xamarin.iOS и Xamarin.Mac, а также для поддержки последних выпущенных Apple API, которые являются только 64-разрядными.

В качестве примера: если вы хотите использовать MapKit на Mac, вам необходимо использовать Unified API, так как это только 64-битный API.

Если вы разработаете свое приложение сегодня с помощью MonoMac, у вас будет простой процесс обновления до Unified API, если вы хотите разместить свое приложение в Mac App Store. Вы также должны посмотреть, какие API, по вашему мнению, вам понадобятся. Как правило, любые новые API в версии 10.10, скорее всего, потребуют нового Unified API и, следовательно, Xamarin.Mac.

person Mike James    schedule 26.01.2015
comment
Спасибо, Майк Джеймс, сотрудник Xamarin! Но вопрос был не в том, что нового в Xamarin.Mac. Это текущее состояние MonoMac. Если Xamarin.Mac 2014 изменяет то, что делает unsupported MonoMac project, расскажите нам о различиях! Ребята, мне нравится то, что вы делаете, но, как и в треде, указанном выше (и в котором вы участвовали), Xamarin не имеет не сделал состояние MonoMac особенно ясным. Скажите, есть ли массовые отклонения от проектов MonoMac и в чем они заключаются. Послушайте, ребята, вы мне действительно нравитесь, но ваш ответ немного продает. - person ruffin; 26.01.2015
comment
Я рассматривал возможность переноса своего существующего приложения WPF на OS X, поэтому меня не особо волновали Unified API или Xamarin.iOS. - person Damn Vegetables; 26.01.2015
comment
Вы правы, что MonoMac не поддерживается, но это потому, что это проект с открытым исходным кодом. Я обновил свой ответ, чтобы предоставить немного больше информации о Xamarin.Mac. Это не так просто, как сравнивать Xamarin.Mac с MonoMac, потому что Xamarin.Mac имеет как классический API (который очень похож на MonoMac), так и унифицированный API, который сильно отличается. У нас есть много документов о том, чем отличается наш Unified API, поэтому я не буду перечислять все. - person Mike James; 27.01.2015
comment
@Michael - Извините, я специально спрашивал не о X.Mac, а о том, изменится ли MonoMac как своего рода эквивалент Starter для X.Mac (поскольку там нет лицензии Starter). Ребята, очень мило с вашей стороны разрешить нам использовать Xamarin Studio для разработки на MonoMac с легким переходом на разработку для X.Mac позже, если мы захотим. Однако если возможность разработки MonoMac в Xam Studio изменится, было бы неплохо узнать об этом как можно раньше. Что еще более важно, если X.Mac перестанет быть прямой надстройкой MonoMac, это тоже важно знать. - person ruffin; 27.01.2015

Я не думаю, что эти два ответа охватывают всю историю MonoMac и Xamarin.Mac, поэтому автор Хронология .NET/ Mono/Xamarin Я хотел бы предложить другой ответ.

MonoMac появился на свет после того, как ребята из Mono закончили основную разработку MonoTouch, и хотели бы перенести ту же технологию на настольные компьютеры. Мигель написал в блоге о выпуске 1.0. Таким образом, он был выпущен с открытым исходным кодом, как часть Mono.

Запуск Xamarin значительно изменил способ выполнения проектов. Очевидно, что MonoTouch и Mono для Android стали флагманскими продуктами, а MonoMac — еще одним потенциальным продуктом. Таким образом, 12 декабря 2012 г. Xamarin.Mac был создан для присоединения к Xamarin.iOS и Xamarin.Android. Коммерческий брендинг Xamarin отмечает четкую границу с брендингом Mono с открытым исходным кодом. И с тех пор развитие MonoMac замедлилось, и больше ресурсов переместилось на Xamarin.Mac.

Более историческое событие произошло в 2014 году, когда Apple установила требование для 64-битных приложений, которому должны соответствовать поставщики инструментов приложений для iOS и Mac. Xamarin ясно объявил, что Xamarin.iOS и Xamarin.Mac поддерживают полные 64-разрядные версии с использованием унифицированного API в блоге своей команды. Поскольку MonoMac всегда 32-битный, этот пост в блоге является признаком смерти MonoMac, с моей точки зрения, но я не вижу другого ответа, в котором упоминалось бы это важное объявление.

Если вы будете следовать документации, вы увидите множество существенных изменений в типах данных и наборе API,

https://developer.xamarin.com/guides/cross-platform/macios/unified/updating-mac-apps/

Таким образом, если изначально Xamarin.Mac был скорее цепочкой инструментов, основанной на MonoMac, с тех пор он стал совершенно другим зверем с новыми возможностями для решения новых задач.

31 марта 2016 г. Microsoft/Xamarin объявили о плане открытого исходного кода Xamarin SDK, а 27 апреля 2016 г. код был опубликован на GitHub, http://open.xamarin.com. Так что теперь вы должны полностью отказаться от MonoMac и использовать Xamarin.Mac с Xamarin Studio. Однако я не уверен, каковы ограничения в его версии для сообщества.

person Lex Li    schedule 07.05.2016