Рекомендации по портированию приложения C # WPF .NET 4.0 на Mac OS X (Mono?) - PullRequest
2 голосов
/ 16 марта 2012

В настоящее время у меня есть (некоммерческое) приложение, созданное в MS Visual C # 4.5 с использованием WPF и LINQ.

Чтобы в будущем сделать возможным портирование на Mac OS X, я использовал шаблон проектирования MVVM для разделения логики и пользовательского интерфейса.

Я хотел бы знать: 1) Я знаю, что WPF не поддерживается Mono. Я использую много привязок. Можно ли портировать это в WinForms (или другим способом, который поддерживается Mono) достаточно простым способом?

2) Я полагаю, все функциональные возможности LINQ должны быть преобразованы в циклы for / foreach?

3) Есть ли другие соображения или рекомендации, которые я могу принять во внимание или предупредить при портировании?

Заранее спасибо.

Ответы [ 2 ]

4 голосов
/ 01 апреля 2012

Как уже упоминалось в комментариях, кроссплатформенный инструментарий Widget Mono XWT должен справиться с задачей - если (по состоянию на апрель 2012 года) вы готовы работать с очень свежим кодом.

XWT похож на набор виджетов SWT для Eclipse / Java в том, что он напрямую сопоставляется с виджетами родной ОС для Mac-OSX, Linux и Windows-WPF.Он отличается тем, что основан на системе компоновки и общем API библиотеки GTK-Sharp, используемой для большей части стека инструментов Mono (т. Е. MonoDevelop, MonoDoc, Banshee и т. Д.). Согласно слайдам FOSDEM, XWT предназначен какзамена / дополнение к GTK-Sharp для проекта Mono и использование Xamarin в MonoDevelop.Я предполагаю, что они хотят переместить MonoDevelop, чтобы он казался более родным для ОС и / или красивее, чем позволяет набор виджетов GTK в настоящее время, возможно, чтобы приблизить их набор инструментов к паритету с предложениями Eclipse.

В то времяна момент написания этого ответа инструментарий XWT все еще находился в стадии интенсивной разработки (особенно версии для Windows WPF), но был достаточно функциональным на всех трех платформах.

4 голосов
/ 16 марта 2012

Silverligt работает на Mac.Если ваше приложение может быть ограничено тем, что возможно в Silverlight, портирование будет очень простым, потому что в основном Silverlight - это WPF в браузере.В недавно выпущенном Silverlight 5 вы можете получить доступ ко всей локальной файловой системе при работе вне браузера, а также можете создать несколько окон.

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