0
Introduzione a MVVM<br />Massimo Bonanni<br />massimo.bonanni@domusdotnet.org	http://codetailor.blogspot.com<br />http://t...
Agenda<br />I Pattern, questi sconosciuti<br />Da MVC a MVVM, un pò di storia<br />MVVM e Presentation Framework<br />Clie...
I Pattern, questi sconosciuti<br />Un pattern è «una soluzione progettuale generale a un problema ricorrente»;<br />Utiliz...
I Pattern, questi sconosciuti<br />Esistono diversi tipi di Pattern:<br />I pattern della «banda dei quattro»:<br />Patter...
In principio era MVC: la genealogia di MVVM<br />1979<br />1990<br />2004<br />2005<br />
Briciole di MVC<br />Pattern architetturale pensato nel 1979 da TrygveReenskaugper Smalltalk;<br />Scopo del pattern è que...
MVC in Action<br />Controller<br />Notifica interazione utente<br />Invocazione<br />Model<br />1<br />2<br />Model<br />V...
MVC in Action<br />
Briciole di MVP <br />Nel pattern MVP, il ruolo del controller diventa quello di orchestratore tra View e Model;<br />La V...
MVP Passive View<br />Presenter<br />Notifica interazione utente<br />Invocazione<br />Model<br />2<br />1<br />3<br />Mod...
MVP Passive View<br />
Briciole di PM e MVVM <br />”Presentation Model pulls the state and behavior of the view out into a model class that is pa...
Briciole di PM e MVVM <br />MVVM altro non è che una «specializzazione» idiomatica di PM basata sulla tecnologia del prese...
Model View ViewModel<br />View Model<br />Notifica interazione utente (Command)<br />Invocazione<br />Model<br />1<br />2<...
Model View ViewModel – Command<br />
Model View ViewModel – Property Changed<br />
DEMO<br />Il client di Shared Bookshelf Manager<br />
Riferimenti a Caliburn.Micro<br />Sito web:<br />	http://caliburnmicro.codeplex.com/<br />
Installare Caliburn.Micro<br />Download dal sito web e reference delle dll;<br />Aggiunta delle reference con NuGet:<br />
DEMO<br />Caliburn.Micro e Nuget<br />
Sponsor<br />
Upcoming SlideShare
Loading in...5
×

Introduzione a MVVM e Caliburn.Micro

1,265

Published on

Prima sessione dell'evento "MVVM senza 'fronzoli' con Caliburn.Micro" organizzato da DomusDotNet il 17 Giugno 2011

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,265
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
24
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Introduzione a MVVM e Caliburn.Micro"

  1. 1. Introduzione a MVVM<br />Massimo Bonanni<br />massimo.bonanni@domusdotnet.org http://codetailor.blogspot.com<br />http://twitter.com/massimobonanni<br />
  2. 2. Agenda<br />I Pattern, questi sconosciuti<br />Da MVC a MVVM, un pò di storia<br />MVVM e Presentation Framework<br />Client Shared Bookshelf Manager<br />Avviciniamoci a Caliburn.Micro<br />
  3. 3. I Pattern, questi sconosciuti<br />Un pattern è «una soluzione progettuale generale a un problema ricorrente»;<br />Utilizzare un pattern significa :<br />non dover «inventare la ruota» ogni volta;<br />risolvere il problema in maniera «standard» garantendo:<br />Comprensibilità del software;<br />Manutenibilità del software;<br />Ottimizzazione del software.<br />
  4. 4. I Pattern, questi sconosciuti<br />Esistono diversi tipi di Pattern:<br />I pattern della «banda dei quattro»:<br />Pattern creazionali (ed esempio il Singleton);<br />Pattern strutturali (ad esempio l’Adapter);<br />Pattern comportamentali ( ad esempio l’Iterator).<br />I pattern architetturali: sono tutti quei patterns che definiscono l’organizzazione strutturale di un sistema (ad esempio MVC);<br />I pattern di metodologia;<br />I pattern di concorrenza.<br />
  5. 5. In principio era MVC: la genealogia di MVVM<br />1979<br />1990<br />2004<br />2005<br />
  6. 6. Briciole di MVC<br />Pattern architetturale pensato nel 1979 da TrygveReenskaugper Smalltalk;<br />Scopo del pattern è quello di separare in manieranettatuttociòchefa parte della UI da ciòche è logica di dominioconsentendounamaggioremodularità e testabilità;<br />MVC è l’acronimo di Model-View-Controller:<br />Model : implementa la logica "business", ovvero quell'insieme di regole e comportamenti che attengono puramente al dominio del problema trattato (algoritmi di calcolo, validazione dei dati, ecc.). Il Model è agnostico rispetto alla tecnologia usata per la UI; <br />View : si tratta, sostanzialmente della UI (presentazione dati, interazione con l’utente, etc., etc.);<br />Controller : è la parte che svolge il ruolo di coordinamento e mediazione degli altri componenti;<br />
  7. 7. MVC in Action<br />Controller<br />Notifica interazione utente<br />Invocazione<br />Model<br />1<br />2<br />Model<br />View<br />4<br />3<br />La view<br />«osserva»<br />il Model<br />La View si<br />aggiorna<br />
  8. 8. MVC in Action<br />
  9. 9. Briciole di MVP <br />Nel pattern MVP, il ruolo del controller diventa quello di orchestratore tra View e Model;<br />La View, rispetto a MVC, è in grado di:<br />Gestire (in virtù di unamiglioratatecnologia) direttamente le “gesture” dell’utente;<br />Gestire la maggior parte delleattività di presentazione (purchè la logicasiasemplice e non sia di dominio);<br />Esistono due «flavour»:<br />Supervising Controller: la view è in grado di interagire (tipicamente con il pattern observer) con il model;<br />Passive View: la view è «passiva» ed è interamente il presenter ad interagire con il model.<br />
  10. 10. MVP Passive View<br />Presenter<br />Notifica interazione utente<br />Invocazione<br />Model<br />2<br />1<br />3<br />Model<br />View<br />Aggiornamento<br />della View<br />
  11. 11. MVP Passive View<br />
  12. 12. Briciole di PM e MVVM <br />”Presentation Model pulls the state and behavior of the view out into a model class that is part of the presentation. The Presentation Model coordinates with the domain layer and provides an interface to the view that minimizes decision making in the view. The view either stores all its state in the Presentation Model or synchonizes its state with Presentation Model frequently”<br />Martin Fowler<br />(http://martinfowler.com/eaaDev/PresentationModel.html)<br />
  13. 13. Briciole di PM e MVVM <br />MVVM altro non è che una «specializzazione» idiomatica di PM basata sulla tecnologia del presentation Framework di Microsoft;<br />Introdotto da John Grossman durante lo sviluppo di WPF;<br />Il ViewModel rappresenta, in maniera astratta, tutte le informazioni ed i comportamenti della corrispondente View;<br />La View si limita a visualizzare graficamente quanto esposto dal ViewModel;<br />Di fondamentale importanza l’esistenza del motore di DataBinding del Presentation Framework.<br />
  14. 14. Model View ViewModel<br />View Model<br />Notifica interazione utente (Command)<br />Invocazione<br />Model<br />1<br />2<br />3<br />Model<br />View<br />Aggiornamento<br />della View<br />(PropertyChanged)<br />
  15. 15. Model View ViewModel – Command<br />
  16. 16. Model View ViewModel – Property Changed<br />
  17. 17. DEMO<br />Il client di Shared Bookshelf Manager<br />
  18. 18. Riferimenti a Caliburn.Micro<br />Sito web:<br /> http://caliburnmicro.codeplex.com/<br />
  19. 19. Installare Caliburn.Micro<br />Download dal sito web e reference delle dll;<br />Aggiunta delle reference con NuGet:<br />
  20. 20. DEMO<br />Caliburn.Micro e Nuget<br />
  21. 21. Sponsor<br />
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×