MVVM - Model-View-ViewModel

24
VSE KAR STE ŽELELI VEDETI O MVVM Andrej Tozon (ANT Andrej Tozon s.p.)

description

Slides from my recent NT Konferenca MVVM talk.

Transcript of MVVM - Model-View-ViewModel

Page 1: MVVM - Model-View-ViewModel

VSE KAR STE ŽELELI VEDETI O MVVM

Andrej Tozon (ANT Andrej Tozon s.p.)

Page 2: MVVM - Model-View-ViewModel

VSE KAR STE ŽELELI VEDETI O MVVM

Andrej Tozon (ANT Andrej Tozon s.p.)

Page 3: MVVM - Model-View-ViewModel

MVVM

MODEL – VIEW – VIEWMODEL

Page 4: MVVM - Model-View-ViewModel

VZOREC!!!

Page 5: MVVM - Model-View-ViewModel
Page 6: MVVM - Model-View-ViewModel

VZDRŽEVANJE

Page 7: MVVM - Model-View-ViewModel

TESTIRANJE

Page 8: MVVM - Model-View-ViewModel

„BLENDABILITY“

Page 9: MVVM - Model-View-ViewModel

Predstavitveni sloj

Interakcija in stanje

Podatki in domenska logika

VZDRŽEVANJETESTIRANJE„BLENDABILITY“LOČEVANJE ODGOVORNOSTI

Page 10: MVVM - Model-View-ViewModel

(V) View

(C) Controller

(M) Model

MVC

VZDRŽEVANJETESTIRANJE„BLENDABILITY“LOČEVANJE ODGOVORNOSTI

Page 11: MVVM - Model-View-ViewModel

(V) View

(P) Presenter

(M) Model

MVP

VZDRŽEVANJETESTIRANJE„BLENDABILITY“LOČEVANJE ODGOVORNOSTI

Page 12: MVVM - Model-View-ViewModel

(V) View

(VM) ViewModel

(M) Model

MVVM

VZDRŽEVANJETESTIRANJE„BLENDABILITY“LOČEVANJE ODGOVORNOSTI

Page 13: MVVM - Model-View-ViewModel

View

ViewModel

Model

Vezi in ukaziObveščanje ospremembah

MVVM

Page 14: MVVM - Model-View-ViewModel

<… “{Binding …} “… />

INotifyPropertyChanged

ObservableCollection<T>

Model

Vezi in ukaziObveščanje ospremembah

MVVM

Page 15: MVVM - Model-View-ViewModel

MODEL, VIEW, VIEWMODEL

PODATKOVNO POVEZOVANJE

SERVICE AGENTS

Page 16: MVVM - Model-View-ViewModel

VALUE CONVERTERS

Page 17: MVVM - Model-View-ViewModel

VISUAL STATE MANAGER

COMMANDS

BEHAVIORS[= Trigger + Action]

Page 18: MVVM - Model-View-ViewModel

POMOČNICE (SERVICES)

Page 19: MVVM - Model-View-ViewModel

KURIR (MESSENGER)

Page 20: MVVM - Model-View-ViewModel

POVZETEK

• View, Model, ViewModel• Podatkovno povezovanje• Ukazi in alternativa v Code-behind za SL < 4 in WP• Nepotrebna uporaba ObservableCollection

• Service Agents• Abstrakcija podatkovnih virov in poenostavitev uporabe

• Value Converters• Slabosti in alternative

Page 21: MVVM - Model-View-ViewModel

POVZETEK

• Visual State Manager• Prehajanje med predvidenimi stanji na UV

• Behaviors• Trigger, Action, Behavior

• Pomočnice (Services)• Razklapljanje oz. abstrakcija funkcionalnosti

• Kurir (Messenger)• Komunikacija med ViewModeli

Page 22: MVVM - Model-View-ViewModel

POVZETEK

• ViewModelLocator• Zbirno mesto ViewModelov

• IoC• Krmiljenje funkcionalnosti

• Uporaba na več napravah• Ponovna uporaba kode• Večje spremembe le na UV…• … ostalo je v glavnem konfiguracija

Page 23: MVVM - Model-View-ViewModel

OGRODJA MVVM

• MVVM Light• http://mvvmlight.codeplex.com/

• Caliburn• http://caliburn.codeplex.com/• http://caliburnmicro.codeplex.com/

• Prism• http://compositewpf.codeplex.com

• ReactiveUI• http://www.reactiveui.net/

Page 24: MVVM - Model-View-ViewModel

VPRAŠANJA?Po zaključku predavanja prosim izpolnite vprašalnik.

Vprašalniki bodo poslani na vaš e-naslov, dostopni pa bodo tudi preko profila na spletnem portalu konference. www.ntk.si.

Z izpolnjevanjem le tega pripomorete k izboljšanju konference.

Hvala!

Andrej TozonANT Andrej Tozon s.p.Microsoft MVP: Silverlight

[email protected]@andrejt

http://tozon.info/blog