sirar salih og aslak eide
DESCRIPTION
Sirar Salih og Aslak Eide. Hvordan strukturere en WPF applikasjon ved hjelp av Model-View-ViewModel (MVVM ). Innhold. Litt om oss og hva vi jobber med Model-View- ViewModel patternet DataBinding og Commands MVVM Light Toolkit rammeverket EventToCommand , RelayCommand , Messaging - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Sirar Salih og Aslak Eide](https://reader031.vdocuments.net/reader031/viewer/2022020102/56816359550346895dd4179a/html5/thumbnails/1.jpg)
Teknologi for et bedre samfunn 1
Sirar Salih og Aslak Eide
Hvordan strukturere en WPF applikasjon ved hjelp av Model-View-ViewModel (MVVM)
![Page 2: Sirar Salih og Aslak Eide](https://reader031.vdocuments.net/reader031/viewer/2022020102/56816359550346895dd4179a/html5/thumbnails/2.jpg)
Teknologi for et bedre samfunn
1. Litt om oss og hva vi jobber med2. Model-View-ViewModel patternet3. DataBinding og Commands4. MVVM Light Toolkit rammeverket5. EventToCommand, RelayCommand, Messaging6. Demo
2
Innhold
![Page 3: Sirar Salih og Aslak Eide](https://reader031.vdocuments.net/reader031/viewer/2022020102/56816359550346895dd4179a/html5/thumbnails/3.jpg)
Teknologi for et bedre samfunn 3
SINTEF
![Page 4: Sirar Salih og Aslak Eide](https://reader031.vdocuments.net/reader031/viewer/2022020102/56816359550346895dd4179a/html5/thumbnails/4.jpg)
Teknologi for et bedre samfunn
• BRIDGE - Bridging resources and agencies in large-scale emergency management
• Nye løsninger for samhandling under ulykker
• 14 partnere fra 7 land. Tidsramme på 4 år
• Finansiert av EU 7th Framework Programme
4
BRIDGE prosjektet
![Page 5: Sirar Salih og Aslak Eide](https://reader031.vdocuments.net/reader031/viewer/2022020102/56816359550346895dd4179a/html5/thumbnails/5.jpg)
Teknologi for et bedre samfunn 5
Hva vi jobber med for tiden • Utvikler et kartbasert system som understøtter felles
situasjonsforståelse på tvers av nødetatene ved å gi en oppdatert oversikt over hendelsen.
![Page 6: Sirar Salih og Aslak Eide](https://reader031.vdocuments.net/reader031/viewer/2022020102/56816359550346895dd4179a/html5/thumbnails/6.jpg)
Teknologi for et bedre samfunn
• UI rammeverk for å utvikle "rich, interactive client applications"
• Extensible Application Markup Language (XAML)
6
Windows Presentation Foundation (WPF)
![Page 7: Sirar Salih og Aslak Eide](https://reader031.vdocuments.net/reader031/viewer/2022020102/56816359550346895dd4179a/html5/thumbnails/7.jpg)
Teknologi for et bedre samfunn
• Utbredt pattern for å understøtte: • Maintainability• Testability• Blendability
• Basert på Model-View-Controller (MVC)
7
Model-View-ViewModel (MVVM)
![Page 8: Sirar Salih og Aslak Eide](https://reader031.vdocuments.net/reader031/viewer/2022020102/56816359550346895dd4179a/html5/thumbnails/8.jpg)
Teknologi for et bedre samfunn 8
View
ViewModel
Model
User interface
The model of the view
Domain model
![Page 9: Sirar Salih og Aslak Eide](https://reader031.vdocuments.net/reader031/viewer/2022020102/56816359550346895dd4179a/html5/thumbnails/9.jpg)
Teknologi for et bedre samfunn
• For å etablere forbindelse mellom UI og business logic.• Gjør det mulig for Viewet å binde til properties i ViewModel.• Kontekst for binding settes i DataContext• Forbindelsen kan gå begge veier.
9
DataBinding
![Page 10: Sirar Salih og Aslak Eide](https://reader031.vdocuments.net/reader031/viewer/2022020102/56816359550346895dd4179a/html5/thumbnails/10.jpg)
Teknologi for et bedre samfunn
• Gjør det mulig å kalle en metode i ViewModel fra Viewet • Eksponerer en metode i ViewModel i form av en property • Kan være "DataBound" fordi den er en property• Implementasjon av ICommand interfacet
10
Commands
![Page 11: Sirar Salih og Aslak Eide](https://reader031.vdocuments.net/reader031/viewer/2022020102/56816359550346895dd4179a/html5/thumbnails/11.jpg)
Teknologi for et bedre samfunn 11
View
ViewModel
DataBinding
Model
Commands
![Page 12: Sirar Salih og Aslak Eide](https://reader031.vdocuments.net/reader031/viewer/2022020102/56816359550346895dd4179a/html5/thumbnails/12.jpg)
Teknologi for et bedre samfunn 12
MVVM rammeverk
Carbon MVVM
Cocktail
MVVM foundationCinch
MVVM Cross
Ocean
Core MVVM
Onyx
GoldlightReactive UI Catel
Jounce
Caliburn
Xomega
Prism
MVVM Light
![Page 13: Sirar Salih og Aslak Eide](https://reader031.vdocuments.net/reader031/viewer/2022020102/56816359550346895dd4179a/html5/thumbnails/13.jpg)
Teknologi for et bedre samfunn 13
MVVM Light Toolkit
• Breaking the monotony• Small and simple• Essentials library• Extras library • Project templates• Code snippets
![Page 14: Sirar Salih og Aslak Eide](https://reader031.vdocuments.net/reader031/viewer/2022020102/56816359550346895dd4179a/html5/thumbnails/14.jpg)
Teknologi for et bedre samfunn
• Interaction triggers gjør det mulig å definere en trigger for hvilken som helst event og binde denne til en Command
• EventToCommand er ekstrafunksjonalitet fra MVVM Light Toolkit som lar deg sende med EventArgs til ViewModel:
14
EventToCommand
![Page 15: Sirar Salih og Aslak Eide](https://reader031.vdocuments.net/reader031/viewer/2022020102/56816359550346895dd4179a/html5/thumbnails/15.jpg)
Teknologi for et bedre samfunn
• Alternativ til Command og RoutedCommand• Implementer ICommand interfacet• RelayCommand relayer Execute til en egendefinert metode • Man slipper å lage en egen klasse for hver custom Command
15
RelayCommand
![Page 16: Sirar Salih og Aslak Eide](https://reader031.vdocuments.net/reader031/viewer/2022020102/56816359550346895dd4179a/html5/thumbnails/16.jpg)
Teknologi for et bedre samfunn 16
Messaging
View
ViewModelView
ViewModel
View
ViewModelMessages
Messages
![Page 17: Sirar Salih og Aslak Eide](https://reader031.vdocuments.net/reader031/viewer/2022020102/56816359550346895dd4179a/html5/thumbnails/17.jpg)
Teknologi for et bedre samfunn 17
Messaging
![Page 18: Sirar Salih og Aslak Eide](https://reader031.vdocuments.net/reader031/viewer/2022020102/56816359550346895dd4179a/html5/thumbnails/18.jpg)
Teknologi for et bedre samfunn
• Utility klasse som alle ViewModels arver fra. • Minsker mengden kode man må skrive om igjen.• RaisePropertyChanged metode +++
18
ViewModelBase
![Page 19: Sirar Salih og Aslak Eide](https://reader031.vdocuments.net/reader031/viewer/2022020102/56816359550346895dd4179a/html5/thumbnails/19.jpg)
Teknologi for et bedre samfunn
• Nyttig når man jobber på multi-threaded WPF applikasjoner. • Gjør det mulig å kalle en metode på UI tråden fra en annen tråd.
19
DispatcherHelper
![Page 20: Sirar Salih og Aslak Eide](https://reader031.vdocuments.net/reader031/viewer/2022020102/56816359550346895dd4179a/html5/thumbnails/20.jpg)
Teknologi for et bedre samfunn 20
Demo