2009-02-24 16 views
31

Sprzedaję aplikację C#/WPF (obecnie kierowaną na .net 3.0) i ludzie wciąż proszą mnie o wersję na Maca.Czy możemy uruchomić aplikację C#/WPF na Mac OS X?

Aplikacja jest aplikacja śledzenia czasu z dobrym GUI, nie jest to dużo logiki biznesowej w czasie śledzenia aplikacji więc większość aplikacji jest GUI - przepisanie tylko GUI jest równoważne przepisanie całej aplikacji

Nie mam zasobów do przerobienia aplikacji lub utrzymania dwóch różnych baz kodu, więc potrzebuję sposobu na uruchomienie tego samego kodu na Macu (wiem, że będę musiał debugować i modyfikować kod, co mam na myśli czy mogę obsługiwać tylko jedną bazę kodu, nie mogę podzielić projektu na różne projekty Mac i Windows - po prostu nie mam czasu pracować nad dwoma projektami).

Przeniesienie aplikacji do wieloplatformowej biblioteki interfejsu użytkownika, do innego języka programowania lub do Silverlight nie ma znaczenia - zajmie to zbyt dużo czasu i myślę, że zwiększę sprzedaż, inwestując tym razem w nowe funkcje .

Czy ktoś wie o narzędziu, które można uruchomić lub port C#/WPF na komputerze Mac?

+0

To jest świetne * ostrzeżenie * "pytanie". –

Odpowiedz

11

Nie ma absolutnie żadnej możliwości uruchomienia pełnoprawnej aplikacji WPF na komputerze Mac. Nie jestem nawet pewien, czy jest to możliwe w Parallels. Najlepszą rzeczą, jaką możesz zrobić, jest użycie Silverlight, który wcześniej był nazywany "WPF/E" i działa na komputerze Macintosh.

+25

Uh Parallels to maszyna wirtualna ... wszystko, co działa w systemie Windows, działa na nim podczas działania ... okien. –

+0

Mam prosty działa na Parallels – Kalecser

+0

Mam dużej aplikacji dla przedsiębiorstw, która jest WPF i działa podobieństwa. – Kelly

0

Nie można tego zrobić. Ale ponieważ Twój interfejs użytkownika znajduje się w WPF, możesz przekształcić XAML w coś innego - na przykład GTK#. Oczywiście, jeśli jesteś podobny do mnie i korzystasz z wielu funkcji .NET 3.5, to ci to nie pomoże.

Kolejny powód, dla którego warto zacząć od zwykłego, uproszczonego XML-a.

2

Chcesz nowej funkcji (obsługuje całą inną platformę) i nie chcesz w to wkładać żadnego wysiłku. Niestety, przez większość czasu to nie zadziała.

Oprócz najbardziej podstawowych (natywnych) plików .NET z mono, nie sądzę, aby można było uruchomić aplikację WPF natywnie na MacOSX.

Jeśli uważasz, że możesz zarobić więcej pieniędzy, zdobywając użytkowników komputerów Mac. Możesz rozważyć użycie innych metod prezentacji. Ze względu na twoją obecną "inwestycję", powiedziałbym, spróbuj Silverlight (tak, czytam twoją tupet o tym, że tego nie robię). Inną opcją może być Adobe AIR/Flex.

Jeśli przesuniesz aplikację w ten sposób. Możesz utrzymywać jedną bazę kodów ... taką, która działa na obu platformach.

Jeśli chcesz spędzić więcej czasu na nowych funkcjach w aktualnej bazie kodów: zignoruj ​​użytkowników komputerów Mac.

5

Byliśmy w podobnej sytuacji. Mieliśmy działający projekt Windows i chcieliśmy wersji na Maca.

Nasz produkt składał się z dwóch części: jednej aplikacji .Net, drugiej - projektora reżysera.

Aplikacja Director powinna być łatwa w prawo, platforma i wszystko inne? No cóż, rzadko jest tak łatwo, skończyło się na dwóch wersjach źródłowego pliku Director.

Uruchomienie wymaganej aplikacji .Net przy użyciu Mono dla silnika bazowego, która działała dobrze dla nas, ponieważ byliśmy naprawdę tylko numerującymi tablicami bajtowymi. Interfejs użytkownika z drugiej strony musieliśmy przepisać w Cocoa.Kosztowało nas to prawie tyle samo, co tworzenie wersji dla systemu Windows, ponieważ musieliśmy także uczyć się wszystkich rzeczy na Macu.

Od tego czasu zaktualizowaliśmy tylko wersję systemu Windows.

+0

To miła przykładowa historia dla nowego programisty w mojej opinii. Wybierz narzędzia, które mogą być używane na wielu platformach. W przeciwnym razie po zmianie wymagań zmienisz się w pikla, a klienci będą chcieli, aby produkt działał na Macu lub Linuksie. – Kaspar

5

Mamy podobny problem. Napisaliśmy wersję na Maca w Silverlight 3 (która obsługuje całkiem sporo elementów WPF .NET). Był piaskownicą, ale jeśli to nie jest problem, możesz zrobić fajne rzeczy. Nasza baza kodowa działa teraz w WPF i Silverlight 3 i jest taka sama, gdy podczas kompilacji tworzy aplikacje SL3 i Desktop.

+1

Dzięki, brzmi to jak dobra możliwość (silverlight 3 nie istniał, gdy zadałem pytanie), czy używasz tych samych plików xaml i cs na obu platformach? – Nir

-1

Właściwie dla ciebie jest CrossOver. Inne osoby, które odpowiadają na pytanie z punktu programisty. Gdybym był tobą, zainstaluję CrossOver, a następnie zainstaluję .NET 3.5 w CrossOver i z radością uruchomię oprogramowanie WPF.

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

lub jeśli wolisz darmowe (ale trudniejsze) rozwiązanie, spróbuj wina.

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

+2

To jest dobry pomysł z punktu widzenia klienta - nie wiem, czy moje oprogramowanie działa pod CrossOver, ale wiem, że niektórzy uruchamiają moje oprogramowanie pod Parallels - ale - z punktu widzenia dostawcy oprogramowania (zwłaszcza przy niedrogich oprogramowanie) Nie mogę po prostu zainstalować CrossOvera na komputerze mojego klienta (szczególnie, gdy CrossOver Pro jest droższy niż moje oprogramowanie) – Nir

+0

Humm yea. : D następnie spróbuj wina. http://davidbaumgold.com/tutorials/wine-mac/ – VOX

+0

Chcę tylko wyjaśnić różnicę między Parallels/VMWare i Wine/CrossOver. Parallels lub VMWare to wirtualne emulatory sprzętowe, które mogą uruchamiać system Windows. Emulują sprzęt. Które musisz uruchomić system Windows (wymaga również licencji Windows), a następnie uruchomić oprogramowanie na emulowanym sprzęcie, na którym działa system Windows. Wine/Cross over to coś, co przepisuje środowisko Windows na Mac/Linux. Dało to programowi wszystko, czego program oczekuje od systemu operacyjnego Windows. Twój program działa z natywną prędkością, bez konieczności uruchamiania systemu Windows i nie wymaga licencji. – VOX

4

Można użyć Parallels. Mam nasze oprogramowanie biurowe napisane w C# i WPF i ludzie używają go na Macu pod Parallels przez cały czas.

Jako kolejna uwaga, Parallels pozwala uruchamiać aplikacje Windows równolegle z aplikacjami Mac OSX, widocznymi we własnym oknie na pulpicie Mac. Umożliwia także kopiowanie i wklejanie oraz przeciąganie i upuszczanie między aplikacjami Mac i Windows.

1

Możesz wypróbować Nevron Open Vision. Integruje się w projektach WPF, WinForm, Silverlight i MonoMac, Xamarin.Mac. To nie jest tak, jak uruchomienie aplikacji WPF na komputerze Mac, ale raczej wymaga przekodowania aplikacji na platformie NOV. Jednak gdy to zrobisz, twoja aplikacja (lub moduły) będzie działać na wszystkich tych platformach z jednej bazy kodu. Dobrym przykładem działania tego podejścia jest Nevron Writer (część Nevron Office). Działa w systemach Windows, Silverlight i Mac ze 100% pojedynczą bazą kodu.

[Ujawnienie: pracuję dla Nevron]