2009-04-15 21 views
22

Durante lo sviluppo con Mono per l'esecuzione di un'applicazione su Windows e Mac OSX (e forse Linux) che suggeriresti, WinForms o GtkSharp per la GUI e perché?WinForms vs GtkSharp con Mono

Esempi specifici e storie di successo/horror sarebbero molto apprezzati.

+0

+1 per insistere sul perché. –

risposta

16

Lo sviluppo di piattaforme incrociate è una buona idea, ma per essere completamente onesto non ho mai visto un'applicazione che sembra davvero al di fuori del suo ambiente nativo. Questo è il motivo per cui penso che, se vuoi veramente offrire una buona esperienza utente, dovresti usare toolkit nativi su tutte le piattaforme che vuoi supportare.

Naturalmente, se si desidera solo un proof of concept, quindi WinForms su un Mac (o Linux) sono bene, ma se si desidera un'applicazione che compete contro un'altra soluzione nativa allora si dovrebbe davvero non crei un frontend nativo separato per ogni piattaforma supportata.

Un buon esempio di come è stato eseguito è MindManager da Mindjet. La loro versione Mac è una riscrittura completa, da zero dell'interfaccia. Il risultato è un'applicazione che offre agli utenti Mac l'esperienza che hanno imparato ad aspettarsi sulla loro piattaforma.

Quindi, torna a Mono. Ci sono Cocoa bindings in Mono. Personalmente, non ho mai provato a usarli, ma se vuoi indirizzare i Mac con la tua applicazione, vale sicuramente la pena dare un'occhiata. Sarebbe davvero bello se potessero essere considerati una scelta valida per lo sviluppo dell'interfaccia utente su un Mac.

3

Quando si decide di utilizzare o meno un'architettura multipiattaforma, è necessario valutare le proprie esigenze di avere un'interfaccia utente ristretta contro l'agilità verso il cambiamento e il tempo di sviluppo. L'utilizzo di un framework UI specifico per piattaforma ti consentirà (quasi) di ottenere risultati migliori e più performanti rispetto a quelli di una piattaforma multipiattaforma.

0

GtkSharp richiede X11 su Mac OS X. Gli utenti Mac scopriranno che è scoraggiante. Non ho provato Winforms su OS X, ma il supporto per Winforms di Linux di Linux era piuttosto immaturo (buggy) e lento. Non credo che ci sia un toolkit .net GUI maturo per OS X a questo punto, almeno nulla al livello di Swing o SWT.

+1

In realtà, secondo http://en.wikipedia.org/wiki/Gtk_Sharp GtkSharp non ha più bisogno di X11 su OSX a partire da Mono 1.9 –

+0

Sì, hai ragione, l'ho appena provato e non lancia il server X . Tuttavia, sia GTK # che Winforms hanno bisogno di X11 su Mac OS X per funzionare, e non hanno un aspetto nativo. – karunski

+1

Non è vero. WinForms su Linux funziona alla grande ... se sai come codificarti contro di loro – pablo

0

Quale piattaforma avrà la maggior parte degli utenti della tua app? Se la maggior parte degli utenti saranno utenti Windows, usa Winforms, ma se la maggior parte degli utenti saranno utenti Linux, usa Gtk #. Non saprei quale funziona meglio su OSX.

leggere questo articolo anche: http://www.mono-project.com/Gui_Toolkits

Problemi correlati