Можем ли мы запустить приложение C # / WPF в Mac OS X? - PullRequest
36 голосов
/ 24 февраля 2009

Я продаю приложение на C # / WPF (на данный момент ориентировано на .net 3.0), и люди продолжают спрашивать меня о версии для Mac.

Приложение представляет собой приложение для отслеживания времени с хорошим графическим интерфейсом, в приложении для отслеживания времени не так много бизнес-логики, поэтому большая часть приложения представляет собой графический интерфейс - переписывание только GUI эквивалентно переписыванию всего приложения

У меня нет ресурсов, чтобы переписать приложение или поддерживать две разные базы кода, поэтому мне нужен способ запустить один и тот же код на Mac (я знаю, что мне придется отлаживать и изменять код, что я Я имею в виду, что могу поддерживать только одну кодовую базу, я не могу разбить проект на разные проекты Mac и Windows - у меня просто нет времени работать над двумя проектами).

Портирование приложения в кроссплатформенную библиотеку пользовательского интерфейса, на другой язык программирования или в Silverlight не имеет значения - это займет слишком много времени, и я думаю, что я получу больше продаж, инвестируя это время в новые функции.

Кто-нибудь знает инструмент, который может запустить или перенести C # / WPF на Mac?

Ответы [ 8 ]

12 голосов
/ 24 февраля 2009

Абсолютно невозможно запустить полноценное приложение WPF на Mac. Я даже не уверен, возможно ли это в Parallels. Лучшее, что вы можете сделать, это использовать Silverlight, который ранее назывался «WPF / E» и работает на Macintosh.

7 голосов
/ 24 февраля 2009

Мы были в похожей ситуации. У нас был рабочий проект для Windows, и мы хотели получить версию для Mac.

Наш продукт состоял из двух частей: одна - приложение .Net, другая - приложение проектора Director.

Приложение Director должно быть простым, кроссплатформенным и все такое? Ну нет, это редко бывает так просто, мы получили две версии исходного файла Director.

Для запуска .Net-приложения требовалось использовать Mono для базового движка, что нам хорошо работало, так как мы работали только с байтовыми массивами. Пользовательский интерфейс с другой стороны, мы должны были переписать в Какао. Это стоило нам почти столько же, сколько стоило сделать версию для Windows, так как нам также приходилось изучать все вещи Mac на ходу.

С тех пор мы обновили только версию для Windows.

6 голосов
/ 13 августа 2009

У нас была похожая проблема. Мы написали версию для Mac в Silverlight 3 (которая поддерживает довольно много WPF .NET). Это была песочница, но если это не проблема, вы можете сделать что-то хорошее. Наша кодовая база теперь находится в WPF и Silverlight 3 и остается той же, когда мы компилируем ее, она создает приложения SL3 и Desktop.

3 голосов
/ 29 июня 2014

Вы можете использовать Parallels. У меня есть наше офисное программное обеспечение, написанное на C # и WPF, и люди все время используют его на Mac под Parallels.

Как еще примечание, Parallels позволяет вам запускать приложения Windows рядом с приложениями Mac OSX, видимыми в их собственном окне на рабочем столе Mac. Он также позволяет копировать, вставлять и перетаскивать между приложениями Mac и Windows.

3 голосов
/ 24 февраля 2009

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

Помимо самых основных (нативных) .NET-компонентов с моно, я не думаю, что вы можете запускать приложения WPF в MacOSX.

Если вы думаете, что сможете заработать больше денег, набрав пользователей Mac. Вы можете рассмотреть возможность использования других методов презентации. Из-за ваших нынешних «вложений» я бы сказал, попробуйте Silverlight (да, я читал ваши разговоры о том, как этого не делать). Другим вариантом может быть Adobe AIR / Flex.

Если вы портируете свое приложение таким образом. Вы можете поддерживать одну кодовую базу, которая работает на обеих платформах.

Если вы хотите тратить больше времени на новые функции в своей текущей кодовой базе: игнорируйте пользователей Mac.

2 голосов
/ 02 июня 2015

Вы можете попробовать Nevron Open Vision. Он интегрируется в проекты WPF, WinForms, Silverlight и MonoMac, Xamarin.Mac. Это не то же самое, что запуск приложения WPF на Mac, но скорее всего вам потребуется перекодировать приложение на платформе NOV. Однако, как только вы это сделаете, ваше приложение (или модули) будут работать на всех этих платформах из единой базы кода. Хорошим примером такого подхода является Nevron Writer (часть Nevron Office). Он работает на Windows, Silverlight и Mac из 100% единого кода.

[Раскрытие: я работаю на Неврон]

1 голос
/ 24 февраля 2009

Это невозможно сделать. Но поскольку ваш пользовательский интерфейс находится в WPF, вы можете преобразовать XAML во что-то другое - например, GTK # . Конечно, если вы похожи на меня и используете много функций .NET 3.5, это вам мало поможет.

Еще одна причина, по которой ваш интерфейс должен быть в простом и упрощенном XML для начала.

0 голосов
/ 02 июля 2010

На самом деле, для вас есть CrossOver. Другие люди, которые отвечают взгляду с точки зрения программиста. Если бы я был вами, я бы установил CrossOver, затем установил .NET 3.5 в CrossOver и успешно запустил программное обеспечение WPF.

http://www.codeweavers.com/products/cxmac/

или, если вы предпочитаете бесплатное (но более сложное) решение, попробуйте вино.

http://davidbaumgold.com/tutorials/wine-mac/

...