Durante le festività natalizie, ho avuto modo di
papparmi un paio di centinaia di pagine del libro di Charles Petzold su WPF; per
il momento, ho toccato pochissimo (quasi nulla) XAML, dato che la prima metà del
libro non lo tratta. Questa scelta, che inizialmente mi aveva lasciato piuttosto
perplesso, è in realtà completamente giustificata: XAML altri non è che un modo
per serializzare una gerarchia di oggetti e quindi, alla fine dei conti, in WPF
riveste comunque il ruolo di "accessorio
", per quanto di fondamentale importanza; morale della favola: per studiare l'architettura di WPF se
ne può fare benissimo a meno, in compenso ho scritto tanto codice C#
e ho iniziato ad esplorare un po' il modello a oggetti del nuovo framework.
L'impressione è quella di trovarsi davanti a qualcosa di
mastodontico, sia per quanto riguarda potenzialità e flessibilità, che a livello
di complessità: nonostante il mio background professionale si basi per un buon
80% sul mondo delle applicazioni windows, i primi test mi hanno lasciato piuttosto
spaesato. Le gerarchie degli oggetti sono estremamente più profonde rispetto a
quelle delle WinForms 2.0, ma quest'approccio, che denota uno sforzo architetturale non da
poco, ha permesso di implementare nativamente funzionalità evolute delle quali chiunque si
sia occupato in passato di applicazioni windows ha sentito la necessità
almeno una volta.
DependencyProperties, AttachedProperties (trattate
da Corrado rispettivamente qui e qui
) e soprattutto il nuovo modello di routing degli
eventi sono un'autentica manna dal cielo e vi assicuro che, nonostante magari
possano sembrare un qualcosa di "inedito"
rispetto a ciò che era la programmazione windows in passato, dopo un
po' non se ne riesce veramente a fare a meno e tornare a Winforms
dà una sensazione un po' di "vecchio".
Da appassionato, insomma, sono veramente entusiasta, ma resto ancora
perplesso circa la diffusione che questo framework potrà avere presso il grande
pubblico. Secondo me le Windows Forms avranno ancora vita lunghissima, WPF è
decisamente complesso e soprattutto differente da tutto ciò che si è visto in
passato, con il risultato che il passaggio a questa tecnologia potrebbe
risultare molto ma molto costoso. E' ancora un po' presto per tirare le somme,
mancano ancora tool di sviluppo concreti e anche la libreria di
controlli è un po' lacunosa (il DateTimePicker dov'è?), ma allo stato attuale
non riesco proprio ad immaginare la piccola/media software house che decida di
sviluppare il proprio gestionale in WPF, ne ritengo molto più plausibile un
utilizzo, ad es., per la produzione di una presentazione multimediale o per un
software semplice ma che necessiti di essere graficamente accattivante.
powered by IMHO 1.3