This article on MVVM[
^] gives a good sample on the pattern, and also some links to other articles that explain its history and development. However, there is no easy answer to your question, beyond doing some research for yourself into the areas of interest.