2009-04-15 12 views
22

Podczas pracy z Mono dla aplikacji uruchamianej w systemach Windows i Mac OS X (i być może Linux), które byś sugerował, WinForms lub GtkSharp dla GUI i dlaczego?WinForms vs GtkSharp z Mono

Szczególne przykłady i historie sukcesu/horroru byłyby mile widziane.

+0

+1 dla domagają się dlaczego. –

Odpowiedz

16

Tworzenie platformy krzyżowej to niezły pomysł, ale żeby być całkowicie szczerym, nigdy nie widziałem aplikacji, która wyglądałaby dobrze poza swoim rodzimym środowiskiem. Dlatego uważam, że jeśli naprawdę chcesz zaoferować dobrą obsługę, powinieneś używać natywnych zestawów narzędzi na wszystkich platformach, które chcesz wspierać.

Oczywiście, jeśli potrzebujesz tylko sprawdzenia koncepcji, to WinForm na Macu (lub Linux) są w porządku, ale jeśli chcesz aplikacji, która konkuruje z innym natywnym rozwiązaniem, powinieneś rozważyć napisanie osobnego natywnego interfejsu dla każda obsługiwana platforma.

Dobrym przykładem tego, jak to zrobiono, jest MindManager z Mindjet. Ich wersja na Maca to pełna, od zera przeróbka interfejsu. Rezultatem jest aplikacja, która daje użytkownikom Mac doświadczenie, którego nauczyli się oczekiwać na swojej platformie.

Wróć do Mono. Istnieje Cocoa bindings in Mono. Osobiście nigdy nie próbowałem ich używać, ale jeśli chcesz skierować swoje aplikacje na Maca, na pewno warto je obejrzeć. Byłoby świetnie, gdyby można je było uznać za prawidłowy wybór dla rozwoju interfejsu użytkownika na komputerze Mac.

3

Decydując o tym, czy korzystać z architektury wieloplatformowej, należy sprecyzować swoje wymagania dotyczące posiadania wąskiego interfejsu w celu uzyskania elastyczności w stosunku do zmian i czasu rozwoju. Korzystanie ze specyficznego dla platformy interfejsu użytkownika (prawie) zawsze zapewnia lepszy wygląd i lepsze wyniki, niż uzyskasz dzięki platformie wieloplatformowej.

0

GtkSharp wymaga X11 na Mac OS X. Użytkownicy komputerów Mac uznają to za odpychające. Nie wypróbowałem Winforma na OS X, ale obsługa WinForm w systemie mono była dość niedojrzała (powolna) i powolna. Nie sądzę, że istnieje dojrzały zestaw narzędzi GUI .NET dla OS X w tym momencie, przynajmniej nic na poziomie Swing lub SWT.

+1

Właściwie, zgodnie z http://en.wikipedia.org/wiki/Gtk_Sharp GtkSharp nie potrzebuje już X11 na OSX od wersji Mono 1.9 –

+0

Tak, masz rację, właśnie wypróbowałem i nie uruchamia serwera X . Mimo to zarówno GTK #, jak i WinFormy wymagają X11 na Mac OS X, aby działał, i nie ma natywnego wyglądu i stylu. – karunski

+1

To nie prawda. WinForm na Linuksie działa świetnie ... jeśli wiesz, jak je kodować – pablo

0

Jaką platformę obsługuje większość użytkowników aplikacji? Jeśli większość użytkowników będzie użytkownikami Windows, użyj WinForm, ale jeśli większość użytkowników będzie użytkownikami Linuksa, użyj Gtk #. Nie wiedziałbym, który z nich działa najlepiej na OSX.

Przeczytaj ten artykuł także: http://www.mono-project.com/Gui_Toolkits