Каковы, если таковые имеются, поддерживаемые Microsoft варианты для запуска кода C # /. NET 4.0 изначально на Mac? Да, я знаю про Mono, но помимо всего прочего она отстает от Microsoft. И Silverlight работает только в веб-браузере. Решение типа VMWare тоже не подойдет.
Есть ли какой-нибудь полу-авторитетный ответ на вопрос, почему Microsoft просто не поддерживает .NET на самом Mac? Казалось бы, они могли бы Silverlight и / или купить Mono и быстро быть там. Нет необходимости в родной Visual Studio; кросс-компиляция и удаленная отладка в порядке.
Причина в том, что там, где я работаю, растет неопределенность в отношении будущего, что заставляет гораздо больше разрабатывать C ++ вместо C #; новые проекты выбирают для использования C ++. Никто не хочет говорить руководству через 18–24 месяца «извините», если Mac (или iPad) станет требованием. C ++ рассматривается как более безопасный вариант, даже если это (возможно) означает потерю производительности сегодня.
Ответы:
Лучший ответ, вероятно, заключается в том, что вы не «просто поддерживаете» .NET на Mac. Вы тратите сотни миллионов долларов и несколько лет портируете .NET на Mac.
Хотя некоторые вещи полностью управляются и не требуют портирования, большинство из них являются оболочками вокруг Win32 API (окна, элементы управления, gdi +, криптография, активный каталог, COM, корпоративные службы, доступ к устройству, звук, видео, кодеки, winforms и т. Д., так далее).
Каждый из них должен быть абстрагирован в бэкэнде и преобразован в эквивалентные нативные библиотеки в OSX. Конечно, не будет хорошего чистого отображения, поэтому вы также должны писать хаки на хаки, чтобы они работали точно так же.
Кроме того, существует проблема, заключающаяся в том, что эти API-интерфейсы в OSX могут быть хрупкими, и Apple не очень хороша в отношении обратной совместимости, поэтому вы получаете возможность повторять свои хаки с каждым основным выпуском (а иногда и второстепенным выпуском и исправлениями), что повышает стоимость обслуживания.
По сути, это огромная сумма денег и работа за очень небольшую выгоду на платформе, владелец которой был бы против того, чтобы вы делали это в любом случае. И вы действительно не хотите тратить деньги, чтобы помочь людям перейти с вашей платформы на платформу конкурента.
Таким образом, вы получаете не идеальный кроссплатформенный выбор:
источник
You spend hundreds of millions of dollars and several years porting .NET to the Mac.
Извините? Это число звучит немного выше ... Я уверен, что Mono-Framework (с поддержкой многих других ОС) не стоил так дорого.Нет, Silverlight - это единственный вариант Microsoft от .Net на OS X. Mono не «отстает» так сильно, как вы думаете; например, он поддерживает .Net 4.0 и C # 4. Однако наборы инструментов пользовательского интерфейса (WinForms и WPF) не очень хорошо поддерживаются в OS X. Mono вообще не поддерживает WPF. Microsoft также не смогла переписать весь движок рендеринга. Это, вероятно, хорошо, хотя. Если вы хотите написать собственное приложение для Mac, вам следует написать собственный пользовательский интерфейс (возможно, с использованием MonoMac).
источник
Нет. Моно - твоя лучшая ставка.
Другие проекты с открытым исходным кодом, такие как DotGNU, также могут вам помочь. http://www.gnu.org/software/dotgnu/ Но ни один из них не поддерживается MSFT.
источник
Silverlight не только браузер . Начиная с версии 3 OOB существовал и был бы тем путем, который я выбрал бы, если бы необходима платформа с поддержкой Microsoft.
Хотя Mono может отставать, он не так удален из стека .NET, как вы думаете, и его не следует отбрасывать как жизнеспособный вариант.
Что касается того, почему Microsoft не реализует весь стек .NET; ROI.
источник
Большая часть прибыли Microsoft поступает от двух продуктов - Windows и Office. Кроссплатформенная совместимость повредит Windows.
Если вы действительно хотите, чтобы один и тот же код выполнялся кроссплатформенно, напишите веб-приложение. Это не похоже на то, как ты. «На всякий случай» - не веская причина, это ползучесть.
Даже если вы решите нацелиться на Mac OS X или iOS через 16 месяцев, вы действительно думаете, что сможете взять свой существующий код C ++ и превратить его в хорошее (или даже функциональное) нативное приложение? Если вы не работаете над полноэкранной игрой, ответ - нет.
Сэкономьте время с C # сейчас, и если вы решите перейти на Mac, перепишите его на Mac с Objective-C и Cocoa - ваши пользователи будут вам благодарны.
источник
Где рынок, который оправдал бы трату MS на то, чтобы кодировать его? Чтобы сделать это, им пришлось бы бросить серьезные деньги - миллионы долларов зарплаты. Постоянный процесс, исправления и обновления.
И для чего? Хвастаться правами? Все, что они получают от этого, - это способность людей отказаться от Windows для Apple и иметь возможность запускать свои приложения.
Если кому-то это выгодно, это будет Apple. Облегчить переход людей на свою платформу, а разработчикам (РАЗРАБОТЧИКАМ-РАЗРАБОТЧИКАМ) создавать на ней код. Но вы думаете, что SJ дерьмо? Они лучше придумать новый материал , чтобы вставить в я линии всасывания. Кроме того, большая часть фреймворка - ОС, а спецификации CLR бесплатны для всех. Вы не можете наклеить грязную NDA на любой из них.
источник
Возможно, вы найдете проект MonoMac полезным - http://www.mono-project.com/MonoMac
Это позволяет разрабатывать приложения Какао в стиле Mono, которые можно развернуть в магазине приложений Mac.
Я бы настоятельно рекомендовал этот подход для разработчика, незнакомого с Objective-C, но с .NET / Mono / Java, который должен доставлять приложение в условиях ограниченного времени.
источник
Никто.
Я рекомендую либо написать кросс-компилируемое приложение на C ++ - может, вам понравится - или использовать Ruby с wxWidgets.
Я считаю .NET плохим предложением для кроссплатформенной разработки и долгосрочного сопровождения продукта. Хотя, чувак, в нем можно быстро выкладывать приложения. : - /
Желаю, чтобы Дельфи все еще был главным соперником.
источник
Если вы хотите запускать .NET непосредственно на Mac, вы можете использовать BootCamp для этого (т.е. вы запускаете Windows на Mac и ваши приложения .NET в Windows).
Если вы имели в виду Mac OS X, а не просто аппаратное обеспечение, то вы можете использовать VMWare или Parallels для запуска приложений .NET в Windows (в эмуляции) в OS X. Оба имеют визуальные режимы, которые позволяют вашему приложению выглядеть так, как будто оно только запущено. в OS X (это будет выглядеть и вести себя как приложение Windows, но если вы пишете кроссплатформенное не-веб-приложение без специального интерфейса для каждой ОС, у вас всегда будет эта проблема).
Делая это, вы получите столько же «поддержки», поскольку вы запускаете приложение в Windows, хотя и виртуализировано. Конечно, любому, кто запускает приложение, потребуется копия программного обеспечения для виртуализации и Windows, и он будет готов смириться с приложением, которое не ведет себя как приложение OS X - но это единственный способ получить «родной» .NET работает на Mac.
источник
Дэн, я не думаю, что ты можешь сделать это. Однако возможное решение (все еще vapourware) заключается в использовании Embarcadero Rad Studio C ++ Builder, который имеет хороший VCL для разработки визуальных приложений (на которых основана большая часть .net), и им НУЖНО иметь кроссплатформенную поддержку, выходящую в следующем выпуске.
Это будет разработано для Windows, предназначено для Mac или Linux. Или так говорится в их дорожной карте.
Среда C ++ разумна, и если вы разрабатываете против VCL, то теоретически приложение будет работать только на других платформах.
Конечно, до его фактической отправки еще неизвестно, насколько это эффективно.
источник
Ответ - нет.
На самом деле ваш случай кажется очень хорошим примером того, когда не стоит выбирать .NET.
источник
Если вы хотите разрабатывать для ОС, используйте правильные инструменты. Нет действительно профессиональных приложений, написанных в моно для Mac. С другой стороны, многие непрофессиональные разработчики используют множество инструментов, создающих много мусора. Посмотрите на моно обзоры приложений, которые были написаны для OSX. Разработчики пишут, используя неполный фреймворк, взломанный для соответствия платформе OSX. Начните писать - если вы использовали C # Цель C - это быстрое обучение.
Профессиональные разработчики для Mac используют C ++, Objective C, Cocoa и Xcode. Я работаю на нескольких платформах, и у каждой есть свои лучшие инструменты. Используйте Xcode для Mac и iOS.
Как примечание, Xcode не является Visual Studio, он не так стабилен и по сравнению с яблоком позорен, но он хорошо работает, когда вы привыкнете к его причудам. Инструменты Microsoft очень сложно обойти - но они были написаны для Windows, а не для Linux, iOS, OSX, AIX и т. Д.
источник
Mono
и ,Xamarin.Mac
но это решение. Текущая версия Mono является почти 100% полной реализацией .NET 4.0, в ней отсутствуют только пара основных функций, которые, вероятно, никогда не будут перенесены (например, WPF).