MVVM Survival Guide for Enterprise Architectures in Silverlight and WPF