domenica 13 settembre 2009

Mono, MonoDevelop e Gtk#

Stavo guardando Mono e MonoDevelop.
Abituato come sono a VisualStudio e allo sviluppo WinForms, ho subito cercato di fare un progetto WinForms.
Bene, ho scoperto che sotto MonoDevelop non si possono creare progetti WinForms, ma solo progetti Gtk#.
Ho anche scoperto che non esiste nessun designer pronto per applicazioni WinForms: l'unico che c'è è ancora in versione beta.
OK, no problem: vediamo come funziona lo sviluppo Gtk#, mi sono detto, sarà più o meno come quello WinForms.

Quindi, Nuovo->Soluzione->Progetto Gtk# 2.0

La soluzione viene creata, il progetto anche, ed aggiunge una classe MainWindow.cs che contiene una window di default.
Il designer è carino, gestisce bene la form.
E qui primo piccolo problema: se metto un bottone direttamente sulla form la riempie tutta... ok, ho capito, bisogna mettere un container che gestisca la posizione dei widget. Metto un FixedContainer e tutto va a posto, il disorientamento è durato veramente poco.
OK, piccola differenza ma basta farci l'abitudine. Metto un bottone, creo l'evento di Click, (Clicked si chiama in Gtk#) e provo a fare comparire un MessageBox.
Dunque, dunque, MessageBox.Show non funziona qui, chissà come sarà.... Googola che ti rigoogolo alla fine ho trovato!
Bisogna creare un MessageDialog e poi fare run!


OK, il mio primo test con Mono finisce qua. Convincere mi convince, però solo un pensiero mi attanaglia... se deve essere la versione open delle specifiche .NET, perché non implementare già da subito la System.Windows.Forms e supportarla da subito su MonoDevelop? Fra l'altro sembra anche che il porting sia completo al 100% e che funzioni anche piuttosto bene!
Se avrò tempo approfondirò i test.

1 commento:

  1. io uso il designer di visual studio per crearmi la form con tutti i conrolli e poi copio tutto il codice di InitializaComponents() nell'InitializeCompnnts() del progetto Winforms di monodevelop.
    Non è il massimo della comodità ma sempre meglio di passare ore a fixare il codice di vecchi progetti windows form.

    RispondiElimina