ARMS_DEIR Ответов: 2

Как программировать приложения windows forms в mac OS?


Добрый день,

Существует ли какая-либо альтернатива visual studio, которая позволяет писать программы в visual studio как Mac OS ? Я хотел бы написать коды для создания приложений windows forms!

Я знаю, что могу сделать виртуальную машину и запустить windows 7 или выше opn it, а затем запустить VS для работы, я ищу автономную программу.

Может ли Xamarin Studio помочь?

с уважением
АМ

Что я уже пробовал:

Я пробовал работать с Xamarin, но, похоже, у него недостаточно возможностей, как у Visual studio!

2 Ответов

Рейтинг:
2

OriginalGriff

Что ж...все, что вам действительно нужно, - это текстовый редактор и компилятор C#...но это тяжелая работа!
Существует версия VS, которая изначально работает на компьютерах Mac: Код Visual Studio[^] - но AFAIK, который поддерживает только ASP и облачные приложения, а не WinForms.
Я действительно не уверен, что это хорошая идея, по сравнению с ПК или Windows-in-a-VM, просто потому, что вам понадобится один или другой из них, чтобы протестировать ваш код, когда вы его пишете! А что касается отладки...вы очень много хотите, вс равно работает. :смеяться:
- Я? Я бы остановился на ПК (они не так дороги по сравнению с Mac) и копии VS Community edition (лицензия позволяет) или пошел по маршруту виртуальной машины - это будет намного проще и легче отлаживать.


Рейтинг:
0

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, и некоторый кросс-потоковый код обеспечивает совместную работу между ними.

—СА