Six months ago, when I started leading a Silverlight development effort, MvvM was new to me. Drawing on my OO Design experience, I fancied that I instinctively discerned what MvvM meant: As little UI code as possible. Meaning ‘zero’ code-behind. Use data binding and your model to drive all interactions.
Six months on, now after battling lack of native support in the platform, I now feel 0 code-behind is a panacea and we don’t live in an ideal world! Far from it.
So, here’s what I learnt: Code-behind’s okay as long as it lives in the framework layer of your application. There, I said it. Your application layer should only be XAML.
I’m starting a series of posts on my experiences with Silverlight & MvvM. Just hope my experience helps somebody!