Создание кроссплатформенного приложения C # / Winform - должен ли я использовать AIR, Mono или что-то еще?

StackOverflow https://stackoverflow.com/questions/72580

  •  09-06-2019
  •  | 
  •  

Вопрос

У меня есть приложение, которое я написал на C # / WinForms (мое маленькое приложение).Чтобы сделать его кроссплатформенным, я подумываю переделать его в Adobe AIR.Есть ли какие-либо аргументы в пользу WinForms как кроссплатформенного приложения?Есть ли кросс-платформенное будущее у Winforms (например, Mono и т.д.)?Предложения по кросс-платформенной разработке пользовательского интерфейса?

Под кроссплатформенностью я подразумеваю, в настоящее время, Mac OSX, Windows и Linux.

Этот вопрос был спросил еще раз и ответил с большим успехом.

Это было полезно?

Решение

Я подумываю переделать это в Adobe AIR

Не проводя много времени с AIR, я лично считаю, что лучше всего перенести веб-приложение на рабочий стол и предоставить ему оболочку или запустить существующий проект flash / flex на рабочем столе.

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

Есть ли какие-либо аргументы в пользу WinForms как кроссплатформенного приложения?Есть ли кросс-платформенное будущее у Winforms (например, Mono и т.д.)?

Всегда трудно предсказать, что произойдет, но есть по крайней мере один проект (Plastic SCM) Я знаю, что в нем используются Mono Winforms на Win, Mac и Linux, так что это, безусловно, выполнимо.Однако они говорят, что создали большую часть своих элементов управления с нуля (и утверждают, что хотят выпустить их с открытым исходным кодом, но не уверены, когда именно), поэтому вам нужно будет немного поработать, чтобы все выглядело "красиво".

Я играл с Winforms на платформах, отличных от Windows, и, к сожалению, она не совсем "зрелая" (особенно на Mac).Так что того, что вы получаете из коробки, может быть, а может и не быть достаточным для ваших нужд.

Если вы решите, что настольное приложение - не лучший способ предоставить кроссплатформенное решение, вы всегда можете взять свою бизнес-логику, написанную на C #, и создать либо полноценное веб-приложение с ASP.NET или используйте Silverlight, так как в C # существует множество других вариантов.

Другие советы

Насколько позволяет судить мой опыт работы с сценариями действий Flex / AIR / Flash, среда разработки Adobe AIR и наборы инструментов для кодирования / отладки на данный момент намного уступают Visual Studio и .NET SDK.Однако наборы инструментов пользовательского интерфейса превосходны.

Но как у вас уже есть работающий код на C #, перенос его на ActionScript может потребовать редизайна из-за того, что ActionScript имеет другой способ мышления / программирования, они используют разные примитивные типы данных, например, они используют только Number вместо того, чтобы int float double и т.д.и инструментов отладки явно не хватает по сравнению с VS IMO.

И я услышал это GtkSharp от Mono's GtkSharp это тихая приличная платформа.

Но если вы не возражаете против проблем с инструментами кодирования / отладки, то AIR - отличная платформа.Мне нравится, как Adobe интегрирует в него возможности Flash, напримервы можете запустить установку приложения AIR одним нажатием кнопки в видеоролике Flash movieclip, такого рода интеграция.

WinForms полностью поддерживаются Mono, поэтому они являются кроссплатформенными.

Почему вы выбрали Air?

Использование GTK#, и у вас есть кроссплатформенный движок forms, и вы можете сохранить свой код на C #.

Ну, я думаю, что единственный способ надежно использовать кросс-платформенный C # - это Корпорация Microsoft На Silverlight, но на самом деле это не WinForms, а браузерный.В остальном, да, Моно - это шанс.

Если вы хотите использовать .net Framework, Microsoft Silverlight - хороший (единственный?) выбор.Браузер хорошо справляется с работой в качестве оболочки, но вы также могли бы написать для него свою собственную оболочку приложения.Например, Скотт Хандельман упоминания the NY Times Reader написана на Silverlight, а hostet - на Cocoa для Mac.

Я не думаю, что у WinForms вообще есть будущее.Поскольку это, похоже, было универсальным решением даже в MSFT world (очень тонкая оболочка вокруг Win32).И, похоже, в Систему практически никаких изменений внесено не было.Windows.Формы как в .NET 3.0, так и в 3.5

</speculation>

Я бы использовал Java или Air.

Я думаю, что до тех пор, пока вы убедитесь, что код бизнес-логики, который вы пишете, является кроссплатформенным (т. е.использование обратной косой черты в путях работает только в Windows - прямая косая черта работает во всех ОС), тогда у Mono не должно возникнуть серьезных проблем с запуском неизмененной программы WinForms.Просто убедитесь, что вы проверили наличие графических сбоев.

Я задавал аналогичный вопрос на прошлой неделе.Я все это время использовал Mono, и у меня не было проблем с запуском приложений, которые я компилирую в IL для запуска на SuSE linux (обычно я запускаю KDE) или Windows, однако я еще не выходил и не покупал Mac, чтобы протестировать его.Но я скоро буду там, возможно, через пару недель.Но в целом разработка в Mono была очень хороша при создании приложения, которое будет работать на нескольких платформах.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top