MVVM

MVVM significa Modelo-Vista-ViewModel y es un patrón arquitectónico utilizado en el desarrollo de aplicaciones de software. Este patrón se utiliza en combinación con la plataforma de desarrollo de aplicaciones móviles de Microsoft, MAUI (Multi-platform App UI).

El patrón MVVM se utiliza para separar las preocupaciones de la lógica empresarial y la interfaz de usuario en diferentes capas de la aplicación. Esto significa que los desarrolladores pueden trabajar en diferentes partes de la aplicación sin interferir en el trabajo de los demás.

En MVVM, el modelo representa los datos y la lógica empresarial de la aplicación. La vista representa la interfaz de usuario y el ViewModel es el enlace entre el modelo y la vista. El ViewModel se utiliza para presentar los datos del modelo en la vista y para actualizar los datos del modelo cuando se realizan cambios en la vista.

MAUI proporciona una arquitectura que permite utilizar el patrón MVVM de manera eficiente. La arquitectura de MAUI permite que la lógica empresarial y la interfaz de usuario se separen de manera efectiva. Los desarrolladores pueden crear modelos que contengan datos y lógica empresarial, vistas que muestren información al usuario y ViewModels que conecten los dos.

El uso de MVVM en MAUI permite a los desarrolladores crear aplicaciones móviles más fáciles de mantener y escalar. La separación de la lógica empresarial y la interfaz de usuario permite a los desarrolladores trabajar en diferentes partes de la aplicación sin interferir en el trabajo de los demás. Además, el uso de ViewModel permite que la lógica empresarial se mantenga independiente de la vista, lo que facilita la prueba y la depuración.

A continuación te proporciono un ejemplo básico de cómo implementar una aplicación de MAUI con el patrón MVVM en C#:

Modelo (Model.cs):


public class Model
{
    public string Text { get; set; }
}

ViewModel (ViewModel.cs):


public class ViewModel
{
    private readonly Model model;
    
    public ViewModel(Model model)
    {
        this.model = model;
    }
    
    public string Text
    {
        get => model.Text;
        set => model.Text = value;
    }
}

Vista (MainPage.xaml):


<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:viewModels="clr-namespace:MvvmDemo.ViewModels;assembly=MvvmDemo"
             x:Class="MvvmDemo.MainPage">
    <StackLayout>
        <Entry Text="{Binding Text}" />
        <Button Text="Guardar" Clicked="OnSaveClicked" />
    </StackLayout>
</ContentPage>

Vista (MainPage.xaml.cs):


public partial class MainPage : ContentPage
{
    private readonly ViewModel viewModel;
    
    public MainPage(Model model)
    {
        InitializeComponent();
        viewModel = new ViewModel(model);
        BindingContext = viewModel;
    }
    
    private void OnSaveClicked(object sender, EventArgs e)
    {
        // Aquí se pueden guardar los cambios realizados en el modelo
    }
}

En este ejemplo, el modelo (Model) contiene una única propiedad (Text) que se puede establecer y recuperar. El ViewModel (ViewModel) se utiliza para conectar el modelo y la vista, exponiendo una única propiedad (Text) que se puede enlazar a la vista (MainPage.xaml). La vista (MainPage.xaml) muestra una entrada de texto y un botón, y se enlaza a la propiedad Text del ViewModel. Cuando se hace clic en el botón, se puede guardar el valor del modelo actualizado.

Este ejemplo es muy básico, pero debería darte una idea de cómo funciona el patrón MVVM en una aplicación de MAUI.

https://learn.microsoft.com/es-es/dotnet/maui/xaml/fundamentals/mvvm?view=net-maui-7.0

https://mauiman.dev/mvvm.html

Publicado por

Juan Pablo Fuentes

Formador de programación y bases de datos