Top Banner
Windows 8 e MVVM Marco Amendola marcoamendola.wordpress.com blogs.ugidotnet.org/marcoamendola [email protected] @marcoamendola
23

Win8@work - Windows 8 e MVVM

Jul 05, 2015

Download

Education

Marco Amendola
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Win8@work - Windows 8 e MVVM

Windows 8 e MVVM

Marco Amendolamarcoamendola.wordpress.com

blogs.ugidotnet.org/marcoamendola

[email protected]

@marcoamendola

Page 2: Win8@work - 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 vedremo?

Page 3: Win8@work - Windows 8 e MVVM

Windows 8 e MVVM

MVVM. Ancora?!

Ma è una fissazione!

Page 4: Win8@work - Windows 8 e MVVM

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

Page 5: Win8@work - Windows 8 e MVVM

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à

Page 6: Win8@work - Windows 8 e MVVM

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à

Page 7: Win8@work - Windows 8 e MVVM

@Work

Struttura di una soluzione Caliburn.Micro

Windows 8 e MVVM

Page 8: Win8@work - 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)

Page 9: Win8@work - Windows 8 e MVVM

@Work

Diversi tipi di binding delle proprietà

Convenzioni

Casi «pelosi» con proprietà non «bindabili»

Windows 8 e MVVM

Page 10: Win8@work - Windows 8 e MVVM

INotifyPropertyChanged?

Fody. E potete dimenticarvene.

Windows 8 e MVVM

Page 11: Win8@work - Windows 8 e MVVM

@Work

Test su notifica

Windows 8 e MVVM

Page 12: Win8@work - Windows 8 e MVVM

Cos’è allora il ViewModel?

Vista del Modello

o Modello della Vista

Windows 8 e MVVM

Page 13: Win8@work - Windows 8 e MVVM

Windows 8 e MVVM

Avvio di attività

• approccio tipico:

Commands.

• Caliburn.Micro: convenzioni.

E se non basta: messaggi.

Page 14: Win8@work - Windows 8 e MVVM

@Work

Avvio di azioni con Caliburn.Micro

Convenzioni e ActionMessages

Test sulle funzioni «guard»

Windows 8 e MVVM

Page 15: Win8@work - 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

Page 16: Win8@work - Windows 8 e MVVM

@Work

Azioni asincrone

Gestione errori

Windows 8 e MVVM

Page 17: Win8@work - Windows 8 e MVVM

Windows 8 e MVVM

UI Composition

• “Subroutine” per l’interfaccia

utente

• Templating

• VM esposti da proprietà

modificate a runtime

Page 18: Win8@work - Windows 8 e MVVM

Windows 8 e MVVM

UI Composition

• Occorre gestire il ciclo di vita

dei View Model

• Appication Model

Page 19: Win8@work - Windows 8 e MVVM

@Work

UI Composition e Application Model

Windows 8 e MVVM

Page 20: Win8@work - 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

Page 21: Win8@work - Windows 8 e MVVM

Windows 8 e MVVM

Domande?

Page 22: Win8@work - Windows 8 e MVVM

Link utili

caliburnmicro.codeplex.com

github.com/SimonCropp/Fody

Page 23: Win8@work - Windows 8 e MVVM

Grazie agli sponsor