Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En esta serie de tutoriales se muestra cómo implementar el enlace de datos, la inserción de dependencias y las pruebas unitarias con el patrón de diseño Model-View-ViewModel (MVVM) y el kit de herramientas de MVVM en una aplicación WinUI 3. Se basa en el tutorial Creación de una aplicación winUI y se muestra cómo actualizar los modelos de vista para aprovechar el kit de herramientas de MVVM y las diferencias entre el kit de herramientas de MVVM y los enfoques tradicionales de MVVM.
Puede descargar o ver el código de este tutorial desde el repositorio de GitHub.
En este tutorial, aprenderá a:
- Comprenda las diferencias entre el kit de herramientas de MVVM y los enfoques tradicionales de MVVM.
- Cree un proyecto independiente de biblioteca de clases para contener ViewModels y servicios, mejorando así la facilidad de prueba.
- Implemente el enlace de datos en la aplicación WinUI mediante el kit de herramientas de MVVM.
- Agregue los modelos de vista
AllNotesViewModelyNoteViewModelpara aprovechar el MVVM Toolkit. - Integre la inserción de dependencias para administrar ViewModels y servicios.
- Cree un proyecto de prueba unitaria para probar los viewModels y los servicios.
Prerrequisitos
Para completar este tutorial, debe cumplir los siguientes requisitos previos:
- Visual Studio 2022 (versión 17.14 o posterior) o Visual Studio 2026 con la carga de trabajo desarrollo de aplicaciones winUI instalada.
- Un proyecto de inicio creado siguiendo los pasos del tutorial Creación de una aplicación WinUI . Si ya está familiarizado con el tutorial, puede descargar el código para empezar aquí desde el repositorio de GitHub.
¿Qué es MVVM Toolkit?
MVVM Toolkit es una biblioteca moderna, ligera y rápida que le ayuda a implementar el patrón de diseño de MVVM en las aplicaciones .NET. Forma parte del kit de herramientas de la comunidad de .NET y proporciona un conjunto de herramientas y utilidades para simplificar el desarrollo de aplicaciones basadas en MVVM. El kit de herramientas de MVVM incluye características como:
-
ObservableObject: clase base que implementa la
INotifyPropertyChangedinterfaz, por lo que puede crear modelos de vista que notifiquen a la vista los cambios de propiedad. - RelayCommand: implementación de comandos que permite enlazar acciones de interfaz de usuario a métodos del modelo de vista.
- Messenger: sistema de mensajería que permite la comunicación entre diferentes partes de la aplicación sin acoplamiento estricto.
- Atributos: un conjunto de atributos que puede usar para generar código reutilizable, como las notificaciones de cambio de propiedad y las implementaciones de comandos.
- Generadores de código fuente: generación de código en tiempo de compilación que reduce el código repetitivo y mejora el rendimiento.
- Compatibilidad con inserción de dependencias: compatibilidad integrada con la inserción de dependencias para administrar el ciclo de vida de los modelos de vista y los servicios.
El kit de herramientas de MVVM está diseñado para ser fácil de usar e integrar en los proyectos existentes. Es compatible con varias plataformas .NET, como WinUI, WPF y .NET MAUI. Puede consultar algunas aplicaciones de ejemplo en el repositorio de GitHub o en la aplicación de ejemplo en Microsoft Store para ver cómo se puede usar el kit de herramientas de MVVM en diferentes escenarios.
¿Cómo se compara MVVM Toolkit con los enfoques tradicionales de MVVM?
El kit de herramientas de MVVM reduce la cantidad de código ViewModel reutilizable y simplifica muchos aspectos de la implementación del patrón de diseño de MVVM en comparación con los enfoques tradicionales. Estas son algunas diferencias clave:
| Característica | Enfoque tradicional de MVVM | Enfoque del kit de herramientas de MVVM |
|---|---|---|
| Notificación de cambio de propiedad | Implemente INotifyPropertyChanged manualmente en una clase base y genere PropertyChanged eventos para cada propiedad. |
Herede de ObservableObject y use el SetProperty método para generar PropertyChanged eventos automáticamente. |
| Implementación de comandos | Implemente ICommand manualmente para cada comando. |
Utiliza RelayCommand para crear fácilmente comandos con un código repetitivo mínimo. |
| Messaging | Implemente sistemas de mensajería personalizados o use bibliotecas de terceros. | Use la clase integrada Messenger para la comunicación desacoplada entre los componentes. |
| Código de plantilla | Escriba código repetitivo para las notificaciones de cambio de propiedad y las implementaciones de comandos. | Use atributos y generadores de código fuente para reducir el código repetitivo. |
| Performance | Es posible que tenga sobrecarga de rendimiento debido a la reflexión y a la generación de código en tiempo de ejecución. | Los generadores de código fuente proporcionan generación de código en tiempo de compilación, lo que mejora el rendimiento. |
| Compatibilidad con la inyección de dependencias | Requiere la configuración manual y la administración de los ciclos de vida del modelo de vista. | Soporte integrado para la inyección de dependencias para administrar los ciclos de vida del modelo de vista. |
| Curva de aprendizaje | Puede requerir una comprensión más profunda de los conceptos y patrones de MVVM. | Más fácil de aprender y usar con un enfoque en la simplicidad y la productividad. |
Para obtener más información sobre el patrón de diseño de MVVM, consulte Enlace de datos de Windows y MVVM, Model-View-ViewModel (MVVM) y la documentación de referencia de la interfaz INotifyPropertyChanged.
La aplicación Notas de WinUI
La aplicación final que se compila en este tutorial es una versión refactorizada de la aplicación WinUI Notes desde el tutorial Creación de una aplicación winUI . La aplicación permite a los usuarios crear, guardar y cargar varias notas. La interfaz de usuario de la aplicación original sigue siendo la misma, pero la arquitectura actualizada usa el kit de herramientas de MVVM para el enlace de datos y la administración de modelos de vista.
AllNotesPage
NotePage
Sugerencia
Al desarrollar aplicaciones de Windows, a menudo se hace referencia a la documentación de la API y a los documentos conceptuales. En este tutorial, ves vínculos insertados en el texto y, en grupos etiquetados, "Más información en los docs:". Estos vínculos son opcionales; No es necesario seguirlos para completar el tutorial. Se proporcionan en caso de que quieras anotar dónde encontrar la información que necesitarás al empezar a crear tus propias aplicaciones.