2009-04-28 12 views

Odpowiedz

22

Gtk#:

GTK # jest NET wiązania dla zestawu narzędzi GTK +. Zestaw narzędzi jest napisany w C dla szybkości i kompatybilności, a wiązanie GTK # zapewnia łatwy w użyciu, zorientowany obiektowo interfejs API do zarządzania. Jest aktywnie rozwijany przez projekt Mono i dostępne są różne rzeczywiste aplikacje, które go używają (Banshee, , Beagle, MonoDevelop).

Ogólnie, aplikacje GTK # są napisane przy użyciu MonoDevelop, która zapewnia wizualnego projektanta do tworzenia GTK # GUI.

Platformy: Unix, Windows, OSX

Plusy:

  • dobre wsparcie dla dostępności pośrednictwem jego dziedzictwa Gtk +.
  • Układ graficzny idealny do pracy w środowiskach międzynarodowych , a dostosowuje się do rozmiaru czcionki bez łamania aplikacji .
  • Aplikacje integrują się z pulpitem Gnome .
  • Interfejs API jest znany deweloperom Gtk +.
  • Duża społeczność Gtk +.
  • Port Win32 jest dostępny z natywnym wyglądem w systemie Windows XP.
  • Interfejs API jest dość stabilny w tym punkcie , a cukier składniowy jest dodany, aby go poprawić.
  • Obsługa standardu Unicode jest wyjątkowa.

Wady:

  • GTK + aplikacje uruchamiane jak obcych aplikacji na MacOS X.
  • niepełnej dokumentacji.

Windows.Forms:

Windows.Forms jest wiążącym opracowany przez firmę Microsoft do zestawu narzędzi Win32. Jako popularny zestaw narzędzi wykorzystywany przez miliony programistów Windows (szczególnie w wewnętrznych aplikacjach dla przedsiębiorstw), projekt Mono postanowił stworzyć zgodną implementację (WinForm), aby umożliwić tym programistom łatwe przenoszenie swoich aplikacji na platformy Linux i inne platformy Mono.

Podczas gdy implementacja .Net jest wiązaniem zestawu narzędzi Win32, implementacja Mono jest napisana w języku C#, aby umożliwić jej działanie na wielu platformach. Większość API Windows.Forms będzie działała na Mono, jednak niektóre aplikacje (a zwłaszcza kontrolki stron trzecich) czasami omijają API i P/Invoke bezpośrednio do Win32 API. Te połączenia prawdopodobnie będą musiały zostać zmienione, aby działały na Mono.

Ogólnie aplikacje WinForm są napisane przy użyciu programu Visual Studio firmy Microsoft lub SharpDevelop, które zapewniają wizualne narzędzie do tworzenia interfejsów graficznych WinForm.

Platformy: Windows, Unix, OSX

Plusy:

  • Obszerna dokumentacja istnieje dla niego (książki, samouczki, dokumenty online).
  • Duża społeczność aktywnych programistów.
  • Najłatwiejsza trasa do przeniesienia istniejącej aplikacji Windows.Forms w wersji .

Wady:

  • Internacjonalizacja może być trudne ze stałymi układów.
  • Wygląda na obcego na platformach innych niż Windows.
  • Kod wywołujący interfejs Win32 API nie jest przenośny w wersji .

Źródło: Picking the Right Toolkit

0

W skrócie: Tak

Oba GUI Tookits, ale WinForms (jak mówi nazwa) został opracowany głównie dla okien. GTK został opracowany dla Gimp i jest podejściem do zestawu narzędzi multi os gui.

Jeśli twoja aplikacja działa tylko w systemie Windows, w większości przypadków powinieneś używać WinForm.

Jeśli twoja aplikacja będzie działać pod innym systemem operacyjnym (np. Linux, bsd, windows, macos, ...), wolisz GTK.

Aby uzyskać lepsze wyjaśnienie, spójrz na here.

2

Są to różne zestawy narzędzi graficznych do kreślenia aplikacji okienkowych o różnym pochodzeniu.

GTK # jest wiązaniem biblioteki GTK, przeznaczonym głównie dla Linux/Unix. Działa również w systemie Windows, ale nie jest to środowisko macierzyste, dla którego zostało zaprojektowane.

WinForm to kolejny zestaw narzędzi, ten pochodzący z Microsoft.

Są to całkowicie różne interfejsy API służące do uzyskiwania tych samych wyników, ale każda z nich jest lepiej dopasowana do platformy.

Jeśli szukasz wieloplatformowego okienkowania w .net, Qt może być teraz opcją, która została LGPLed.

7

Są to zarówno zestawy narzędzi GUI, z których każdy ma swoją siłę i słabe strony. Z mojego doświadczenia:

  • WinForm nie wymaga instalacji w systemie Windows, Gtk # wymaga instalacji w systemie Windows.
  • WinForm ma projektanta w Visual Studio, Gtk # ma samodzielnego projektanta i zintegrowane zaprojektowane w MonoDevelop.
  • WinForm jest związany z Windows, Gtk # jest wieloplatformowy.
  • WinForm jest powolny i migocze. Gtk jest szybszy.
  • Większość formantów WinForm jest owijką wokół standardowych elementów sterujących systemu Windows i oferuje bardzo ograniczoną funkcjonalność. Widżety Gtk są bogatsze w funkcje.
  • Gtk umożliwia tworzenie formularzy i widżetów o złożonym układzie. WinForm oferuje tylko trywialne warianty layoutu, a FlowLayout & TableLayout & AutoSize są zbyt słabe, aby móc mieć złożone formularze, które zmieniają rozmiar i automatycznie dostosowują się do różnych rozmiarów czcionek, różnych rozdzielczości.
  • Kair jest szybszy i ma więcej funkcji niż GDI + (Cairo obsługuje wyjście i wejście z kilku rodzajów plików, na przykład, SVG, PDF)
  • Gtk # jest open-source, winforms nie jest
  • WinForms i Gtk # posiadają kontrolki/widgety innych firm (jednak w przypadku Gtk # jest ich mniej, ponieważ podstawowe elementy sterujące działają naprawdę dobrze).

W skrócie, nie polecam używania Winforms (z wyjątkiem sytuacji, gdy istnieje silny powód, aby nie mieć więcej zależności niż .NET FW), ale przy użyciu Gtk # lub WPF.

+3

Zabawne, jak nagle wspomnieć WPF na samym końcu odpowiedź :) –

+4

Pytanie było o Gtk # i SWF, WPF było nie na temat :) –

+0

Czy istnieje wszystko, co musisz zrobić podczas kompilacji, aby działało w systemach Windows i Linux, lub możesz po prostu spakować biblioteki Gtk # i będzie działać na wszystkich platformach? Czy jest trudny do rozpoczęcia model programowania lub jest on w większości podobny do WinForm, ale z innym nazewnictwem dla rzeczy (na przykład, czy jest jakieś zdarzenie z farbą)? Z góry dziękuję. –

Powiązane problemy