Sergey Alexandrovich Kryukov
Вы можете сделать это, если установите Mono, альтернативную реализацию CLR, на Mac OS X: Mono (программное обеспечение) — Википедия, свободная энциклопедия[^].
Mono поддерживает .NET BCL и часть нестандартного .NET FCL, а также включает в себя System.Windows.Forms
Затем вы можете разрабатывать приложения либо на Windows, либо на MAC. В Windows вы можете использовать .NET или Mono, Visual Studio, SharpDevelop или MonoDevelop IDE. На Mac вы можете использовать MonoDevelop. Во всех случаях вы можете использовать одни и те же сборки для .NET, Mono для Windows или Mono для Mac без перекомпиляции. Однако вы столкнетесь с некоторыми несовместимостями.
Один хороший способ сделать разработку на Windows-это разработать и протестировать все на .NET, а затем протестировать его на Mono для Windows, а в случае несовместимости исправить их и снова протестировать на Mono. Таким образом, вы можете выполнить необходимый внутренний цикл разработки только в Windows. Если какой-то код хорошо работает на Mono для Windows, то дополнительные проблемы с Mono для других платформ гораздо менее вероятны.
Смотреть также:
SharpDevelop — Википедия, свободная энциклопедия[^],
SharpDevelop @ic#код[^],
Монодевелопмент — Википедия, свободная энциклопедия[^],
Монодевелоп | MonoDevelop[^].
Теперь еще больше проблем: Mono хорош для многих платформ, но платформы Apple печально известны своей враждебностью к "иностранцам". Даже если вы успешно разработаете правильно работающее приложение Windows Forms, оно будет выглядеть чужеродно на Mac; в частности, вы увидите, что стандартное меню Mac в верхней части рабочего стола отображается как всегда, но не связано с вашим приложением, которое может иметь свое собственное главное меню, как в "обычных" приложениях Windows Forms.
Можете ли вы разработать моно-приложения, которые будут вести себя изначально на Mac? Да, но они не будут совместимы с Windows. Для разработки такого нативного интерфейса можно использовать другой продукт-Monobjc:
Monobjc — Википедия, свободная энциклопедия[^],
Monobjc[^].
Его использование гораздо сложнее для разработчика Windows; вы должны лучше понимать нативную разработку Mac, по крайней мере немного; и было бы хорошо понять Objective-C, по крайней мере основные идеи: Objective-C — Википедия, свободная энциклопедия[^].
Это может быть вне вашего вопроса, но я хочу упомянуть еще одну, довольно экзотическую возможность: я экспериментировал с разработкой Mono на Mac и опробовал следующую необычную архитектуру приложения: мне удалось создать два отдельных потока пользовательского интерфейса, один из которых работает System.Windows.Forms.Application
, и еще одно приложение Mac OS X API. Грубо говоря, один работает главным образом System.Windows.Forms.Form
, а еще одно-главное меню в стиле Mac, и некоторый кросс-потоковый код обеспечивает совместную работу между ними.
—СА