Win8@work - Windows 8 e MVVM

Post on 05-Jul-2015

267 views 1 download

Transcript of Win8@work - Windows 8 e MVVM

Windows 8 e MVVM

Marco Amendolamarcoamendola.wordpress.com

blogs.ugidotnet.org/marcoamendola

marco.amendola@domusdotnet.org

@marcoamendola

• MVVM: cosa cambia con Xaml su WinRT?

• Cos’è MVVM e perché si usa

• Caliburn.Micro per WinRT: struttura, vantaggi

tecnici e qualitativi

• Binding delle proprietà del ViewModel

• Avvio di azioni; azioni asincrone

• UI composition

• Unit test

Cosa vedremo?

Windows 8 e MVVM

MVVM. Ancora?!

Ma è una fissazione!

Windows 8 e MVVM

Quanto e come cambia

MVVM applicato a Xaml su

WinRT?

• Differenze dovute al markup

• Differenze dovute al runtime

• Differenze nel modello

applicativo

Cos’è MVVM e perché si usa

E’ un pattern

Indica una impostazione

sperimentata e conveniente

L’uso in contesti Enterprise

ha dimostrato che facilita:

• Qualità

• Manutenibilità

• Modularità

Cos’è MVVM e perché si usa

Strumenti per app. LOB

• MVVM, Caliburn.Micro, Fody

Rinforzo positivo di buone

pratiche e convenzioni

• Convention over

Configuration

• Inversion of Control

• Testabilità

@Work

Struttura di una soluzione Caliburn.Micro

Windows 8 e MVVM

Windows 8 e MVVM

Binding delle proprietà

• del DataModel: il classico

utilizzo per la presentazione

di dati

• dello Screen: pattern

Presentation Model (la View

replica lo stato del Model)

@Work

Diversi tipi di binding delle proprietà

Convenzioni

Casi «pelosi» con proprietà non «bindabili»

Windows 8 e MVVM

INotifyPropertyChanged?

Fody. E potete dimenticarvene.

Windows 8 e MVVM

@Work

Test su notifica

Windows 8 e MVVM

Cos’è allora il ViewModel?

Vista del Modello

o Modello della Vista

Windows 8 e MVVM

Windows 8 e MVVM

Avvio di attività

• approccio tipico:

Commands.

• Caliburn.Micro: convenzioni.

E se non basta: messaggi.

@Work

Avvio di azioni con Caliburn.Micro

Convenzioni e ActionMessages

Test sulle funzioni «guard»

Windows 8 e MVVM

Windows 8 e MVVM

Azioni asincrone

• Async/Await risolve

elegantemente un problema

complesso (“bagno di

sangue”)

• Percorso sequenziale

visibile, ma composto da

passi potenzialmente

asincroni e di lunga durata

@Work

Azioni asincrone

Gestione errori

Windows 8 e MVVM

Windows 8 e MVVM

UI Composition

• “Subroutine” per l’interfaccia

utente

• Templating

• VM esposti da proprietà

modificate a runtime

Windows 8 e MVVM

UI Composition

• Occorre gestire il ciclo di vita

dei View Model

• Appication Model

@Work

UI Composition e Application Model

Windows 8 e MVVM

• MVVM: cosa cambia con Xaml su WinRT?

• Cos’è MVVM e perché si usa

• Caliburn.Micro per WinRT: struttura, vantaggi

tecnici e qualitativi

• Binding delle proprietà del ViewModel

• Avvio di azioni; azioni asincrone

• UI composition

• Unit test

Cosa abbiamo visto**se non ho sforato i tempi

Windows 8 e MVVM

Domande?

Link utili

caliburnmicro.codeplex.com

github.com/SimonCropp/Fody

Grazie agli sponsor