2009-02-24 3 views
31

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

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

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

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

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

+0

Это замечательный * предупреждение * «вопрос». –

ответ

11

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

+25

Uh Parallels - это виртуальная машина ... все, что работает в Windows, запускается на ней, поскольку она запускает ... окна. –

+0

У меня простая работа на Parallels – Kalecser

+0

У меня есть большое корпоративное приложение, которое является WPF и работает под параллелью. – Kelly

0

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

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

2

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

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

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

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

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

5

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

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

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

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

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

+0

Это прекрасный пример истории для нового разработчика, на мой взгляд. Выберите инструменты, которые можно использовать на нескольких платформах. В противном случае вы просто найдете свое «я» в мариновании, как только изменения изменятся, а execs захотят получить продукт на Mac или Linux. – Kaspar

5

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

+1

Спасибо, это звучит неплохо (silverlight 3 не существует, когда я задавал вопрос), вы используете те же файлы xaml и cs на обеих платформах? – Nir

-1

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

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

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

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

+2

Это хорошая идея с точки зрения клиента - я не знаю, работает ли мое программное обеспечение под CrossOver, но я знаю, что некоторые люди запускают мое программное обеспечение под Parallels, но - с точки зрения поставщика программного обеспечения (особенно с недорогими программное обеспечение) Я не могу просто установить CrossOver на компьютер моего клиента (особенно, когда CrossOver Pro дороже моего программного обеспечения) – Nir

+0

Humm yea. : D затем попробуйте Wine. http://davidbaumgold.com/tutorials/wine-mac/ – VOX

+0

Просто хочу уточнить разницу между Parallels/VMWare и Wine/CrossOver. Parallels или VMWare - это виртуальные аппаратные эмуляторы, которые могут загружать Windows. Они эмулируют аппаратное обеспечение. Что вам нужно для загрузки Windows (требуется лицензия Windows тоже), а затем запустите свое программное обеспечение на эмулированном оборудовании, на котором запущены окна. Wine/Cross over - это нечто, что переписало среду Windows на Mac/Linux. Это дало вашей программе все, что ожидала ваша программа от ОС Windows. И ваша программа работает на собственной скорости, не загружая Windows и не требуя ее лицензии. – VOX

4

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

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

1

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

[Disclosure: I Work for Nevron]