Introducción
Se diseñó la clase ViewModel a fin de almacenar y administrar datos relacionados
con la IU de manera optimizada para los ciclos de vida. La
clase ViewModel permite que se conserven los datos luego de cambios de
configuración, como las rotaciones de pantallas.
Objetivo general
Tratar de manera más sencilla en el desacoplar lo máximo posible la interfaz de
usuario de la lógica de la aplicación.
Objetivos específicos
Analizar los patrones MVC y MVVM para conocer las semejanzas y diferencias
entre estos patrones.
Definir variables e indicadores para los parámetros: rendimiento y
productividad.
Escoger el patrón más adecuado para el desarrollo de la aplicación web.
Model-View-ViewModel (MVVM) es un patrón de diseño de aplicaciones para
desacoplar código de interfaz de usuario y código que no es de interfaz de
usuario. Con MVVM, usted define su IU de forma declarativa (por ejemplo, usando
XAML) y usa el marcado de enlace de datos para vincularlo a otras capas que
contienen datos y comandos de usuario. La infraestructura de enlace de datos
proporciona un acoplamiento flexible que mantiene la interfaz de usuario y los
datos vinculados sincronizados y enruta todas las entradas del usuario a los
comandos apropiados.
El patrón MVVM organiza su código para que pueda cambiar partes individuales
sin afectar otras partes. Esto tiene muchos beneficios, que incluyen:
Habilitación de un estilo de codificación exploratorio e iterativo.
Simplificando las pruebas unitarias.
Aprovechando al máximo las herramientas de diseño como Expression
Blend.
Apoyo a la colaboración en equipo.
Por el contrario, una aplicación con una estructura más convencional utiliza el
enlace de datos solo para los controles de lista y texto, y responde a la entrada del
usuario manejando los eventos expuestos por los controles. Los controladores de
eventos están estrechamente acoplados a los controles y, por lo general,
contienen código que manipula la interfaz de usuario directamente. Esto hace que
sea difícil o imposible reemplazar un control sin tener que actualizar el código de
manejo de eventos.
Capas de aplicaciones
Cuando se usa el patrón MVVM, una aplicación se divide en las siguientes capas:
La capa de modelo incluye todo el código que implementa la lógica
principal de la aplicación y define los tipos necesarios para modelar el
dominio de la aplicación. Esta capa es completamente independiente de las
capas de vista y modelo de vista.
La capa de vista define la interfaz de usuario mediante un marcado
declarativo. El marcado de enlace de datos define la conexión entre
componentes específicos de la interfaz de usuario y varios miembros del
modelo de vista (y, a veces, del modelo).
La capa del modelo de vista proporciona destinos de enlace de datos para
la vista. En muchos casos, el modelo de vista expone el modelo
directamente o proporciona miembros que envuelven miembros específicos
del modelo. El modelo de vista también puede definir miembros para
realizar un seguimiento de los datos que son relevantes para la interfaz de
usuario, pero no para el modelo, como el orden de visualización de una lista
de elementos.
La Vista-Modelo (ViewModel)
El modelo de vista contiene toda la lógica de presentación. Implementa
propiedades y comandos que definen las funcionalidades que tomará dicha
aplicación. Estas propiedades y comandos son capaces de enlazar con la vista
(UI). Por lo tanto, se encarga realizar la comunicación entro los modelos y las
vistas.
Continuando con nuestro ejemplo, definiremos las funcionalidades que necesita la
aplicación de la Agenda. ( El segundo, tercer y cuarto requisito definen las
funcionalidades a desarrollar).
MVVM básico y avanzado
El ejemplo de Reversi muestra cómo crear una estructura de aplicación MVVM
básica mediante el enlace de datos XAML estándar y no requiere conocimientos
previos del patrón. Para obtener más información, consulte Aprenda cómo el
ejemplo de Reversi usa las características de la aplicación de la Tienda Windows:
Enlace de datos y Comprender la estructura de la aplicación Reversi .
Hay muchas técnicas y marcos MVVM avanzados que se vuelven útiles a medida
que una aplicación se vuelve más compleja, pero el enfoque básico descrito en los
temas de Reversi es útil para aprender el patrón central. El uso de técnicas
simples de MVVM también puede ayudar a mantener su código flexible durante las
primeras etapas de desarrollo al evitar infraestructura adicional hasta que su
aplicación realmente la necesite.
Para obtener más información sobre cómo las tecnologías relacionadas utilizan el
patrón, consulte:
Usar el patrón Model-View-ViewModel (MVVM) en una aplicación
empresarial de la Tienda Windows usando C #, XAML y Prism
Uso del patrón Model-View-ViewModel (MVVM) en Hilo (aplicaciones de la
Tienda Windows que usan C ++ y XAML)
Uso de la biblioteca de clases portátil con el modelo de vista de modelo
Separe la interfaz de usuario y la lógica de la aplicación usando el patrón
Model-View-ViewModel (código compartido entre Windows Phone y las
aplicaciones de la Tienda Windows)
Desarrollo de una aplicación para Windows Phone usando el patrón MVVM
Creación de aplicaciones de Windows Phone comprobables
Bibliografía
• [Link]
[Link]
versions/windows/apps/jj883732(v=win.10)?redirectedfrom=MSDN