Modelo–vista–vistamodelo
keyboard_arrow_down
Contenido 
Modelo-vista-modelo de vista (MVVM) es un patrón arquitectónico en software que facilita la separación del desarrollo de una interfaz gráfica de usuario (GUI; la vista) —ya sea mediante un lenguaje de marcado o código GUI— del desarrollo de la lógica de negocio o la lógica de back-end (el modelo), de modo que la vista no dependa de ninguna plataforma de modelo específica.
El modelo de vista de MVVM es un convertidor de valores, lo que significa que se encarga de exponer (convertir) los objetos de datos del modelo para que puedan gestionarse y presentarse fácilmente. En este sentido, el modelo de vista es más un modelo que una vista y gestiona la mayor parte (si no toda) de la lógica de visualización de la vista. El modelo de vista puede implementar un patrón mediador, organizando el acceso a la lógica del backend en torno al conjunto de casos de uso que admite la vista.MVVM es una variación del patrón de diseño Presentation Model de Martin Fowler. Fue inventado por los arquitectos de Microsoft, Ken Cooper y Ted Peters, específicamente para simplificar la programación basada en eventos de interfaces de usuario. El patrón se incorporó a Windows Presentation Foundation (WPF) (el sistema de gráficos .NET de Microsoft) y a Silverlight, la aplicación de Internet derivada de WPF. John Gossman, arquitecto de Microsoft WPF y Silverlight, anunció MVVM en su blog en 2005.El modelo-vista-modelo de vista también se conoce como modelo-vista-vinculador, especialmente en implementaciones que no involucran la plataforma .NET. ZK, un framework de aplicaciones web escrito en Java, y la biblioteca de JavaScript KnockoutJS utilizan el modelo-vista-vinculador.Componentes del patrón MVVM
- Modelo
- Modelo se refiere a un modelo de dominio, que representa el contenido de estado real (un enfoque orientado hacia objetos), o a la capa de acceso a datos, que representa el contenido (un enfoque centrado en datos).
- Ver
- Como en los patrones modelo–vista–controlador (MVC) y modelo–presentante (MVP) vista es la estructura, el diseño y la apariencia de lo que un usuario ve en la pantalla. Muestra una representación del modelo y recibe la interacción del usuario con la vista (clices de ratón, entrada de teclado, gestos de pantalla del grifo, etc.), y reenvía el manejo de estos al modelo de vista a través de la unión de datos (propiedades, callbacks de eventos, etc.) que se define para vincular el modelo de vista y vista.
- Ver modelo
- El modelo es una abstracción de la vista que expone propiedades y comandos públicos. En lugar del controlador del patrón MVC, o el presentador del patrón MVP, MVVM tiene un Binder, que automatiza la comunicación entre la vista y sus propiedades ligadas en el modelo de vista. El modelo de visión se ha descrito como un estado de los datos del modelo.
- La principal diferencia entre el modelo de vista y el Presenter en el patrón MVP es que el presentador tiene una referencia a una vista, mientras que el modelo de vista no. En cambio, una vista se une directamente a las propiedades del modelo de vista para enviar y recibir actualizaciones. Para funcionar eficientemente, esto requiere una tecnología vinculante o generar código de caldera para hacer la unión.
- En el marco de la programación orientada al objeto, el modelo de visión puede denominarse a veces objeto de transferencia de datos.
- Binder
- Los datos declarados y la unión de comandos son implícitos en el patrón MVVM. En la pila de solución Microsoft, el carpeta es un lenguaje marcado llamado XAML. La carpeta libera al desarrollador de estar obligado a escribir la lógica de caldera-plate para sincronizar el modelo de vista y la vista. Cuando se implementa fuera de la pila de Microsoft, la presencia de una tecnología de unión de datos declarativa es lo que hace que este patrón sea posible, y sin una carpeta, normalmente se utilizaría MVP o MVC en su lugar y tendría que escribir más caldera (o generarlo con alguna otra herramienta).
Rationale
Crítica
Aplicación
. NET frameworks
- . NET Community Toolkit
- Avalonia
- Caliburn, Caliburn.Micro
- Chinook.DinamicMvvm Fuente abierta
- DevExpress MVVM
- Proyecto de código abierto DotVVM
- FreshMvvm
- Medusas
- Mugen MVVM Toolkit
- MVVMLight Toolkit
- MvvmCross
- MvvmZero
- Biblioteca Prism
- Rascl
- ReactiveUI
- Plataforma Uno - Fuente abierta
Bibliotecas de componentes web
- Microsoft FAST
- Omi.js
Java frameworks
- ZK Studio
Marcos de JavaScript
- Angular
- Aurelia
- Durandal
- Ember.js
- Ext JS
- Knockout.js
- Oracle JET
- Reacción
- Svelte
- Vue.js
Marco para C++ y XAML (Windows)
- Xamlcc
Véase también
- Arquitectura multitier
- Modelo – vista–controlador
- Modelo – vista–presentador
Referencias
- ^ a b Smith, Josh; et al. "Pensado: MVVM elimina el 99% de la necesidad de ValueConverters". Google Groups.
- ^ Martin Fowler (19 de julio de 2004). "El Patrón de Diseño Modelo de Presentación". Martin Fowler.com.
- ^ a b c d e f Smith, Josh (febrero de 2009). "WPF Apps with the Model–View–ViewModel Design Pattern". MSDN Magazine.
- ^ a b Gossman, John (8 de octubre de 2005). "Tales del cliente inteligente: Introducción al patrón modelo/ViewModel para la construcción de aplicaciones WPF".
- ^ a b Massey, Simon (9 de abril de 2011). "Patrones de Presentación en ZK". Retrieved 24 de marzo 2012.
- ^ Steve Sanderson. "KnockoutJS".
- ^ a b "El Patrón MVVM". msdn.microsoft.com. 4 de octubre de 2012. Retrieved 29 de agosto 2016.
- ^ Pete Weissbrod. "Model-View-ViewModel Pattern for WPF: Otro enfoque". Archivado desde el original el 1 de febrero de 2008.
- ^ Microsoft (3 April 2024). "Tutorial: Crear una API web con ASP.NET Core".
- ^ Wildermuth, Shawn (11 de mayo de 2010). "Windows Presentation Foundation Data Binding: Part 1". Microsoft. Retrieved 24 de marzo 2012.
- ^ "ZK MVVM". Potix. Retrieved 24 de marzo 2012.
- ^ Karl Shifflett. "Aprender WPF M-V-VM". Archivado desde el original el 13 de abril de 2009. Retrieved 5 de junio 2009.
- ^ Gossman, John (4 de marzo de 2006). "Tales del cliente inteligente: Ventajas y desventajas de M-V-VM". AI Skills Challenge.
Más resultados...