Использование Mono для переноса приложения C # .NET на OS X? - PullRequest
13 голосов
/ 01 февраля 2011

Ладно, ребята, я пишу приложение, которое хочу быть кроссплатформенным. До недавнего времени я пытался сделать это в Silverlight с C #, потому что он также работает на OS X, но, поскольку я был довольно ржавым с C #, помимо того, что был новичком в Silverlight, у меня возникала головная боль после головной боли. Большая часть этого проистекает из ограничений, которые прилагаются к приложению, предназначенному для запуска в браузере, из-за проблем, связанных с его работой по-разному при запуске из моего сервера разработки непосредственно из файла: // и т. Д.

Я бы предпочел полностью отказаться от всей идеи поддержки OS X, чем полностью переписать приложение для OS X, тем более что у меня совершенно НЕТ опыта написания для него. Я надеюсь, что смогу написать обычное приложение на C # .NET с Visual Studio для Windows, а затем легко перенести его на OS X с Mono.

Насколько сложно перенести приложение .NET в OS X с Mono? Мое приложение довольно простое, ничего необычного в формах или в чем-то другом нет, поэтому я должен предположить, что это будет поддерживаться в реализации Mono WinForms.

Есть ли какие-нибудь хорошие ресурсы о том, как портировать приложение с помощью Mono? Или, может быть, я упускаю весь смысл, и он просто позволяет запускать приложения .NET на OS X, и мне не нужно беспокоиться о портировании?

Прошу прощения за мое полное незнание этого вопроса, я только начал рассматривать этот путь, как 10 минут назад, после столкновения с еще одним раздражающим ограничением в Silverlight.

Я буду первым , который признает, что я не знаю своей головы из своей задницы об этом предмете, так что будьте нежны ..:)

Ответы [ 4 ]

5 голосов
/ 01 февраля 2011

Appart от MoMa, как указано в других ответах, которые могут вас заинтересовать в MonoMac.С успехом MonoTouch (написание c # для iPhone), теперь есть также проект под названием MonoMac для создания собственных UI для OSX при использовании .net / mono в фоновом режиме.Может быть, вам будет интересно http://www.mono -project.com / MonoMac , статья в блоге Мигеля де Иказы: http://tirania.org/blog/archive/2010/Apr-19.html

2 голосов
/ 01 февраля 2011

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

1 голос
/ 01 февраля 2011

В проекте Mono есть страница, посвященная портированию приложений,

http://mono -project.com / Guidelines: Application_Portability

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

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

http://mono -project.com / Поддержка

1 голос
/ 01 февраля 2011

Есть несколько вещей, которые вы должны иметь в виду.

  1. вам придется переносить любое использование кода пользовательского интерфейса, зависящего от платформы
  2. не использовать зависимые от платформы вызовы ОС (Win32 API)
  3. не используйте "экзотические" библиотеки (например, workflow, к сожалению, ef)
  4. В общем: абстрактные зависимости от такого кода удалены, так что вы можете легко заменить их моноспецифичными библиотеками. (рекомендуемый шаблон будет MVVM).

Существует инструмент под названием MoMA , который поможет вам во всем этом. Однако, возьмите результаты с зерном соли. В любом случае, просто попробуйте.

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