Understanding the MVVM pattern Laurent Bugnion Senior User Experience Integrator IdentityMine...
-
Upload
natalie-newsum -
Category
Documents
-
view
217 -
download
0
Transcript of Understanding the MVVM pattern Laurent Bugnion Senior User Experience Integrator IdentityMine...
Understanding the MVVM patternLaurent Bugnion
Senior User Experience Integrator
IdentityMine
http[blog|www]galasoftch
What is MVVM
bull A weird acronymbull Model ndash View ndash ViewModelbull laquo MVVM in a SLOOB with SLUT raquo
bull Woven into WPFSLbull Some confusion
bull MVVM is really just the patternbull The rest are helpers practices etc
The MVC pattern
Model View
Controller
The Passive View pattern
Model View
Controller
The Presentation Model pattern
Model View
Presentation Model
(ViewModel)
DataBinding
Blendability
bull Testability Maintainability Blendability
bull ldquoThe ability to be edited in Blendrdquo
bull (and Visual Studio designerhellip)
bull Differentiate code in design and runtime
bull Create design time data
DEMO
Hello MVVM (and Hi Blend)
Bridging the gap
View
ViewModel
DataBinding Commands Messages
Model
Bridging the gap
View
ViewModelView
ViewModel
View
ViewModelMessages
Messages+ callback
Commands
bull ldquoPoint of entryrdquo for a methodrdquo
bull Can be data bound
bull ICommand interface
bull Execute method
bull CanExecute method
bull CanExecuteChanged event handler
DEMO
Commandsand RelayCommands
RelayCommands
RelayCommand MyCommand = new RelayCommand( () =gt () =gt true | false)
RelayCommandltTgt MyGenericCommand = new RelayCommandltTgt( p =gt p =gt true | false)
Messaging
bull Should be simple by default
bull Possible to open filtered channels
bull To a target Type (or an Interface)
bull With a Token
bull With various Messenger instances
bull No constraints at all
DEMOMessaging
Messaging
MessengerDefaultRegisterltTgt( this p =gt DoSomething(p))
MessengerDefaultSendltTgt(p)
MVVM Light Toolkit
bull ldquoBreaking the monotonyrdquo
bull httpwwwgalasoftchmvvmgetstarted
bull httpmvvmlightcodeplexcom
bull V3 released at MIX10bull Keep it smallbull Keep it simple
MVVM Light Libraries V3
bull ESSENTIALSbull RelayCommandbull Messengerbull ViewModelBase
bull EXTRASbull EventToCommandbull DispatcherHelper
MVVM Light Tools V3
bull Project templates (VS + Blend)
bull Item templates (VS + Blend)
bull Code snippets
DEMO
MVVM Light ToolkitUnityBlendability
Flaws of MVVM
bullToo much code neededbull INotifyPropertyChangedbullCommands
bullSome operations are tricky (set focushellip)
bullNot applicable to ASPNET etcbullMessage to community is not clear
Debunking the myths
bullldquoNo code in the code behindrdquobull ldquoIf you put code in the Views code-behind the MVVM police will take your family awayrdquo
bull ldquoNo need for convertersrdquo
bullldquoMVVM is only suitable for big projectsrdquo
bullldquoMVVM costs performancerdquobullldquoMVVM is complex makes my head hurtrdquo
Debunking the myths
bullldquoI donrsquot need separation because I donrsquot have a designerrdquo
bullldquoYou cannot use MVVM with other patternsrdquo
bullldquoMVVM will make you rich and attractiverdquo
DEMO
MVVM on theWindows Phone 7
THANKS
httpbloggalasoftch
httpwwwgalasoftchmvvmgetstarted
LBugnion
- Slide 1
- Understanding the MVVM pattern
- What is MVVM
- The MVC pattern
- The Passive View pattern
- The Presentation Model pattern
- Blendability
- Hello MVVM (and Hi Blend)
- Bridging the gap
- Bridging the gap (2)
- Commands
- Commands and RelayCommands
- RelayCommands
- Messaging
- Messaging (2)
- Messaging (3)
- MVVM Light Toolkit
- MVVM Light Libraries V3
- MVVM Light Tools V3
- MVVM Light Toolkit Unity Blendability
- Flaws of MVVM
- Debunking the myths
- Debunking the myths (2)
- MVVM on the Windows Phone 7
- Slide 25
-
What is MVVM
bull A weird acronymbull Model ndash View ndash ViewModelbull laquo MVVM in a SLOOB with SLUT raquo
bull Woven into WPFSLbull Some confusion
bull MVVM is really just the patternbull The rest are helpers practices etc
The MVC pattern
Model View
Controller
The Passive View pattern
Model View
Controller
The Presentation Model pattern
Model View
Presentation Model
(ViewModel)
DataBinding
Blendability
bull Testability Maintainability Blendability
bull ldquoThe ability to be edited in Blendrdquo
bull (and Visual Studio designerhellip)
bull Differentiate code in design and runtime
bull Create design time data
DEMO
Hello MVVM (and Hi Blend)
Bridging the gap
View
ViewModel
DataBinding Commands Messages
Model
Bridging the gap
View
ViewModelView
ViewModel
View
ViewModelMessages
Messages+ callback
Commands
bull ldquoPoint of entryrdquo for a methodrdquo
bull Can be data bound
bull ICommand interface
bull Execute method
bull CanExecute method
bull CanExecuteChanged event handler
DEMO
Commandsand RelayCommands
RelayCommands
RelayCommand MyCommand = new RelayCommand( () =gt () =gt true | false)
RelayCommandltTgt MyGenericCommand = new RelayCommandltTgt( p =gt p =gt true | false)
Messaging
bull Should be simple by default
bull Possible to open filtered channels
bull To a target Type (or an Interface)
bull With a Token
bull With various Messenger instances
bull No constraints at all
DEMOMessaging
Messaging
MessengerDefaultRegisterltTgt( this p =gt DoSomething(p))
MessengerDefaultSendltTgt(p)
MVVM Light Toolkit
bull ldquoBreaking the monotonyrdquo
bull httpwwwgalasoftchmvvmgetstarted
bull httpmvvmlightcodeplexcom
bull V3 released at MIX10bull Keep it smallbull Keep it simple
MVVM Light Libraries V3
bull ESSENTIALSbull RelayCommandbull Messengerbull ViewModelBase
bull EXTRASbull EventToCommandbull DispatcherHelper
MVVM Light Tools V3
bull Project templates (VS + Blend)
bull Item templates (VS + Blend)
bull Code snippets
DEMO
MVVM Light ToolkitUnityBlendability
Flaws of MVVM
bullToo much code neededbull INotifyPropertyChangedbullCommands
bullSome operations are tricky (set focushellip)
bullNot applicable to ASPNET etcbullMessage to community is not clear
Debunking the myths
bullldquoNo code in the code behindrdquobull ldquoIf you put code in the Views code-behind the MVVM police will take your family awayrdquo
bull ldquoNo need for convertersrdquo
bullldquoMVVM is only suitable for big projectsrdquo
bullldquoMVVM costs performancerdquobullldquoMVVM is complex makes my head hurtrdquo
Debunking the myths
bullldquoI donrsquot need separation because I donrsquot have a designerrdquo
bullldquoYou cannot use MVVM with other patternsrdquo
bullldquoMVVM will make you rich and attractiverdquo
DEMO
MVVM on theWindows Phone 7
THANKS
httpbloggalasoftch
httpwwwgalasoftchmvvmgetstarted
LBugnion
- Slide 1
- Understanding the MVVM pattern
- What is MVVM
- The MVC pattern
- The Passive View pattern
- The Presentation Model pattern
- Blendability
- Hello MVVM (and Hi Blend)
- Bridging the gap
- Bridging the gap (2)
- Commands
- Commands and RelayCommands
- RelayCommands
- Messaging
- Messaging (2)
- Messaging (3)
- MVVM Light Toolkit
- MVVM Light Libraries V3
- MVVM Light Tools V3
- MVVM Light Toolkit Unity Blendability
- Flaws of MVVM
- Debunking the myths
- Debunking the myths (2)
- MVVM on the Windows Phone 7
- Slide 25
-
The MVC pattern
Model View
Controller
The Passive View pattern
Model View
Controller
The Presentation Model pattern
Model View
Presentation Model
(ViewModel)
DataBinding
Blendability
bull Testability Maintainability Blendability
bull ldquoThe ability to be edited in Blendrdquo
bull (and Visual Studio designerhellip)
bull Differentiate code in design and runtime
bull Create design time data
DEMO
Hello MVVM (and Hi Blend)
Bridging the gap
View
ViewModel
DataBinding Commands Messages
Model
Bridging the gap
View
ViewModelView
ViewModel
View
ViewModelMessages
Messages+ callback
Commands
bull ldquoPoint of entryrdquo for a methodrdquo
bull Can be data bound
bull ICommand interface
bull Execute method
bull CanExecute method
bull CanExecuteChanged event handler
DEMO
Commandsand RelayCommands
RelayCommands
RelayCommand MyCommand = new RelayCommand( () =gt () =gt true | false)
RelayCommandltTgt MyGenericCommand = new RelayCommandltTgt( p =gt p =gt true | false)
Messaging
bull Should be simple by default
bull Possible to open filtered channels
bull To a target Type (or an Interface)
bull With a Token
bull With various Messenger instances
bull No constraints at all
DEMOMessaging
Messaging
MessengerDefaultRegisterltTgt( this p =gt DoSomething(p))
MessengerDefaultSendltTgt(p)
MVVM Light Toolkit
bull ldquoBreaking the monotonyrdquo
bull httpwwwgalasoftchmvvmgetstarted
bull httpmvvmlightcodeplexcom
bull V3 released at MIX10bull Keep it smallbull Keep it simple
MVVM Light Libraries V3
bull ESSENTIALSbull RelayCommandbull Messengerbull ViewModelBase
bull EXTRASbull EventToCommandbull DispatcherHelper
MVVM Light Tools V3
bull Project templates (VS + Blend)
bull Item templates (VS + Blend)
bull Code snippets
DEMO
MVVM Light ToolkitUnityBlendability
Flaws of MVVM
bullToo much code neededbull INotifyPropertyChangedbullCommands
bullSome operations are tricky (set focushellip)
bullNot applicable to ASPNET etcbullMessage to community is not clear
Debunking the myths
bullldquoNo code in the code behindrdquobull ldquoIf you put code in the Views code-behind the MVVM police will take your family awayrdquo
bull ldquoNo need for convertersrdquo
bullldquoMVVM is only suitable for big projectsrdquo
bullldquoMVVM costs performancerdquobullldquoMVVM is complex makes my head hurtrdquo
Debunking the myths
bullldquoI donrsquot need separation because I donrsquot have a designerrdquo
bullldquoYou cannot use MVVM with other patternsrdquo
bullldquoMVVM will make you rich and attractiverdquo
DEMO
MVVM on theWindows Phone 7
THANKS
httpbloggalasoftch
httpwwwgalasoftchmvvmgetstarted
LBugnion
- Slide 1
- Understanding the MVVM pattern
- What is MVVM
- The MVC pattern
- The Passive View pattern
- The Presentation Model pattern
- Blendability
- Hello MVVM (and Hi Blend)
- Bridging the gap
- Bridging the gap (2)
- Commands
- Commands and RelayCommands
- RelayCommands
- Messaging
- Messaging (2)
- Messaging (3)
- MVVM Light Toolkit
- MVVM Light Libraries V3
- MVVM Light Tools V3
- MVVM Light Toolkit Unity Blendability
- Flaws of MVVM
- Debunking the myths
- Debunking the myths (2)
- MVVM on the Windows Phone 7
- Slide 25
-
The Passive View pattern
Model View
Controller
The Presentation Model pattern
Model View
Presentation Model
(ViewModel)
DataBinding
Blendability
bull Testability Maintainability Blendability
bull ldquoThe ability to be edited in Blendrdquo
bull (and Visual Studio designerhellip)
bull Differentiate code in design and runtime
bull Create design time data
DEMO
Hello MVVM (and Hi Blend)
Bridging the gap
View
ViewModel
DataBinding Commands Messages
Model
Bridging the gap
View
ViewModelView
ViewModel
View
ViewModelMessages
Messages+ callback
Commands
bull ldquoPoint of entryrdquo for a methodrdquo
bull Can be data bound
bull ICommand interface
bull Execute method
bull CanExecute method
bull CanExecuteChanged event handler
DEMO
Commandsand RelayCommands
RelayCommands
RelayCommand MyCommand = new RelayCommand( () =gt () =gt true | false)
RelayCommandltTgt MyGenericCommand = new RelayCommandltTgt( p =gt p =gt true | false)
Messaging
bull Should be simple by default
bull Possible to open filtered channels
bull To a target Type (or an Interface)
bull With a Token
bull With various Messenger instances
bull No constraints at all
DEMOMessaging
Messaging
MessengerDefaultRegisterltTgt( this p =gt DoSomething(p))
MessengerDefaultSendltTgt(p)
MVVM Light Toolkit
bull ldquoBreaking the monotonyrdquo
bull httpwwwgalasoftchmvvmgetstarted
bull httpmvvmlightcodeplexcom
bull V3 released at MIX10bull Keep it smallbull Keep it simple
MVVM Light Libraries V3
bull ESSENTIALSbull RelayCommandbull Messengerbull ViewModelBase
bull EXTRASbull EventToCommandbull DispatcherHelper
MVVM Light Tools V3
bull Project templates (VS + Blend)
bull Item templates (VS + Blend)
bull Code snippets
DEMO
MVVM Light ToolkitUnityBlendability
Flaws of MVVM
bullToo much code neededbull INotifyPropertyChangedbullCommands
bullSome operations are tricky (set focushellip)
bullNot applicable to ASPNET etcbullMessage to community is not clear
Debunking the myths
bullldquoNo code in the code behindrdquobull ldquoIf you put code in the Views code-behind the MVVM police will take your family awayrdquo
bull ldquoNo need for convertersrdquo
bullldquoMVVM is only suitable for big projectsrdquo
bullldquoMVVM costs performancerdquobullldquoMVVM is complex makes my head hurtrdquo
Debunking the myths
bullldquoI donrsquot need separation because I donrsquot have a designerrdquo
bullldquoYou cannot use MVVM with other patternsrdquo
bullldquoMVVM will make you rich and attractiverdquo
DEMO
MVVM on theWindows Phone 7
THANKS
httpbloggalasoftch
httpwwwgalasoftchmvvmgetstarted
LBugnion
- Slide 1
- Understanding the MVVM pattern
- What is MVVM
- The MVC pattern
- The Passive View pattern
- The Presentation Model pattern
- Blendability
- Hello MVVM (and Hi Blend)
- Bridging the gap
- Bridging the gap (2)
- Commands
- Commands and RelayCommands
- RelayCommands
- Messaging
- Messaging (2)
- Messaging (3)
- MVVM Light Toolkit
- MVVM Light Libraries V3
- MVVM Light Tools V3
- MVVM Light Toolkit Unity Blendability
- Flaws of MVVM
- Debunking the myths
- Debunking the myths (2)
- MVVM on the Windows Phone 7
- Slide 25
-
The Presentation Model pattern
Model View
Presentation Model
(ViewModel)
DataBinding
Blendability
bull Testability Maintainability Blendability
bull ldquoThe ability to be edited in Blendrdquo
bull (and Visual Studio designerhellip)
bull Differentiate code in design and runtime
bull Create design time data
DEMO
Hello MVVM (and Hi Blend)
Bridging the gap
View
ViewModel
DataBinding Commands Messages
Model
Bridging the gap
View
ViewModelView
ViewModel
View
ViewModelMessages
Messages+ callback
Commands
bull ldquoPoint of entryrdquo for a methodrdquo
bull Can be data bound
bull ICommand interface
bull Execute method
bull CanExecute method
bull CanExecuteChanged event handler
DEMO
Commandsand RelayCommands
RelayCommands
RelayCommand MyCommand = new RelayCommand( () =gt () =gt true | false)
RelayCommandltTgt MyGenericCommand = new RelayCommandltTgt( p =gt p =gt true | false)
Messaging
bull Should be simple by default
bull Possible to open filtered channels
bull To a target Type (or an Interface)
bull With a Token
bull With various Messenger instances
bull No constraints at all
DEMOMessaging
Messaging
MessengerDefaultRegisterltTgt( this p =gt DoSomething(p))
MessengerDefaultSendltTgt(p)
MVVM Light Toolkit
bull ldquoBreaking the monotonyrdquo
bull httpwwwgalasoftchmvvmgetstarted
bull httpmvvmlightcodeplexcom
bull V3 released at MIX10bull Keep it smallbull Keep it simple
MVVM Light Libraries V3
bull ESSENTIALSbull RelayCommandbull Messengerbull ViewModelBase
bull EXTRASbull EventToCommandbull DispatcherHelper
MVVM Light Tools V3
bull Project templates (VS + Blend)
bull Item templates (VS + Blend)
bull Code snippets
DEMO
MVVM Light ToolkitUnityBlendability
Flaws of MVVM
bullToo much code neededbull INotifyPropertyChangedbullCommands
bullSome operations are tricky (set focushellip)
bullNot applicable to ASPNET etcbullMessage to community is not clear
Debunking the myths
bullldquoNo code in the code behindrdquobull ldquoIf you put code in the Views code-behind the MVVM police will take your family awayrdquo
bull ldquoNo need for convertersrdquo
bullldquoMVVM is only suitable for big projectsrdquo
bullldquoMVVM costs performancerdquobullldquoMVVM is complex makes my head hurtrdquo
Debunking the myths
bullldquoI donrsquot need separation because I donrsquot have a designerrdquo
bullldquoYou cannot use MVVM with other patternsrdquo
bullldquoMVVM will make you rich and attractiverdquo
DEMO
MVVM on theWindows Phone 7
THANKS
httpbloggalasoftch
httpwwwgalasoftchmvvmgetstarted
LBugnion
- Slide 1
- Understanding the MVVM pattern
- What is MVVM
- The MVC pattern
- The Passive View pattern
- The Presentation Model pattern
- Blendability
- Hello MVVM (and Hi Blend)
- Bridging the gap
- Bridging the gap (2)
- Commands
- Commands and RelayCommands
- RelayCommands
- Messaging
- Messaging (2)
- Messaging (3)
- MVVM Light Toolkit
- MVVM Light Libraries V3
- MVVM Light Tools V3
- MVVM Light Toolkit Unity Blendability
- Flaws of MVVM
- Debunking the myths
- Debunking the myths (2)
- MVVM on the Windows Phone 7
- Slide 25
-
Blendability
bull Testability Maintainability Blendability
bull ldquoThe ability to be edited in Blendrdquo
bull (and Visual Studio designerhellip)
bull Differentiate code in design and runtime
bull Create design time data
DEMO
Hello MVVM (and Hi Blend)
Bridging the gap
View
ViewModel
DataBinding Commands Messages
Model
Bridging the gap
View
ViewModelView
ViewModel
View
ViewModelMessages
Messages+ callback
Commands
bull ldquoPoint of entryrdquo for a methodrdquo
bull Can be data bound
bull ICommand interface
bull Execute method
bull CanExecute method
bull CanExecuteChanged event handler
DEMO
Commandsand RelayCommands
RelayCommands
RelayCommand MyCommand = new RelayCommand( () =gt () =gt true | false)
RelayCommandltTgt MyGenericCommand = new RelayCommandltTgt( p =gt p =gt true | false)
Messaging
bull Should be simple by default
bull Possible to open filtered channels
bull To a target Type (or an Interface)
bull With a Token
bull With various Messenger instances
bull No constraints at all
DEMOMessaging
Messaging
MessengerDefaultRegisterltTgt( this p =gt DoSomething(p))
MessengerDefaultSendltTgt(p)
MVVM Light Toolkit
bull ldquoBreaking the monotonyrdquo
bull httpwwwgalasoftchmvvmgetstarted
bull httpmvvmlightcodeplexcom
bull V3 released at MIX10bull Keep it smallbull Keep it simple
MVVM Light Libraries V3
bull ESSENTIALSbull RelayCommandbull Messengerbull ViewModelBase
bull EXTRASbull EventToCommandbull DispatcherHelper
MVVM Light Tools V3
bull Project templates (VS + Blend)
bull Item templates (VS + Blend)
bull Code snippets
DEMO
MVVM Light ToolkitUnityBlendability
Flaws of MVVM
bullToo much code neededbull INotifyPropertyChangedbullCommands
bullSome operations are tricky (set focushellip)
bullNot applicable to ASPNET etcbullMessage to community is not clear
Debunking the myths
bullldquoNo code in the code behindrdquobull ldquoIf you put code in the Views code-behind the MVVM police will take your family awayrdquo
bull ldquoNo need for convertersrdquo
bullldquoMVVM is only suitable for big projectsrdquo
bullldquoMVVM costs performancerdquobullldquoMVVM is complex makes my head hurtrdquo
Debunking the myths
bullldquoI donrsquot need separation because I donrsquot have a designerrdquo
bullldquoYou cannot use MVVM with other patternsrdquo
bullldquoMVVM will make you rich and attractiverdquo
DEMO
MVVM on theWindows Phone 7
THANKS
httpbloggalasoftch
httpwwwgalasoftchmvvmgetstarted
LBugnion
- Slide 1
- Understanding the MVVM pattern
- What is MVVM
- The MVC pattern
- The Passive View pattern
- The Presentation Model pattern
- Blendability
- Hello MVVM (and Hi Blend)
- Bridging the gap
- Bridging the gap (2)
- Commands
- Commands and RelayCommands
- RelayCommands
- Messaging
- Messaging (2)
- Messaging (3)
- MVVM Light Toolkit
- MVVM Light Libraries V3
- MVVM Light Tools V3
- MVVM Light Toolkit Unity Blendability
- Flaws of MVVM
- Debunking the myths
- Debunking the myths (2)
- MVVM on the Windows Phone 7
- Slide 25
-
DEMO
Hello MVVM (and Hi Blend)
Bridging the gap
View
ViewModel
DataBinding Commands Messages
Model
Bridging the gap
View
ViewModelView
ViewModel
View
ViewModelMessages
Messages+ callback
Commands
bull ldquoPoint of entryrdquo for a methodrdquo
bull Can be data bound
bull ICommand interface
bull Execute method
bull CanExecute method
bull CanExecuteChanged event handler
DEMO
Commandsand RelayCommands
RelayCommands
RelayCommand MyCommand = new RelayCommand( () =gt () =gt true | false)
RelayCommandltTgt MyGenericCommand = new RelayCommandltTgt( p =gt p =gt true | false)
Messaging
bull Should be simple by default
bull Possible to open filtered channels
bull To a target Type (or an Interface)
bull With a Token
bull With various Messenger instances
bull No constraints at all
DEMOMessaging
Messaging
MessengerDefaultRegisterltTgt( this p =gt DoSomething(p))
MessengerDefaultSendltTgt(p)
MVVM Light Toolkit
bull ldquoBreaking the monotonyrdquo
bull httpwwwgalasoftchmvvmgetstarted
bull httpmvvmlightcodeplexcom
bull V3 released at MIX10bull Keep it smallbull Keep it simple
MVVM Light Libraries V3
bull ESSENTIALSbull RelayCommandbull Messengerbull ViewModelBase
bull EXTRASbull EventToCommandbull DispatcherHelper
MVVM Light Tools V3
bull Project templates (VS + Blend)
bull Item templates (VS + Blend)
bull Code snippets
DEMO
MVVM Light ToolkitUnityBlendability
Flaws of MVVM
bullToo much code neededbull INotifyPropertyChangedbullCommands
bullSome operations are tricky (set focushellip)
bullNot applicable to ASPNET etcbullMessage to community is not clear
Debunking the myths
bullldquoNo code in the code behindrdquobull ldquoIf you put code in the Views code-behind the MVVM police will take your family awayrdquo
bull ldquoNo need for convertersrdquo
bullldquoMVVM is only suitable for big projectsrdquo
bullldquoMVVM costs performancerdquobullldquoMVVM is complex makes my head hurtrdquo
Debunking the myths
bullldquoI donrsquot need separation because I donrsquot have a designerrdquo
bullldquoYou cannot use MVVM with other patternsrdquo
bullldquoMVVM will make you rich and attractiverdquo
DEMO
MVVM on theWindows Phone 7
THANKS
httpbloggalasoftch
httpwwwgalasoftchmvvmgetstarted
LBugnion
- Slide 1
- Understanding the MVVM pattern
- What is MVVM
- The MVC pattern
- The Passive View pattern
- The Presentation Model pattern
- Blendability
- Hello MVVM (and Hi Blend)
- Bridging the gap
- Bridging the gap (2)
- Commands
- Commands and RelayCommands
- RelayCommands
- Messaging
- Messaging (2)
- Messaging (3)
- MVVM Light Toolkit
- MVVM Light Libraries V3
- MVVM Light Tools V3
- MVVM Light Toolkit Unity Blendability
- Flaws of MVVM
- Debunking the myths
- Debunking the myths (2)
- MVVM on the Windows Phone 7
- Slide 25
-
Bridging the gap
View
ViewModel
DataBinding Commands Messages
Model
Bridging the gap
View
ViewModelView
ViewModel
View
ViewModelMessages
Messages+ callback
Commands
bull ldquoPoint of entryrdquo for a methodrdquo
bull Can be data bound
bull ICommand interface
bull Execute method
bull CanExecute method
bull CanExecuteChanged event handler
DEMO
Commandsand RelayCommands
RelayCommands
RelayCommand MyCommand = new RelayCommand( () =gt () =gt true | false)
RelayCommandltTgt MyGenericCommand = new RelayCommandltTgt( p =gt p =gt true | false)
Messaging
bull Should be simple by default
bull Possible to open filtered channels
bull To a target Type (or an Interface)
bull With a Token
bull With various Messenger instances
bull No constraints at all
DEMOMessaging
Messaging
MessengerDefaultRegisterltTgt( this p =gt DoSomething(p))
MessengerDefaultSendltTgt(p)
MVVM Light Toolkit
bull ldquoBreaking the monotonyrdquo
bull httpwwwgalasoftchmvvmgetstarted
bull httpmvvmlightcodeplexcom
bull V3 released at MIX10bull Keep it smallbull Keep it simple
MVVM Light Libraries V3
bull ESSENTIALSbull RelayCommandbull Messengerbull ViewModelBase
bull EXTRASbull EventToCommandbull DispatcherHelper
MVVM Light Tools V3
bull Project templates (VS + Blend)
bull Item templates (VS + Blend)
bull Code snippets
DEMO
MVVM Light ToolkitUnityBlendability
Flaws of MVVM
bullToo much code neededbull INotifyPropertyChangedbullCommands
bullSome operations are tricky (set focushellip)
bullNot applicable to ASPNET etcbullMessage to community is not clear
Debunking the myths
bullldquoNo code in the code behindrdquobull ldquoIf you put code in the Views code-behind the MVVM police will take your family awayrdquo
bull ldquoNo need for convertersrdquo
bullldquoMVVM is only suitable for big projectsrdquo
bullldquoMVVM costs performancerdquobullldquoMVVM is complex makes my head hurtrdquo
Debunking the myths
bullldquoI donrsquot need separation because I donrsquot have a designerrdquo
bullldquoYou cannot use MVVM with other patternsrdquo
bullldquoMVVM will make you rich and attractiverdquo
DEMO
MVVM on theWindows Phone 7
THANKS
httpbloggalasoftch
httpwwwgalasoftchmvvmgetstarted
LBugnion
- Slide 1
- Understanding the MVVM pattern
- What is MVVM
- The MVC pattern
- The Passive View pattern
- The Presentation Model pattern
- Blendability
- Hello MVVM (and Hi Blend)
- Bridging the gap
- Bridging the gap (2)
- Commands
- Commands and RelayCommands
- RelayCommands
- Messaging
- Messaging (2)
- Messaging (3)
- MVVM Light Toolkit
- MVVM Light Libraries V3
- MVVM Light Tools V3
- MVVM Light Toolkit Unity Blendability
- Flaws of MVVM
- Debunking the myths
- Debunking the myths (2)
- MVVM on the Windows Phone 7
- Slide 25
-
Bridging the gap
View
ViewModelView
ViewModel
View
ViewModelMessages
Messages+ callback
Commands
bull ldquoPoint of entryrdquo for a methodrdquo
bull Can be data bound
bull ICommand interface
bull Execute method
bull CanExecute method
bull CanExecuteChanged event handler
DEMO
Commandsand RelayCommands
RelayCommands
RelayCommand MyCommand = new RelayCommand( () =gt () =gt true | false)
RelayCommandltTgt MyGenericCommand = new RelayCommandltTgt( p =gt p =gt true | false)
Messaging
bull Should be simple by default
bull Possible to open filtered channels
bull To a target Type (or an Interface)
bull With a Token
bull With various Messenger instances
bull No constraints at all
DEMOMessaging
Messaging
MessengerDefaultRegisterltTgt( this p =gt DoSomething(p))
MessengerDefaultSendltTgt(p)
MVVM Light Toolkit
bull ldquoBreaking the monotonyrdquo
bull httpwwwgalasoftchmvvmgetstarted
bull httpmvvmlightcodeplexcom
bull V3 released at MIX10bull Keep it smallbull Keep it simple
MVVM Light Libraries V3
bull ESSENTIALSbull RelayCommandbull Messengerbull ViewModelBase
bull EXTRASbull EventToCommandbull DispatcherHelper
MVVM Light Tools V3
bull Project templates (VS + Blend)
bull Item templates (VS + Blend)
bull Code snippets
DEMO
MVVM Light ToolkitUnityBlendability
Flaws of MVVM
bullToo much code neededbull INotifyPropertyChangedbullCommands
bullSome operations are tricky (set focushellip)
bullNot applicable to ASPNET etcbullMessage to community is not clear
Debunking the myths
bullldquoNo code in the code behindrdquobull ldquoIf you put code in the Views code-behind the MVVM police will take your family awayrdquo
bull ldquoNo need for convertersrdquo
bullldquoMVVM is only suitable for big projectsrdquo
bullldquoMVVM costs performancerdquobullldquoMVVM is complex makes my head hurtrdquo
Debunking the myths
bullldquoI donrsquot need separation because I donrsquot have a designerrdquo
bullldquoYou cannot use MVVM with other patternsrdquo
bullldquoMVVM will make you rich and attractiverdquo
DEMO
MVVM on theWindows Phone 7
THANKS
httpbloggalasoftch
httpwwwgalasoftchmvvmgetstarted
LBugnion
- Slide 1
- Understanding the MVVM pattern
- What is MVVM
- The MVC pattern
- The Passive View pattern
- The Presentation Model pattern
- Blendability
- Hello MVVM (and Hi Blend)
- Bridging the gap
- Bridging the gap (2)
- Commands
- Commands and RelayCommands
- RelayCommands
- Messaging
- Messaging (2)
- Messaging (3)
- MVVM Light Toolkit
- MVVM Light Libraries V3
- MVVM Light Tools V3
- MVVM Light Toolkit Unity Blendability
- Flaws of MVVM
- Debunking the myths
- Debunking the myths (2)
- MVVM on the Windows Phone 7
- Slide 25
-
Commands
bull ldquoPoint of entryrdquo for a methodrdquo
bull Can be data bound
bull ICommand interface
bull Execute method
bull CanExecute method
bull CanExecuteChanged event handler
DEMO
Commandsand RelayCommands
RelayCommands
RelayCommand MyCommand = new RelayCommand( () =gt () =gt true | false)
RelayCommandltTgt MyGenericCommand = new RelayCommandltTgt( p =gt p =gt true | false)
Messaging
bull Should be simple by default
bull Possible to open filtered channels
bull To a target Type (or an Interface)
bull With a Token
bull With various Messenger instances
bull No constraints at all
DEMOMessaging
Messaging
MessengerDefaultRegisterltTgt( this p =gt DoSomething(p))
MessengerDefaultSendltTgt(p)
MVVM Light Toolkit
bull ldquoBreaking the monotonyrdquo
bull httpwwwgalasoftchmvvmgetstarted
bull httpmvvmlightcodeplexcom
bull V3 released at MIX10bull Keep it smallbull Keep it simple
MVVM Light Libraries V3
bull ESSENTIALSbull RelayCommandbull Messengerbull ViewModelBase
bull EXTRASbull EventToCommandbull DispatcherHelper
MVVM Light Tools V3
bull Project templates (VS + Blend)
bull Item templates (VS + Blend)
bull Code snippets
DEMO
MVVM Light ToolkitUnityBlendability
Flaws of MVVM
bullToo much code neededbull INotifyPropertyChangedbullCommands
bullSome operations are tricky (set focushellip)
bullNot applicable to ASPNET etcbullMessage to community is not clear
Debunking the myths
bullldquoNo code in the code behindrdquobull ldquoIf you put code in the Views code-behind the MVVM police will take your family awayrdquo
bull ldquoNo need for convertersrdquo
bullldquoMVVM is only suitable for big projectsrdquo
bullldquoMVVM costs performancerdquobullldquoMVVM is complex makes my head hurtrdquo
Debunking the myths
bullldquoI donrsquot need separation because I donrsquot have a designerrdquo
bullldquoYou cannot use MVVM with other patternsrdquo
bullldquoMVVM will make you rich and attractiverdquo
DEMO
MVVM on theWindows Phone 7
THANKS
httpbloggalasoftch
httpwwwgalasoftchmvvmgetstarted
LBugnion
- Slide 1
- Understanding the MVVM pattern
- What is MVVM
- The MVC pattern
- The Passive View pattern
- The Presentation Model pattern
- Blendability
- Hello MVVM (and Hi Blend)
- Bridging the gap
- Bridging the gap (2)
- Commands
- Commands and RelayCommands
- RelayCommands
- Messaging
- Messaging (2)
- Messaging (3)
- MVVM Light Toolkit
- MVVM Light Libraries V3
- MVVM Light Tools V3
- MVVM Light Toolkit Unity Blendability
- Flaws of MVVM
- Debunking the myths
- Debunking the myths (2)
- MVVM on the Windows Phone 7
- Slide 25
-
DEMO
Commandsand RelayCommands
RelayCommands
RelayCommand MyCommand = new RelayCommand( () =gt () =gt true | false)
RelayCommandltTgt MyGenericCommand = new RelayCommandltTgt( p =gt p =gt true | false)
Messaging
bull Should be simple by default
bull Possible to open filtered channels
bull To a target Type (or an Interface)
bull With a Token
bull With various Messenger instances
bull No constraints at all
DEMOMessaging
Messaging
MessengerDefaultRegisterltTgt( this p =gt DoSomething(p))
MessengerDefaultSendltTgt(p)
MVVM Light Toolkit
bull ldquoBreaking the monotonyrdquo
bull httpwwwgalasoftchmvvmgetstarted
bull httpmvvmlightcodeplexcom
bull V3 released at MIX10bull Keep it smallbull Keep it simple
MVVM Light Libraries V3
bull ESSENTIALSbull RelayCommandbull Messengerbull ViewModelBase
bull EXTRASbull EventToCommandbull DispatcherHelper
MVVM Light Tools V3
bull Project templates (VS + Blend)
bull Item templates (VS + Blend)
bull Code snippets
DEMO
MVVM Light ToolkitUnityBlendability
Flaws of MVVM
bullToo much code neededbull INotifyPropertyChangedbullCommands
bullSome operations are tricky (set focushellip)
bullNot applicable to ASPNET etcbullMessage to community is not clear
Debunking the myths
bullldquoNo code in the code behindrdquobull ldquoIf you put code in the Views code-behind the MVVM police will take your family awayrdquo
bull ldquoNo need for convertersrdquo
bullldquoMVVM is only suitable for big projectsrdquo
bullldquoMVVM costs performancerdquobullldquoMVVM is complex makes my head hurtrdquo
Debunking the myths
bullldquoI donrsquot need separation because I donrsquot have a designerrdquo
bullldquoYou cannot use MVVM with other patternsrdquo
bullldquoMVVM will make you rich and attractiverdquo
DEMO
MVVM on theWindows Phone 7
THANKS
httpbloggalasoftch
httpwwwgalasoftchmvvmgetstarted
LBugnion
- Slide 1
- Understanding the MVVM pattern
- What is MVVM
- The MVC pattern
- The Passive View pattern
- The Presentation Model pattern
- Blendability
- Hello MVVM (and Hi Blend)
- Bridging the gap
- Bridging the gap (2)
- Commands
- Commands and RelayCommands
- RelayCommands
- Messaging
- Messaging (2)
- Messaging (3)
- MVVM Light Toolkit
- MVVM Light Libraries V3
- MVVM Light Tools V3
- MVVM Light Toolkit Unity Blendability
- Flaws of MVVM
- Debunking the myths
- Debunking the myths (2)
- MVVM on the Windows Phone 7
- Slide 25
-
RelayCommands
RelayCommand MyCommand = new RelayCommand( () =gt () =gt true | false)
RelayCommandltTgt MyGenericCommand = new RelayCommandltTgt( p =gt p =gt true | false)
Messaging
bull Should be simple by default
bull Possible to open filtered channels
bull To a target Type (or an Interface)
bull With a Token
bull With various Messenger instances
bull No constraints at all
DEMOMessaging
Messaging
MessengerDefaultRegisterltTgt( this p =gt DoSomething(p))
MessengerDefaultSendltTgt(p)
MVVM Light Toolkit
bull ldquoBreaking the monotonyrdquo
bull httpwwwgalasoftchmvvmgetstarted
bull httpmvvmlightcodeplexcom
bull V3 released at MIX10bull Keep it smallbull Keep it simple
MVVM Light Libraries V3
bull ESSENTIALSbull RelayCommandbull Messengerbull ViewModelBase
bull EXTRASbull EventToCommandbull DispatcherHelper
MVVM Light Tools V3
bull Project templates (VS + Blend)
bull Item templates (VS + Blend)
bull Code snippets
DEMO
MVVM Light ToolkitUnityBlendability
Flaws of MVVM
bullToo much code neededbull INotifyPropertyChangedbullCommands
bullSome operations are tricky (set focushellip)
bullNot applicable to ASPNET etcbullMessage to community is not clear
Debunking the myths
bullldquoNo code in the code behindrdquobull ldquoIf you put code in the Views code-behind the MVVM police will take your family awayrdquo
bull ldquoNo need for convertersrdquo
bullldquoMVVM is only suitable for big projectsrdquo
bullldquoMVVM costs performancerdquobullldquoMVVM is complex makes my head hurtrdquo
Debunking the myths
bullldquoI donrsquot need separation because I donrsquot have a designerrdquo
bullldquoYou cannot use MVVM with other patternsrdquo
bullldquoMVVM will make you rich and attractiverdquo
DEMO
MVVM on theWindows Phone 7
THANKS
httpbloggalasoftch
httpwwwgalasoftchmvvmgetstarted
LBugnion
- Slide 1
- Understanding the MVVM pattern
- What is MVVM
- The MVC pattern
- The Passive View pattern
- The Presentation Model pattern
- Blendability
- Hello MVVM (and Hi Blend)
- Bridging the gap
- Bridging the gap (2)
- Commands
- Commands and RelayCommands
- RelayCommands
- Messaging
- Messaging (2)
- Messaging (3)
- MVVM Light Toolkit
- MVVM Light Libraries V3
- MVVM Light Tools V3
- MVVM Light Toolkit Unity Blendability
- Flaws of MVVM
- Debunking the myths
- Debunking the myths (2)
- MVVM on the Windows Phone 7
- Slide 25
-
Messaging
bull Should be simple by default
bull Possible to open filtered channels
bull To a target Type (or an Interface)
bull With a Token
bull With various Messenger instances
bull No constraints at all
DEMOMessaging
Messaging
MessengerDefaultRegisterltTgt( this p =gt DoSomething(p))
MessengerDefaultSendltTgt(p)
MVVM Light Toolkit
bull ldquoBreaking the monotonyrdquo
bull httpwwwgalasoftchmvvmgetstarted
bull httpmvvmlightcodeplexcom
bull V3 released at MIX10bull Keep it smallbull Keep it simple
MVVM Light Libraries V3
bull ESSENTIALSbull RelayCommandbull Messengerbull ViewModelBase
bull EXTRASbull EventToCommandbull DispatcherHelper
MVVM Light Tools V3
bull Project templates (VS + Blend)
bull Item templates (VS + Blend)
bull Code snippets
DEMO
MVVM Light ToolkitUnityBlendability
Flaws of MVVM
bullToo much code neededbull INotifyPropertyChangedbullCommands
bullSome operations are tricky (set focushellip)
bullNot applicable to ASPNET etcbullMessage to community is not clear
Debunking the myths
bullldquoNo code in the code behindrdquobull ldquoIf you put code in the Views code-behind the MVVM police will take your family awayrdquo
bull ldquoNo need for convertersrdquo
bullldquoMVVM is only suitable for big projectsrdquo
bullldquoMVVM costs performancerdquobullldquoMVVM is complex makes my head hurtrdquo
Debunking the myths
bullldquoI donrsquot need separation because I donrsquot have a designerrdquo
bullldquoYou cannot use MVVM with other patternsrdquo
bullldquoMVVM will make you rich and attractiverdquo
DEMO
MVVM on theWindows Phone 7
THANKS
httpbloggalasoftch
httpwwwgalasoftchmvvmgetstarted
LBugnion
- Slide 1
- Understanding the MVVM pattern
- What is MVVM
- The MVC pattern
- The Passive View pattern
- The Presentation Model pattern
- Blendability
- Hello MVVM (and Hi Blend)
- Bridging the gap
- Bridging the gap (2)
- Commands
- Commands and RelayCommands
- RelayCommands
- Messaging
- Messaging (2)
- Messaging (3)
- MVVM Light Toolkit
- MVVM Light Libraries V3
- MVVM Light Tools V3
- MVVM Light Toolkit Unity Blendability
- Flaws of MVVM
- Debunking the myths
- Debunking the myths (2)
- MVVM on the Windows Phone 7
- Slide 25
-
DEMOMessaging
Messaging
MessengerDefaultRegisterltTgt( this p =gt DoSomething(p))
MessengerDefaultSendltTgt(p)
MVVM Light Toolkit
bull ldquoBreaking the monotonyrdquo
bull httpwwwgalasoftchmvvmgetstarted
bull httpmvvmlightcodeplexcom
bull V3 released at MIX10bull Keep it smallbull Keep it simple
MVVM Light Libraries V3
bull ESSENTIALSbull RelayCommandbull Messengerbull ViewModelBase
bull EXTRASbull EventToCommandbull DispatcherHelper
MVVM Light Tools V3
bull Project templates (VS + Blend)
bull Item templates (VS + Blend)
bull Code snippets
DEMO
MVVM Light ToolkitUnityBlendability
Flaws of MVVM
bullToo much code neededbull INotifyPropertyChangedbullCommands
bullSome operations are tricky (set focushellip)
bullNot applicable to ASPNET etcbullMessage to community is not clear
Debunking the myths
bullldquoNo code in the code behindrdquobull ldquoIf you put code in the Views code-behind the MVVM police will take your family awayrdquo
bull ldquoNo need for convertersrdquo
bullldquoMVVM is only suitable for big projectsrdquo
bullldquoMVVM costs performancerdquobullldquoMVVM is complex makes my head hurtrdquo
Debunking the myths
bullldquoI donrsquot need separation because I donrsquot have a designerrdquo
bullldquoYou cannot use MVVM with other patternsrdquo
bullldquoMVVM will make you rich and attractiverdquo
DEMO
MVVM on theWindows Phone 7
THANKS
httpbloggalasoftch
httpwwwgalasoftchmvvmgetstarted
LBugnion
- Slide 1
- Understanding the MVVM pattern
- What is MVVM
- The MVC pattern
- The Passive View pattern
- The Presentation Model pattern
- Blendability
- Hello MVVM (and Hi Blend)
- Bridging the gap
- Bridging the gap (2)
- Commands
- Commands and RelayCommands
- RelayCommands
- Messaging
- Messaging (2)
- Messaging (3)
- MVVM Light Toolkit
- MVVM Light Libraries V3
- MVVM Light Tools V3
- MVVM Light Toolkit Unity Blendability
- Flaws of MVVM
- Debunking the myths
- Debunking the myths (2)
- MVVM on the Windows Phone 7
- Slide 25
-
Messaging
MessengerDefaultRegisterltTgt( this p =gt DoSomething(p))
MessengerDefaultSendltTgt(p)
MVVM Light Toolkit
bull ldquoBreaking the monotonyrdquo
bull httpwwwgalasoftchmvvmgetstarted
bull httpmvvmlightcodeplexcom
bull V3 released at MIX10bull Keep it smallbull Keep it simple
MVVM Light Libraries V3
bull ESSENTIALSbull RelayCommandbull Messengerbull ViewModelBase
bull EXTRASbull EventToCommandbull DispatcherHelper
MVVM Light Tools V3
bull Project templates (VS + Blend)
bull Item templates (VS + Blend)
bull Code snippets
DEMO
MVVM Light ToolkitUnityBlendability
Flaws of MVVM
bullToo much code neededbull INotifyPropertyChangedbullCommands
bullSome operations are tricky (set focushellip)
bullNot applicable to ASPNET etcbullMessage to community is not clear
Debunking the myths
bullldquoNo code in the code behindrdquobull ldquoIf you put code in the Views code-behind the MVVM police will take your family awayrdquo
bull ldquoNo need for convertersrdquo
bullldquoMVVM is only suitable for big projectsrdquo
bullldquoMVVM costs performancerdquobullldquoMVVM is complex makes my head hurtrdquo
Debunking the myths
bullldquoI donrsquot need separation because I donrsquot have a designerrdquo
bullldquoYou cannot use MVVM with other patternsrdquo
bullldquoMVVM will make you rich and attractiverdquo
DEMO
MVVM on theWindows Phone 7
THANKS
httpbloggalasoftch
httpwwwgalasoftchmvvmgetstarted
LBugnion
- Slide 1
- Understanding the MVVM pattern
- What is MVVM
- The MVC pattern
- The Passive View pattern
- The Presentation Model pattern
- Blendability
- Hello MVVM (and Hi Blend)
- Bridging the gap
- Bridging the gap (2)
- Commands
- Commands and RelayCommands
- RelayCommands
- Messaging
- Messaging (2)
- Messaging (3)
- MVVM Light Toolkit
- MVVM Light Libraries V3
- MVVM Light Tools V3
- MVVM Light Toolkit Unity Blendability
- Flaws of MVVM
- Debunking the myths
- Debunking the myths (2)
- MVVM on the Windows Phone 7
- Slide 25
-
MVVM Light Toolkit
bull ldquoBreaking the monotonyrdquo
bull httpwwwgalasoftchmvvmgetstarted
bull httpmvvmlightcodeplexcom
bull V3 released at MIX10bull Keep it smallbull Keep it simple
MVVM Light Libraries V3
bull ESSENTIALSbull RelayCommandbull Messengerbull ViewModelBase
bull EXTRASbull EventToCommandbull DispatcherHelper
MVVM Light Tools V3
bull Project templates (VS + Blend)
bull Item templates (VS + Blend)
bull Code snippets
DEMO
MVVM Light ToolkitUnityBlendability
Flaws of MVVM
bullToo much code neededbull INotifyPropertyChangedbullCommands
bullSome operations are tricky (set focushellip)
bullNot applicable to ASPNET etcbullMessage to community is not clear
Debunking the myths
bullldquoNo code in the code behindrdquobull ldquoIf you put code in the Views code-behind the MVVM police will take your family awayrdquo
bull ldquoNo need for convertersrdquo
bullldquoMVVM is only suitable for big projectsrdquo
bullldquoMVVM costs performancerdquobullldquoMVVM is complex makes my head hurtrdquo
Debunking the myths
bullldquoI donrsquot need separation because I donrsquot have a designerrdquo
bullldquoYou cannot use MVVM with other patternsrdquo
bullldquoMVVM will make you rich and attractiverdquo
DEMO
MVVM on theWindows Phone 7
THANKS
httpbloggalasoftch
httpwwwgalasoftchmvvmgetstarted
LBugnion
- Slide 1
- Understanding the MVVM pattern
- What is MVVM
- The MVC pattern
- The Passive View pattern
- The Presentation Model pattern
- Blendability
- Hello MVVM (and Hi Blend)
- Bridging the gap
- Bridging the gap (2)
- Commands
- Commands and RelayCommands
- RelayCommands
- Messaging
- Messaging (2)
- Messaging (3)
- MVVM Light Toolkit
- MVVM Light Libraries V3
- MVVM Light Tools V3
- MVVM Light Toolkit Unity Blendability
- Flaws of MVVM
- Debunking the myths
- Debunking the myths (2)
- MVVM on the Windows Phone 7
- Slide 25
-
MVVM Light Libraries V3
bull ESSENTIALSbull RelayCommandbull Messengerbull ViewModelBase
bull EXTRASbull EventToCommandbull DispatcherHelper
MVVM Light Tools V3
bull Project templates (VS + Blend)
bull Item templates (VS + Blend)
bull Code snippets
DEMO
MVVM Light ToolkitUnityBlendability
Flaws of MVVM
bullToo much code neededbull INotifyPropertyChangedbullCommands
bullSome operations are tricky (set focushellip)
bullNot applicable to ASPNET etcbullMessage to community is not clear
Debunking the myths
bullldquoNo code in the code behindrdquobull ldquoIf you put code in the Views code-behind the MVVM police will take your family awayrdquo
bull ldquoNo need for convertersrdquo
bullldquoMVVM is only suitable for big projectsrdquo
bullldquoMVVM costs performancerdquobullldquoMVVM is complex makes my head hurtrdquo
Debunking the myths
bullldquoI donrsquot need separation because I donrsquot have a designerrdquo
bullldquoYou cannot use MVVM with other patternsrdquo
bullldquoMVVM will make you rich and attractiverdquo
DEMO
MVVM on theWindows Phone 7
THANKS
httpbloggalasoftch
httpwwwgalasoftchmvvmgetstarted
LBugnion
- Slide 1
- Understanding the MVVM pattern
- What is MVVM
- The MVC pattern
- The Passive View pattern
- The Presentation Model pattern
- Blendability
- Hello MVVM (and Hi Blend)
- Bridging the gap
- Bridging the gap (2)
- Commands
- Commands and RelayCommands
- RelayCommands
- Messaging
- Messaging (2)
- Messaging (3)
- MVVM Light Toolkit
- MVVM Light Libraries V3
- MVVM Light Tools V3
- MVVM Light Toolkit Unity Blendability
- Flaws of MVVM
- Debunking the myths
- Debunking the myths (2)
- MVVM on the Windows Phone 7
- Slide 25
-
MVVM Light Tools V3
bull Project templates (VS + Blend)
bull Item templates (VS + Blend)
bull Code snippets
DEMO
MVVM Light ToolkitUnityBlendability
Flaws of MVVM
bullToo much code neededbull INotifyPropertyChangedbullCommands
bullSome operations are tricky (set focushellip)
bullNot applicable to ASPNET etcbullMessage to community is not clear
Debunking the myths
bullldquoNo code in the code behindrdquobull ldquoIf you put code in the Views code-behind the MVVM police will take your family awayrdquo
bull ldquoNo need for convertersrdquo
bullldquoMVVM is only suitable for big projectsrdquo
bullldquoMVVM costs performancerdquobullldquoMVVM is complex makes my head hurtrdquo
Debunking the myths
bullldquoI donrsquot need separation because I donrsquot have a designerrdquo
bullldquoYou cannot use MVVM with other patternsrdquo
bullldquoMVVM will make you rich and attractiverdquo
DEMO
MVVM on theWindows Phone 7
THANKS
httpbloggalasoftch
httpwwwgalasoftchmvvmgetstarted
LBugnion
- Slide 1
- Understanding the MVVM pattern
- What is MVVM
- The MVC pattern
- The Passive View pattern
- The Presentation Model pattern
- Blendability
- Hello MVVM (and Hi Blend)
- Bridging the gap
- Bridging the gap (2)
- Commands
- Commands and RelayCommands
- RelayCommands
- Messaging
- Messaging (2)
- Messaging (3)
- MVVM Light Toolkit
- MVVM Light Libraries V3
- MVVM Light Tools V3
- MVVM Light Toolkit Unity Blendability
- Flaws of MVVM
- Debunking the myths
- Debunking the myths (2)
- MVVM on the Windows Phone 7
- Slide 25
-
DEMO
MVVM Light ToolkitUnityBlendability
Flaws of MVVM
bullToo much code neededbull INotifyPropertyChangedbullCommands
bullSome operations are tricky (set focushellip)
bullNot applicable to ASPNET etcbullMessage to community is not clear
Debunking the myths
bullldquoNo code in the code behindrdquobull ldquoIf you put code in the Views code-behind the MVVM police will take your family awayrdquo
bull ldquoNo need for convertersrdquo
bullldquoMVVM is only suitable for big projectsrdquo
bullldquoMVVM costs performancerdquobullldquoMVVM is complex makes my head hurtrdquo
Debunking the myths
bullldquoI donrsquot need separation because I donrsquot have a designerrdquo
bullldquoYou cannot use MVVM with other patternsrdquo
bullldquoMVVM will make you rich and attractiverdquo
DEMO
MVVM on theWindows Phone 7
THANKS
httpbloggalasoftch
httpwwwgalasoftchmvvmgetstarted
LBugnion
- Slide 1
- Understanding the MVVM pattern
- What is MVVM
- The MVC pattern
- The Passive View pattern
- The Presentation Model pattern
- Blendability
- Hello MVVM (and Hi Blend)
- Bridging the gap
- Bridging the gap (2)
- Commands
- Commands and RelayCommands
- RelayCommands
- Messaging
- Messaging (2)
- Messaging (3)
- MVVM Light Toolkit
- MVVM Light Libraries V3
- MVVM Light Tools V3
- MVVM Light Toolkit Unity Blendability
- Flaws of MVVM
- Debunking the myths
- Debunking the myths (2)
- MVVM on the Windows Phone 7
- Slide 25
-
Flaws of MVVM
bullToo much code neededbull INotifyPropertyChangedbullCommands
bullSome operations are tricky (set focushellip)
bullNot applicable to ASPNET etcbullMessage to community is not clear
Debunking the myths
bullldquoNo code in the code behindrdquobull ldquoIf you put code in the Views code-behind the MVVM police will take your family awayrdquo
bull ldquoNo need for convertersrdquo
bullldquoMVVM is only suitable for big projectsrdquo
bullldquoMVVM costs performancerdquobullldquoMVVM is complex makes my head hurtrdquo
Debunking the myths
bullldquoI donrsquot need separation because I donrsquot have a designerrdquo
bullldquoYou cannot use MVVM with other patternsrdquo
bullldquoMVVM will make you rich and attractiverdquo
DEMO
MVVM on theWindows Phone 7
THANKS
httpbloggalasoftch
httpwwwgalasoftchmvvmgetstarted
LBugnion
- Slide 1
- Understanding the MVVM pattern
- What is MVVM
- The MVC pattern
- The Passive View pattern
- The Presentation Model pattern
- Blendability
- Hello MVVM (and Hi Blend)
- Bridging the gap
- Bridging the gap (2)
- Commands
- Commands and RelayCommands
- RelayCommands
- Messaging
- Messaging (2)
- Messaging (3)
- MVVM Light Toolkit
- MVVM Light Libraries V3
- MVVM Light Tools V3
- MVVM Light Toolkit Unity Blendability
- Flaws of MVVM
- Debunking the myths
- Debunking the myths (2)
- MVVM on the Windows Phone 7
- Slide 25
-
Debunking the myths
bullldquoNo code in the code behindrdquobull ldquoIf you put code in the Views code-behind the MVVM police will take your family awayrdquo
bull ldquoNo need for convertersrdquo
bullldquoMVVM is only suitable for big projectsrdquo
bullldquoMVVM costs performancerdquobullldquoMVVM is complex makes my head hurtrdquo
Debunking the myths
bullldquoI donrsquot need separation because I donrsquot have a designerrdquo
bullldquoYou cannot use MVVM with other patternsrdquo
bullldquoMVVM will make you rich and attractiverdquo
DEMO
MVVM on theWindows Phone 7
THANKS
httpbloggalasoftch
httpwwwgalasoftchmvvmgetstarted
LBugnion
- Slide 1
- Understanding the MVVM pattern
- What is MVVM
- The MVC pattern
- The Passive View pattern
- The Presentation Model pattern
- Blendability
- Hello MVVM (and Hi Blend)
- Bridging the gap
- Bridging the gap (2)
- Commands
- Commands and RelayCommands
- RelayCommands
- Messaging
- Messaging (2)
- Messaging (3)
- MVVM Light Toolkit
- MVVM Light Libraries V3
- MVVM Light Tools V3
- MVVM Light Toolkit Unity Blendability
- Flaws of MVVM
- Debunking the myths
- Debunking the myths (2)
- MVVM on the Windows Phone 7
- Slide 25
-
Debunking the myths
bullldquoI donrsquot need separation because I donrsquot have a designerrdquo
bullldquoYou cannot use MVVM with other patternsrdquo
bullldquoMVVM will make you rich and attractiverdquo
DEMO
MVVM on theWindows Phone 7
THANKS
httpbloggalasoftch
httpwwwgalasoftchmvvmgetstarted
LBugnion
- Slide 1
- Understanding the MVVM pattern
- What is MVVM
- The MVC pattern
- The Passive View pattern
- The Presentation Model pattern
- Blendability
- Hello MVVM (and Hi Blend)
- Bridging the gap
- Bridging the gap (2)
- Commands
- Commands and RelayCommands
- RelayCommands
- Messaging
- Messaging (2)
- Messaging (3)
- MVVM Light Toolkit
- MVVM Light Libraries V3
- MVVM Light Tools V3
- MVVM Light Toolkit Unity Blendability
- Flaws of MVVM
- Debunking the myths
- Debunking the myths (2)
- MVVM on the Windows Phone 7
- Slide 25
-
DEMO
MVVM on theWindows Phone 7
THANKS
httpbloggalasoftch
httpwwwgalasoftchmvvmgetstarted
LBugnion
- Slide 1
- Understanding the MVVM pattern
- What is MVVM
- The MVC pattern
- The Passive View pattern
- The Presentation Model pattern
- Blendability
- Hello MVVM (and Hi Blend)
- Bridging the gap
- Bridging the gap (2)
- Commands
- Commands and RelayCommands
- RelayCommands
- Messaging
- Messaging (2)
- Messaging (3)
- MVVM Light Toolkit
- MVVM Light Libraries V3
- MVVM Light Tools V3
- MVVM Light Toolkit Unity Blendability
- Flaws of MVVM
- Debunking the myths
- Debunking the myths (2)
- MVVM on the Windows Phone 7
- Slide 25
-
THANKS
httpbloggalasoftch
httpwwwgalasoftchmvvmgetstarted
LBugnion
- Slide 1
- Understanding the MVVM pattern
- What is MVVM
- The MVC pattern
- The Passive View pattern
- The Presentation Model pattern
- Blendability
- Hello MVVM (and Hi Blend)
- Bridging the gap
- Bridging the gap (2)
- Commands
- Commands and RelayCommands
- RelayCommands
- Messaging
- Messaging (2)
- Messaging (3)
- MVVM Light Toolkit
- MVVM Light Libraries V3
- MVVM Light Tools V3
- MVVM Light Toolkit Unity Blendability
- Flaws of MVVM
- Debunking the myths
- Debunking the myths (2)
- MVVM on the Windows Phone 7
- Slide 25
-