Tutorial MVVM I

En este serial, intentaré explicar de una forma somera y modesta, cómo desarrollar una aplicación WPF con el patrón MVVM.

Las siglas MVVM, corresponden a Model View ViewModel o dicho en castellano Modelo Vista Vista-Modelo. Este patrón es una evolución del patrón MVC, cuyo objetivo es separar la Vista, de la lógica de presentación (el ViewModel), y ésta última procesa los datos recibidos desde el Modelo. Pero…, ¿y qué diferencia hay con lo que hasta ahora se hacía en un desarrollo con un patrón n-layer?, pues fundamentalmente que la capa de presentación se aísla más de la lógica, dividiéndose en más componentes, lo cual permite el trabajo al mismo tiempo de más miembros del equipo de desarrollo (o incluso del equipo de diseño). Y se intenta evitar de forma general, el uso de los ficheros de code-behind asociados a los distintos controles, utilizando el enlace a datos de WPF para adjuntar comandos a la vista.

View

Lógica UI. La vista son los componentes definidos en los ficheros con el marcado XAML. El contexto de datos de los componentes se les asocia su ViewModel. Y se intenta reducir a la mínima expresión el uso del code-behind.

Model

Lógica de negocio. No tiene ninguna relación directa con la Vista, se ocupa de las reglas de negocio, los datos y de la persistencia en el almacén de datos.

ViewModel

Lógica de presentación. Es el adaptador entre la Vista y el Modelo. Maneja y valida los distintos eventos de la Vista y del Modelo. Implementa interfaces como INotifyPropertyChanged e ICommand.

Patrón