2009-01-07 18 views
10

Wielu moich użytkowników mówiło mi, że chcieliby uruchomić moje oprogramowanie na swoich maszynach pod Winem.Jak programista Windows może najłatwiej sprawić, by jego oprogramowanie działało dobrze pod Wine

Ale jestem programistą Windows, który praktycznie nie ma doświadczenia z Linuksem.

Teraz mogę spędzić miesiąc lub dwa instalując Linuksa, ucząc się Linuksa, instalując Wine, ucząc się Wine i całkowicie upewniając się, że moja aplikacja działa dobrze pod Wine. Ale wciąż rozwijam system Windows, więc nie chcę teraz zabierać zbyt wiele czasu na rozwój.

Więc co mogę zrobić bez zbytniego wysiłku, aby mój program działał tak dobrze, jak to możliwe pod Wine?


Znalazłem this General help on running applications under Wine.

Odpowiedz

11

Pobierz VMWare i Ubuntu virtual machine (Ubuntu jest popularną dystrybucją Linuksa) ze strony VMWare. Zapewni to działający system Linux O/S w środowisku Windows bez konieczności ręcznego instalowania systemu Linux.

Możesz następnie użyć instrukcji here, aby zainstalować Wine, ta strona Wiki zawiera również instrukcje, jak z niej korzystać.

Jeśli zastosujesz się do sugestii Adama Rosenfielda i po prostu spróbujesz uruchomić swoją aplikację w Winie bez modyfikacji, będziesz w stanie szybko ustalić, czy występują problemy. Przypuszczam, że są pewne, w przeciwnym razie Twoi użytkownicy nie skontaktowaliby się z Tobą w tej sprawie :)

Istnieje wiele sposobów na uzyskanie pomocy przy debugowaniu aplikacji w Wine, skorzystaj z opcji website i wybierz kilka sposobów, które odpowiadają ty. Jak zwykle najlepiej jest nie polegać na jednym kanale komunikacji.

Ponadto, jeśli czujesz się wygodniej w rozwijaniu w systemie Windows, podejście do używania maszyny wirtualnej pozwoli Ci skompilować twój kod jak zwykle w Windows i skopiować plik binarny do maszyny wirtualnej w celu przetestowania (Ubuntu obsługuje przeglądanie/montowanie Udziały Windows).

3

Nie używaj zbyt wiele funkcji API systemu Windows! Nie używaj nic nowego od Microsoftu;)

+0

To nie powinno być odrzucone. Nie jest to zbyt szczegółowe, ale powstrzymywanie się od wielu wywołań Windows API jest poprawne. – BobbyShaftoe

+0

Co oznacza "za dużo"? Program windowsowy użyje wszystkich bitów API, które są mu potrzebne do wykonania danego zadania. –

+0

Są często punkty, w których można użyć standardowego połączenia lub wywołania Win32. –

0

Z jakiego języka/platformy korzystasz? W zależności od tego, nie powinno być problemu z uruchomieniem go natywnym. Na przykład, jeśli korzystasz z języka Java lub Python, oba działają bardzo czysto w systemie Linux. Podobnie, jeśli jesteś programistą .NET, powinieneś być w stanie, z pewnym trudem, uruchomić aplikację w Mono.

+0

Używam Delphi 2009. Pierwsza recenzja mojej aplikacji wymienia ją jako "Brązową", ale nie wskazuje, co działa lub nie działa. Nie robię nic nadzwyczajnego, ale mam kilka wywołań Windows Core API, korzystam z rejestru Windows i dołączam kilka pakietów zewnętrznych, których kompatybilność jest nieznana. – lkessler

5

Dopóki nie robisz nic niezwykłego, na przykład bawiąc się sprzętem lub grzebiąc w nieudokumentowanych wywołaniach API i strukturach danych, powinieneś być w stanie uruchomić swój kod pod Wine z kilkoma lub bez żadnych modyfikacji. Wino ma dość kompletną implementację publicznych interfejsów API systemu Windows, więc jeśli Twój program jest przyjemny i nie ma w nim bałaganu, powinien po prostu działać.

3

Unikaj używania WPF to sugestia nr 1.

Ale to naprawdę nie zabiłoby cię przetestować aplikacji pod Wine. Nie jest trudno spróbować; to na pewno nie potrwa miesięcy.Na przykład:

Zastosowanie http://www.ubuntu.com/getubuntu/downloadmirrors#wubi instalowania Ubuntu w pliku na komputerze z systemem Windows, a następnie uruchomić ubuntu i zainstalować najnowszą wino z http://winehq.org/download/deb Następnie spróbuj uruchomić swojej aplikacji instalatora. Jeśli to nie zadziała, sprawdź Wine FAQ, poproś o pomoc na jednym z forów poświęconych winom i/lub zgromadź błędy w winiarskim systemie śledzenia błędów.

Powinien zająć około trzech godzin od chwili martwego początku, aby wypróbować instalatora.

3

Byłem raczej zaskoczony, gdy jedna z moich aplikacji Delphi5 właśnie działała na suwaku.

Jedynym sposobem, w jaki to zadziała, jest zrobienie tego samemu, tj. Zainstalowanie vmware i dystrybucji Linuksa, jak zasugerował Sean. Linux nie jest tak trudny, a my wszyscy jesteśmy tutaj, aby pomóc.

Po wykonaniu szybkiego testu mogę potwierdzić, że w dużej mierze działa. Podczas uruchamiania jest ACCVIO odczyt 0x34, okno dialogowe błędu można zignorować i aplikacja działa, otworzyłem Steve McCarthy GEDCOM.

Screenshot

To pomocą Wine 1.1.12 pod Mepis 7.9.94-rc1_32 pod VMWare. Zdecydowanie zaleca się używanie VMWare do tego typu rzeczy.

+0

Wygląda na to, że na zrzucie ekranu wystąpił błąd aplikacji. :-( – lkessler

+0

Jest. Pojawia się podczas uruchamiania i kończy aplikację, jeśli klikniesz ok. Jednak jeśli ją opuścisz, aplikacja będzie działać poprawnie. –

0

Znajdź testerów wersji beta Linuksa. Może zgłosić błąd deweloperom WINE lub znaleźć błąd w twojej aplikacji.

0

Wino jest bardziej wrażliwe na błędy niż system Windows. Na przykład Wine zawiesza się na NULL uchwytach okien i nie tworzy okien, jeśli klasa jest nieważna, podczas gdy Windows jest bardziej niezawodny i po prostu ominie ten błąd.

To okazja, aby oczyścić swój kod.

Byłem zdumiony, jak dobrze Wine uruchomił moją aplikację po raz pierwszy próbowałem. Jednak musiałem pozbyć się komponentu opartego na sterowniku innej firmy.