MVVM - Model-View-ViewModel

Post on 18-Dec-2014

4.270 views 0 download

description

Slides from my recent NT Konferenca MVVM talk.

Transcript of MVVM - Model-View-ViewModel

VSE KAR STE ŽELELI VEDETI O MVVM

Andrej Tozon (ANT Andrej Tozon s.p.)

VSE KAR STE ŽELELI VEDETI O MVVM

Andrej Tozon (ANT Andrej Tozon s.p.)

MVVM

MODEL – VIEW – VIEWMODEL

VZOREC!!!

VZDRŽEVANJE

TESTIRANJE

„BLENDABILITY“

Predstavitveni sloj

Interakcija in stanje

Podatki in domenska logika

VZDRŽEVANJETESTIRANJE„BLENDABILITY“LOČEVANJE ODGOVORNOSTI

(V) View

(C) Controller

(M) Model

MVC

VZDRŽEVANJETESTIRANJE„BLENDABILITY“LOČEVANJE ODGOVORNOSTI

(V) View

(P) Presenter

(M) Model

MVP

VZDRŽEVANJETESTIRANJE„BLENDABILITY“LOČEVANJE ODGOVORNOSTI

(V) View

(VM) ViewModel

(M) Model

MVVM

VZDRŽEVANJETESTIRANJE„BLENDABILITY“LOČEVANJE ODGOVORNOSTI

View

ViewModel

Model

Vezi in ukaziObveščanje ospremembah

MVVM

<… “{Binding …} “… />

INotifyPropertyChanged

ObservableCollection<T>

Model

Vezi in ukaziObveščanje ospremembah

MVVM

MODEL, VIEW, VIEWMODEL

PODATKOVNO POVEZOVANJE

SERVICE AGENTS

VALUE CONVERTERS

VISUAL STATE MANAGER

COMMANDS

BEHAVIORS[= Trigger + Action]

POMOČNICE (SERVICES)

KURIR (MESSENGER)

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

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

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

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/

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

andrej@tozon.info@andrejt

http://tozon.info/blog