Создание интерфейсов Какао для OS X с C # и Mono - PullRequest
13 голосов
/ 06 апреля 2009

Кто-нибудь проводил какое-то время, сравнивая различные мосты Objective C и связанные обертки Какао для Mono?

Я хочу портировать существующее приложение C # для запуска на OS X. В идеале я бы запустил приложение на Mono и создал для него собственный пользовательский интерфейс Cocoa.

Мне интересно, какой мост будет лучшим выбором.

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

Ответы [ 6 ]

5 голосов
/ 05 мая 2010

Команда Mono выпустила новый мост под названием MonoMac.

Это, по сути, настольная версия платформы MonoTouch, которую они создали для iPhone.

Мигель объявил о новом мосту в своем блоге здесь: http://tirania.org/blog/archive/2010/Apr-19.html

Как только MonoMac повзрослеет, я подозреваю, что он станет мостом , который используют люди.

3 голосов
/ 09 апреля 2009

В последнее время я пробовал Monobjc, NObjective и MObjc / MCocoa с F #, и я пойду с MObjc / MCocoa.

Monobjc, как вы пишете, лучше документирован и упакован, но по сравнению с двумя другими медленными и не "отбрасывает исключения" из ObjC.

Я считаю, что NObjective и MObjc / MCocoa - единственные два, которые отбрасывают исключения из ObjC, и поэтому я считаю их единственными реальными альтернативами.

Как обсуждено здесь NObjective использует структуры с наследованием, которые я нахожу довольно пугающими, и заставил меня наконец выбрать MObjC / MCocoa.

(Возможно, у вас также есть проблема с лицензией. Monobjc и NObjective находятся под LGPL, MObjc / MCocoa под MIT ...)

1 голос
/ 04 июня 2009

Довольно длинное обсуждение различных мостов состоялось в списке рассылки Mono-OSX.

Обсуждение начинается здесь с Мигелем:

  • Объявление о том, что Novell больше не будет поддерживать Cocoa #.
  • Попытка объединить оставшиеся усилия в сообществе.

Если вы прочтете оставшуюся часть обсуждения, похоже, что сообщество Mono склоняется к Monoobjc или MObjc / MCocoa; так что, если вы проводите собственные расследования, вероятно, именно на них стоит обратить внимание.

1 голос
/ 06 апреля 2009

ОК, я спрошу: зачем вам это делать? Архитектура пользовательского интерфейса Какао, включая Delgates Cocoa-std и привязки Cocoa, тесно связана с Objective-C. Комбинация Интерфейсного Разработчика и Objective-C является удивительно производительной. Хотя вы можете использовать Interface Builder со многими мостами к Objective-C (включая PyObjC, MacRuby и многие из мостов C #), вы неизбежно потеряете производительность из-за несоответствия импеданса между платформой и выбранным вами языком. С C # это несоответствие является значительным. Поскольку вы пишете собственный пользовательский интерфейс, таким образом теряя все кроссплатформенные преимущества, которые вы получили бы от C #, я бы использовал Objective-C. Для грамотного C / C ++ / C # / Java / и т.д. программисту, обычно требуется 2-3 дня, чтобы стать комфортным и продуктивным в Objective-C.

1 голос
/ 06 апреля 2009

Я думаю, что NObjective - лучший выбор, поскольку он имеет автоматическую генерацию кода для оболочек Objective-C, которую можно легко настроить для регенерации оболочек для последующих версий Mac OS.

0 голосов
/ 06 апреля 2009

Не собираюсь спрашивать, почему, так как у вас есть свои причины, я уверен.

Я бы посмотрел на проект Unity3D и выяснил, сможете ли вы выяснить, как они это сделали. Выглядит тяжело.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...