Model View ViewModel (MVVM) es el patrón de diseño introducido en 2005 por Microsoft, como mejora del clásico Model View Controller (MVC).
Muchos piensan que la omisión de los controladores, es un gran defecto de MVVM, sin embargo esta arquitectura para nada los prohibe. Es más, a parte de las capas de Model, View, y ViewModel, es habitual disponer también de Controller y Binder.
Su uso está soportado en Windows Presentation Foundation (WPF) y Silverlight, pero su uso fuera de estos entornos, es anecdótico.
Como toda arquitectura compleja, tiene sus defectos, siendo el principal la complejidad que introduce para el desarrollo de aplicaciones sencillas. Es decir, sus bondades aumentan a medida que tenemos más tamaño de proyecto, sobre todo más vistas.
Ya fuera con el modelo de Presentación Lógica y Datos utilizado antaño, como con MVC o MVVM, queda patente la necesidad de separar a nivel lógico el manejo de datos, su gestión, y su visualización. Nada ha cambiado en este sentido.