posts - 644, comments - 2003, trackbacks - 137

My Links

News

Raffaele Rialdi website

Su questo sito si trovano i miei articoli, esempi, snippet, tools, etc.

Archives

Post Categories

Image Galleries

Blogs

Links

martedì 11 maggio 2010

WPF e MVVM possono essere un boomerang

Nel weekend ho finito le demo dell'imminente workshop UGIdotNET del 20 Maggio. Nella demo della discovery di WCF4 ho costruito per la parte client una Console e poi una micro applicazione WPF per mostrare meglio i risultati.

Come d'abitudine sono partito impostando il progetto con MVVM e ho cercato di non esagerare per lasciare l'esempio il più pulito possibile.
Da un punto di vista manutentivo ci sono riuscito, questo è il beneficio di MVVM, e la potenza di WPF mi ha permesso di visualizzare le informazioni nel modo che mi è sembrato più chiaro.

Dal punto di vista di "comunicazione" dei concetti base è  un fallimento totale. Ci sono 14 file tra sorgenti e xaml, e se mai dovessi spiegare tutto il giro partirebbe mezza sessione.
Certo questo è uno di quei casi in cui MVVM può essere sacrificato. È solo un esempio che ha lo scopo di essere immediato da capire e non di essere una best practice. Sono sempre stato contrario a mostrare negli esempi di "tecnologia" la cura che andrebbe nel codice di produzione proprio perché sacrifica l'immediatezza della comunicazione.

Allora avrei dovuto forse buttare tutto negli event-handler a beneficio della leggibilità (cosa che non pagherebbe affatto in codice da produzione) ma avrei probabilmente sollevato il disappunto di coloro che sono familiari con WPF e MVVM.

Ecco dunque che torna la cara vecchia console a salvare la situazione. Penso che userò il client WPF per mostrare cosa si ottiene, e il client console per analizzare le parti salienti del codice di WCF4.
Per chi sta pensando a Winform, ritengo che sia una spada di Damocle. Con Winform è facile partire con poco codice e in un attimo il progetto si dilata a dismisura senza ottenere nemmeno lontanamente i risultati di WPF.

Certamente il mio caso è molto particolare, ma questo solleva ancora una volta l'annoso problema del mancato supporto nativo di WPF a MVVM. Se le classi di infrastruttura di MVVM fossero dentro gli assembly del framework, l'esempio sarebbe più snello e più condivisibile con chi non è ancora praticissimo di WPF.

posted @ lunedì 1 gennaio 0001 00:00 | Feedback (5) |

Powered by:
Powered By Subtext Powered By ASP.NET