Depends a lot on what you are focusing on -
for me the unidirectional onion principle was something old and used even before Dotnet was at 1.1 ;-)
>It really went the other way around. MVVM was made specifically for WPF.
>
>>To my mind, things like WPF's command routing and control templates (with databinding) are a natural fit for MVVM. At one point we looked at how well an MVVM VM could be made to work with, for example, a WinForms or ASP.NET front end. The answer seemed to be 'not well'.
>>
>>The 'Why WPF Developers Love MVVM' here :
http://msdn.microsoft.com/en-us/magazine/dd419663.aspx sums it up to a certain extent. End of the day MVVM evolved to fit WPF features......