[WPF] Qualche consiglio

Nelle ultime settimane ho iniziato a giocare con la February CTP di Windows Presentation Foundation. E' senza dubbio un framework che offrirà in futuro n-mila nuove features e potenzialità, ma ORA è ancora un colabrodo. Anzi, non funziona neanche come colapasta... :)

Ecco un paio di TIP (del tutto personali) che sicuramente vi saranno utili se avete intenzione di lavorarci un po'.
1) Molte eccezioni (intendo quelle dell'ambiente di sviluppo Visual Studio) non sono ancora state catchate: il risultato è che ogni qualvoltà c'è un errore "grave", Visual Studio vi ringrazia per l'attenzione, manda a Redmond il report errori, e si riavvia.
FIX: Per arginare un po' questo problema il mio consiglio è quello di lavorare sempre in modalità debug, E di aggiungere nell'entry point (di solito MyApp) qualcosa tipo:

public MyApp()

{

AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);

}

private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs args)

{

MessageBox.Show("Attenzione: " + args.ExceptionObject.ToString());

}

2) Spesso, dopo aver compilato e lanciato il vostro programma, riceverete messaggi del tipo "Esiste già un child con lo stesso nome, bla bla bla". E' un bug del compilatore, che non sovrascrive correttamente il vostro vecchio assembly o codice precompilato.
FIX: prima di compilare, fare sempre un "Clean Solution" per pulire da sporcizie il codice precompilato (ovvero quello nella cartella obj).

3) Quando si lavora con qualche immagine...è possibile che la grafica scoppi (a  meno che non abbiate computer con Giga di memoria).
FIX: usate ImageSource condivise, usate le risorse e soprattutto lavorate con le thumbnail delle immagini.

4) Vi capiterà di voler utilizzare un thread. Per ora il concetto di thread è un po' cambiato...il comodissimo backgroundWorker non esiste più.
FIX: al suo posto potete usare

Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Send, new BindDelegate(vostra_funzione), parametro);


Mi verranno sicuramente in mente altri accorgimenti utili per iniziare a divertirsi con WPF: quello che scrivo ora (spero) diventerà obsoleto tra pochi mesi. La prossima release di WPF infatti è prevista in concomitanza con il lancio della Beta 2 di Windows Vista.
Se nel frattempo siete già interessati ad approfondire questi argomenti, vi consiglio i webcast del bravissimo Luka.
Buon divertimento!

Print | posted on giovedì 18 maggio 2006 19:21

Comments on this post

# [WPF] Un nuovo timer...

Requesting Gravatar...
Left by Giorgio Sardo's Blog on giu 10, 2006 11:59
Comments have been closed on this topic.