Si buscamos en Google usando la frase "diferencias entre el patrón de diseño MVC, MVP y MVVM" entonces podemos obtener algunas URL's que discuten la diferencia entre el patrón de diseño MVC MVP & MVVM teóricamente como :
MVP
Se utiliza en situaciones en las que no es posible la vinculación a través de un "dataContext". Windows Forms es un ejemplo perfecto de esto. Para separar la vista del modelo, se necesita un presentador. Como la vista no puede vincularse directamente al presentador, la información debe pasarse a la vista a través de una interfaz (IView).
MVVM
Se utiliza en situaciones en las que es posible la vinculación a través de un "dataContext". ¿Por qué? Se eliminan las distintas interfaces IView para cada vista, lo que significa menos código que mantener. Algunos ejemplos donde MVVM es posible incluir proyectos WPF y javascript usando Knockout.
MVC
Se utiliza en situaciones en las que la conexión entre la vista y el resto del programa no está siempre disponible (y no se puede emplear efectivamente MVVM o MVP). Esto describe claramente la situación en la que una API web está separada de los datos enviados a los navegadores de los clientes. ASP.NET MVC de Microsoft es una gran herramienta para gestionar estas situaciones y proporciona un marco MVC muy claro
Pero no he encontrado ningún artículo que discuta la diferencia teóricamente junto con un código de ejemplo.
Sería muy bueno si consigo un artículo que discuta la diferencia entre estos 3 patrones de diseño (MVC, MVP & MVVM) junto con el código.
Me gustaría tener en mis manos el código fuente de 3 similares CRUD aplicaciones que han sido implementadas por estos tres patrones de diseño (MVC, MVP y MVVM). Para que pueda ir a través del código y entender cómo se debe escribir código para estos tres patrones de diseño (MVC, MVP & MVVM).
Así que si existe algún artículo que discute cómo el código se vería diferente para estos 3 patrones de diseño (MVC, MVP y MVVM) entonces por favor redirigirme a ese artículo.