babsevensix

Il blog di Alberto
posts - 94, comments - 81, trackbacks - 11

WPF e Silverlight – Qualcosina in più da sapere

Tempo fa su un forum è apparsa la seguente domanda:

Ciao a tutti.
Ho sempre sviluppato in Windows Forms e non ho mai avuto problemi, ma
mi sto affezionando sempre di più alla nuova tecnologia WPF.
Sto per iniziare a scrivere un nuovo gestionale e mi chiedevo se fosse
meglio continuare con Windows Forms o passare a WPF.
Per un gestionale, WPF è realmente utile?
I tempi di sviluppo sono gli stessi?
Le differenze tra i controlli (ad esempio tra DataGridView in WinForms
e DataGrid in WPF Toolkit) sono molte? Il modo di pensare con questi
controlli resta più o meno lo stesso?
La velocità di esecuzione è migliorata, o al massimo è la stessa?
I requisiti minimi si alzano? WPF richiede maggior potenza?

Voi cosa consigliate, considerando che l'interfaccia grafica è di
secondaria importanza per la mia applicazione?
Ciao e grazie!”

 

La risposta di Raffaele Rialdi [MVP]

 

> Per un gestionale, WPF è realmente utile?

Decisamente si. E se togliamo i pregi grafici, ancora più si.

> I tempi di sviluppo sono gli stessi?


Dipende dal tuo skill su WPF.
L'inizio è decisamente arduo.
Le applicazioni semplici vanno a rilento a causa dei designer che non
sono ancora all'altezza (sia vs.net che expression blend) ma stanno
migliorando.
Le applicazioni complesse (ovviamente dipende dal controllo che vuoi
realizzare) vanno a favore di WPF anche per velocità. In Winform ci
sono limiti intrinseci della tecnologia che possono essere bloccanti.
Con WPF le cose più complessi si fanno decisamente più semplici da
risolvere

> Le differenze tra i controlli (ad esempio tra DataGridView in WinForms
> e DataGrid in WPF Toolkit) sono molte? Il modo di pensare con questi
> controlli resta più o meno lo stesso?


Le differenze sono importanti in quanto cambia il paradigma, ma non ci
sono più limitazioni.
Pensa al fatto che una combobox wpf di default non ha stringhe ma
controlli. Questi controlli possono essere semplici textblock o tuoi
user control con immagini, video, animazioni, mappe, e quant'altro.
In un bell'esempio Bea Costa mostra sul suo blog come una listbox può
essere usata per disegnare il sistema solare:
http://www.beacosta.com/blog/?p=40


> La velocità di esecuzione è migliorata, o al massimo è la stessa?
> I requisiti minimi si alzano? WPF richiede maggior potenza?


Le performance vanno tutte a favore di WPF che si appoggia a DirectX.
I requisiti sono normalissimi a meno che non usi effetti che si
appoggiano alla CPU e non alla GPU. Per farla semplice le cose standard
vanno senza problemi ovunque.

>
> Voi cosa consigliate, considerando che l'interfaccia grafica è di
> secondaria importanza per la mia applicazione?
> Ciao e grazie!


Mi ripeto, per le applicazioni come un gestionale WPF lo vedo alla
grandissima.
Si può dare maggiore ergonomia alla UI e concetti come dependency
property e il binding di WPF rendono la vita decisamente più semplice.
Non c'è paragone.

Fattori a "sfavore" (nel senso che ti ci vuole tempo):
- curva di apprendimento
- necessità di studiare e ripensare l'applicazione perché la UI va
impostata in modo differente da come si fa con Winform.”

 

e di Mauro Servienti [MVP]

 

“>> per le applicazioni come un gestionale WPF lo vedo alla
>> grandissima.

>
> Mi hai chiarito molte idee, penso proprio che sceglierò WPF!
> Grazie!


aggiungo a quanto detto da Raff:

- sforzati di studiare il modello Model-View-ViewModel perchè è la
manna e ti da una flessibilità veramente notevole;
- ogni volta che ti ritrovi con a l necessità di aggiungere ad un
controllo xaml l'attributo x:Name per referenziarlo da "codebehind"
fermati, forse stai seguendo un approccio alla Windows Form;
- sforzati di pensare come un designer html, che ha il concetto di
"flow", per il quale la gravità è in alto a sinistra e per il quale è
molto naturale che tutto si adatti alle dimensioni del container;

per il resto:
- imposta il designer di Visual Studio (Tools --> Options --> bla bla)
per visualizzare direttamente lo xaml, altrimenti piangi.
- usa Expression Blend (sp1) per il design;
- se usi un tool di source control (CVS, TFS, SVN,
quelloCheVuoiTuBastaCheFunzioni) preparati a piangere un po' perchè
Blend non va per nulla d'accordo con il source control ;-)
- non tenere aperti i due file contenporaneamente in VS e blend perchè
il secondo non sempre si accorge delle modifiche che vengono fatte dal
primo (in VS hai intellisense nello xaml in blend no, quindi ti sefono
entrambi) e ogni tanto ti perdi i pezzi per strada;
- se sei stato uno sviluppatore web della vecchia scuola (quelli che
andavano di blocco note e immaginazione) ci metti poco a prendere la
mano con lo xaml e soffri poco la mancanza di un designer, quindi ti
adatti velocemente a Blend che usi per fare le cose complesse.
- usa san Google Luke ;-)”

 

Il M-V-VM sarà il prossimo argomento

Print | posted on mercoledì 24 marzo 2010 12:09 | Filed Under [ WPF e Silverlight ]

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET