Technology Experience

Contenuti gestiti da Igor Damiani
posts - 949, comments - 2741, trackbacks - 15120

My Links

News

  • Questo blog si propone di raccogliere riflessioni, teoriche e pratiche, su tutto quello che riguarda il world-computing che mi sta attorno: programmazione in .NET, software attuale e futuro, notizie provenienti dal web, tecnologia in generale, open-source.

    L'idea è quella di lasciare una sorta di patrimonio personale, una raccolta di idee che un giorno potrebbe farmi sorridere, al pensiero di dov'ero e cosa stavo facendo.

    10/05/2005,
    Milano

Archives

Post Categories

Generale

WinFX? Andarci con i piedi di piombo, ma che felicità!

Evviva!
Ho appena finito la mia prima ricetta!!!  Ingredienti: un Visual Studio 2005, il WinFX SDK installato, una spruzzatina di files XAML, una manciata di samples presi direttamente dal Windows SDK, un pizzico di buon vecchio C#. Fate cuocere lentamente con un po' di pazienza et voilà...ecco un bel EXE che sfrutta WPF/Indigo per mostrare button e chi ne ha più ne metta.

Ma procediamo con calma.  Dal Windows SDK ho preso un semplice semplice sample, una piccola applicazione che non fa altro che mostrare una Windows Forms con sopra un po' di button, generati dai files XAML di corredo. Apro il progetto con il mio VS2005.

Il Solution Explorer presenta già qualcosa di carino: c'è un file MyApp.xaml con indentato il file MyApp.xaml.cs. Poi, ancora un file Pane1.xaml ed il corrispondente Pane1.xaml.cs. Sorrido, vado diretto a cliccare con il destro sul nome del progetto (ButtonAlign) e poi su Rebuild. La status bar di VS2005 riporta un bel Rebuild All succeeded. Se lancio l'EXE appena generato, ecco che appare la mia prima WF generata con WinFX:

Davvero orribile, con quel giallo, non è vero?  Ovviamente, mi sono dato da fare e ho dato uno sguardo ad uno dei due file XAML inclusi nel progetto. Come sapevo già dalle sessioni seguite allo SMAU, si tratta di XML che non fa altro che definire l'aspetto grafico della Windows Form, posizionando pulsanti, definendo colori, bordi, spessore dei bordi, font e così via. Ma non solo: definisce anche alcuni parametri importanti, come il name del controllo ed alcuni eventi che il controllo dovrà gestire. Ecco un estratto del file XAML che ho guardato:

<DockPanel Margin="30,10,3,3" Grid.Column="0" Grid.Row="2">
<
Button Name="btn1" Background="Pink" BorderBrush="Black" BorderThickness="1" Click="OnClick1">ClickMe1</Button>
<
Button Name="btn2" Background="LightBlue" BorderBrush="Black" BorderThickness="1" Click="OnClick2">ClickMe2</Button>
<
Button Name="btn3" Click="OnClick3">Reset</Button>
<
/DockPanel>

Qui viene definito un DockPanel (che io immagino come un <DIV/> del buon HTML) che contiene a sua volta tre button (btn1, btn2 e btn3). Notare gli altri attributi che impostano l'aspetto dei button. Notare soprattutto l'attributo Click che specifica la function che dovrà essere eseguita allo scatenarsi dell'evento corrispondente, in questo caso il buon Click. Qui ci sono rimasto male, perchè ho subito pensato che tutta l'architettura di WinFX andasse a distruggere/eliminare/soppiantare in qualche modo tutto quello che sappiamo sugli handler e compagnia bella (in pratica, pensate al codice dell'InitializeComponent). Beh, non è proprio così.

Ho fatto un piccolo esperimento per capire come stanno meglio le cose. Ho preso un Button qualsiasi tra quelli definiti nello XAML, e ho messo nell'attributo Click un handler inesistente, inventato di sana pianta. Ho scritto "pippo", poi ho ricompilato. Nella task-list VS2005 mi segnala giustamente un errore, perchè la classe non contiene alcuna definizione per "pippo". Il file di riferimento è Pane1.g.cs. Nella Solution Explorer non c'è questo file, per cui faccio banalmente doppio-click sulla task-list. Cosa succede???

Mi appare un file, Pane1.g.cs, contenente codice C# che a tutti gli effetti contiene la InitializeComponent, associa gli handler, fa un po' di serialization, etc. etc. Dov'è questo file? Perchè non lo vedo nemmeno nella directory dei sorgenti? E' un file reale oppure no? Chi sono? Da dove vengo? Cosa ci faccio qua?

Quindi, insomma, ecco....uhm.....compilo i progetti, per questa sera basta ed avanza. Ho qualche dubbio e qualche incomprensione. Vedrò di leggermi qualcosa domani mattina, se avrò tempo. Tra i dubbi più pesanti, è come creare un nuovo file XAML, con il codice C# corrispondente: la UI di VS2005 li mostra indentati (.xaml --> .cs) e non sono riuscito a riprodurre questa situazione.

powered by IMHO 1.3

Print | posted on giovedì 15 dicembre 2005 00:47 | Filed Under [ Sviluppo .NET Tecnologia ]

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET