12. Cogliere le caratteristiche essenziali Comunicazione ViewModel -> View Comunicazione View -> ViewModel Ciclo di vita dei ViewModel UI composition (dinamica)
13. Eliminare le «cerimonie» superflue del MVVM Associazione delle View con i ViewModel Istanziazione dei Relay Command Configurazione dei binding Implementazione di INotifyPropertyChanged
14. Rendere semplici le operazioni più comuni Convenzioni UI thread marshaling UI composition Gestione Window/Dialog Operazioni asincrone
17. MVVM senza “fronzoli”con Caliburn Microseconda parte Marco Amendola marco.amendola@domusdotnet.org http://marcoamendola.wordpress.com http://twitter.com/marcoamendola
18. Action Messaging Sono dei Command più «potenti» Separazione Trigger/Action Bubbling Parametri contestuali Esecuzione mediata
19. UI Composition Due diversi approcci: View-first E’ la view che guida la composizione Model-first Segue la struttura e le «indicazioni» (anche dinamiche) del VM
27. Application Model(Screen & Conductor) Composizione dinamica Ciclo di vita Consenso alla chiusura Window Manager
28. Coroutine Cosa sono? Wikipedia: «Coroutines are computer program components that generalize subroutines to allow multiple entry points for suspending and resuming execution at certain locations.» A cosa servono? Chiamate asincrone Testabilità Migliore leggibilità
Comunicazione ViewModel -> View Binding proprietàUso di INPC come comandi indirettiMVPEvent aggregatorComunicazione View -> ViewModelBinding proprietà ActionsEvent aggregatorCiclo di vita dei ViewModelNon garantito da XAMLView-First, Model-FirstUI CompositionView-Driven, Model-DrivenTemplating
Associare le view con i VM- creazione istanze, impostazione DataContextRelay Command- istanziazione, aggancio e aggiornamento dei metodi «guardia»Binding-configurazione di binding mode, validazione e converter
ConvenzioniView locationProperty binding + configurazioneAction bindingAuto templateUI thread marshalingNoioso ed error-proneUI compositionGuidare dal VMLegarsi a interfacceGestione Window/DialogGuidare da VMNo dipendenze da Sys.WinPlatform abstractionOperazioni asincroneEventiTestabilità
Composizione dinamicaConductor<>, .Collection.OneActive, .AllActiveCambiare schermoAggiungere o rimuovere da un setPannelli multipliCiclo di vitaInizializzazione/ChiusuraAttivazioneConsenso alla chiusura- Asincrono!Window Manager
Task singoloRappresentazione con oggettoEsecuzioneAltri prima e dopoLa freccia è il tempo
Esecuzione sequenziale sincronaSequenzaNessuno spazio per altriSi blocca la UI
Esecuzione sequenziale asincronaInizio, fineC’è spazio per altri