What the heck is NoMvvm?
NoMvvm is the bleeding edge of MVVM. Who wants to implement INotifyPropertyChanged or properties, let's use dynamic! NoMvvm makes heavy use of System.Dynamic and conventions to minimalize the code needed to hook up the Model-View-ViewModel pattern. It also enables TDD via the use of dynamic, as well as some additional classes for testing with MVVM.Does MVVM make you feel like...
Features (the Secret Sauce)
- Too much boilerplate!
- If data binding in Xaml is so loose and type-free, why do my ViewModels have to be strongly typed?
- What is this ICommand crap?
- INotifyPropertyChanged hurts my brain!
- My manager wants unit testing, how do I do that?
- I want to be free!
- Minimalist framework size
- base ViewModel class implements
- Methods with signature matching Action or Action<dynamic> automatically map to an ICommand
- As do properties of type Action or Action<dynamic>
- All dynamic properties work with WPF data binding and INotifyPropertyChanged
- A boolean CanX property automatically hooks up to CanExecute on a command of the same name
- Explicit and simple View->ViewModel wiring
- Extremely simple to setup
- Additional helpers for TDD and unit testing your ViewModels
Work from other Projects
- More examples and unit tests
- Test out some DLR languages like IronRuby/IronPython
- Convention based View->ViewModel wiring (this only works with Ninject currently)
- Add more helpers for specific non-MVVM-friendly scenarios
- WP7 support (when they get the DLR)
I wanted to acknowledge the use of some code from other projects.
NoMvvm is now on NuGet! Check it out here
See the documentation
for more info on what NoMvvm looks like and how to use it. Or hit up the discussion
to give me some much needed input.Want to help? Got good ideas? Do you ride your bicycle without a helmet? Hit me up and contribute!