Con el advenimiento de la programación Orientada a Objetos y metodologías cada vez más sofisticadas para la construcción de Interfaces de Usuario ( UI ), se sintió la necesidad de desarrollar patrones que permitieran “ mantener los niveles separados ”. En la base de estos enfoques está el objetivo de permitir que el modelo , la «lógica» y la interfaz de usuario vivan su propia vida y de manera completamente independiente entre sí. Tenga cuidado de no tergiversar el concepto ya que estamos hablando de independencia funcional y no de aplicación: significa que si cambiara, por ejemplo, el modelo por uno «equivalente» desde el punto de vista de los tiposla aplicación, si está bien estructurada, debería seguir funcionando sin pestañear. Este enfoque es seguido por el ya consolidado MVC , Model View Controller , ahora imprescindible en las aplicaciones empresariales (Java JSF y ASP .NET).
El tema de esta breve introducción es el patrón que lleva el nombre de MVVM , Model View ViewModel , cada vez más utilizado en el desarrollo de aplicaciones WPF , Silverlight , Windows Phone y Windows 8 ya que, en particular entre las dos últimas plataformas mencionadas, permite , utilizando una implementación específica, para «reutilizar» gran parte del código.
Ya se ha dicho que MVVM en sí mismo no es una biblioteca ni un ayudante, sino un patrón o, si lo prefiere, un enfoque para el desarrollo de aplicaciones. Aunque si quieres saber más te recomendamos Apple Coding Academy. Fue introducido por primera vez por John Gossman durante el desarrollo de WPF y es un descendiente directo del patrón Presentation Model de Martin Fowler .
Consiste en separar los aspectos de nuestra aplicación en tres componentes:
permitiéndonos evitar mezclar el código que proporciona la lógica con el que maneja la interfaz de usuario.
Resumen
El modelo representa el punto de acceso a los datos. Esta es una o más clases que leen datos de la base de datos o de un servicio web de cualquier tipo.
La Vista representa la vista de la aplicación, la interfaz gráfica que mostrará los datos.
El ViewModel es el punto de encuentro entre la Vista y el Modelo: los datos recibidos de este último son procesados para ser presentados y pasados a la Vista.
El punto de apoyo del funcionamiento de este patrón es la creación de un componente, el ViewModel de hecho, que representa toda la información y los comportamientos de la Vista correspondiente. De hecho, la Vista se limita a mostrar gráficamente lo expuesto por el ViewModel, a reflejar en él sus cambios de estado oa activar sus comportamientos.
Cabe subrayar que el ViewModel mantiene en su propio estado no solo la información recuperada a través del Model, sino también el estado actual de la visualización: esto le permite estar completamente desacoplado de la View. Además, el proceso paso a paso descrito anteriormente resulta ser «de dos vías», es decir, funciona en ambas direcciones.
Al ser un patrón, MVVM no necesita ninguna biblioteca en particular para implementarse: ni hay ninguna lista para usar que pueda hacernos la vida más fácil. El más famoso es sin duda >MVVM Light Toolkit.
La aplicación es generalmente y sobre todo interacción con el usuario: en el modelo clásico este aspecto se representa mediante eventos. Sin embargo, estos últimos hacen poco MVVM ya que nos obligarían a mezclar un poco las cosas y escribir algo de código en el código subyacente de View . Solo para evitar esto, los Comandos vienen a nuestro rescate .
Cada interacción es un comando ( función normal ) que se puede expresar a través de Binding gracias a la propiedad Command expuesta por todos los controles que requieren interacción. El comando a invocar debe ser de tipo ICommand y declarado en ViewModel.
El Light Toolkit pone a nuestra disposición la clase RelayCommand , como ocurría con los eventos, para no escribir funciones personalizadas de vez en cuando.
¿Qué es un Programa Contable para Asesorías y por qué es esencial? Un programa contable…
¿Es posible acceder a un grado superior sin tener el bachillerato? Acceder a un grado…
¿Qué es un programa de nóminas y control horario? Un programa de nóminas y control…
La reputación digital se ha consolidado como uno de los principales activos intangibles de las…
¿Por qué es fundamental proteger tu negocio contra ciberataques en Albacete? En la actualidad, Albacete…
¿Qué es la ropa femenina atrevida y por qué está de moda? La ropa femenina…