Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Esta série de tutoriais demonstra como implementar vinculação de dados, injeção de dependência e teste de unidade com o padrão de design Model-View-ViewModel (MVVM) e o MVVM Toolkit em um aplicativo WinUI 3. Ele se baseia no tutorial Criar um aplicativo WinUI e mostra como atualizar seus modelos de exibição para aproveitar o MVVM Toolkit e as diferenças entre o MVVM Toolkit e as abordagens MVVM tradicionais.
Você pode baixar ou visualizar o código para este tutorial no repositório GitHub.
Neste tutorial, aprenderás como:
- Entenda as diferenças entre o MVVM Toolkit e as abordagens MVVM tradicionais.
- Crie um projeto de biblioteca de classes separado para manter ViewModels e serviços para melhorar a testabilidade.
- Implemente a vinculação de dados em seu aplicativo WinUI usando o MVVM Toolkit.
- Adicione
AllNotesViewModeleNoteViewModelmodelos de visualização para utilizar o MVVM Toolkit. - Integre a injeção de dependências para gerir os ViewModels e serviços.
- Crie um projeto de teste de unidade para testar seus ViewModels e serviços.
Pré-requisitos
Para concluir este tutorial, precisa dos seguintes pré-requisitos:
- Visual Studio 2022 (versão 17.14 ou posterior) ou Visual Studio 2026 com a carga de trabalho de desenvolvimento de aplicativos WinUI instalada.
- Um projeto inicial criado seguindo as etapas no tutorial Criar um aplicativo WinUI . Se você já está familiarizado com o tutorial, você pode baixar o código para começar aqui a partir do repositório GitHub.
O que é o MVVM Toolkit?
O MVVM Toolkit é uma biblioteca moderna, leve e rápida que ajuda você a implementar o padrão de design MVVM em seus aplicativos .NET. Ele faz parte do .NET Community Toolkit e fornece um conjunto de ferramentas e utilitários para simplificar o desenvolvimento de aplicativos baseados em MVVM. O MVVM Toolkit inclui recursos como:
-
ObservableObject: uma classe base que implementa a
INotifyPropertyChangedinterface, para que você possa criar modelos de exibição que notificam a exibição de alterações de propriedade. - RelayCommand: uma implementação de comando que permite vincular ações da interface do usuário a métodos em seu modelo de exibição.
- Messenger: um sistema de mensagens que permite a comunicação entre diferentes partes do seu aplicativo sem acoplamento rígido.
- Atributos: um conjunto de atributos que você pode usar para gerar código clichê, como notificações de alteração de propriedade e implementações de comando.
- Geradores de código-fonte: geração de código em tempo de compilação que reduz o clichê e melhora o desempenho.
- Suporte à injeção de dependência: Suporte interno para injeção de dependência para gerenciar o ciclo de vida de modelos e serviços de exibição.
O MVVM Toolkit foi projetado para ser fácil de usar e integrar em seus projetos existentes. É compatível com várias plataformas .NET, incluindo WinUI, WPF e .NET MAUI. Você pode conferir alguns aplicativos de exemplo no repositório GitHub ou no aplicativo de exemplo na Microsoft Store para ver como o MVVM Toolkit pode ser usado em diferentes cenários.
Como o MVVM Toolkit se compara às abordagens MVVM tradicionais?
O MVVM Toolkit reduz a quantidade de código ViewModel clichê e simplifica muitos aspetos da implementação do padrão de design MVVM em comparação com as abordagens tradicionais. Aqui estão algumas diferenças importantes:
| Característica | Abordagem MVVM tradicional | Abordagem do MVVM Toolkit |
|---|---|---|
| Notificação de alteração de propriedade | Implemente INotifyPropertyChanged manualmente em uma classe base e gere PropertyChanged eventos para cada propriedade. |
Herdar de ObservableObject e usar o método SetProperty para gerar eventos PropertyChanged automaticamente. |
| Implementação do Comando | Implemente ICommand manualmente para cada comando. |
Use RelayCommand para criar facilmente comandos com o mínimo de clichê. |
| Messaging | Implemente sistemas de mensagens personalizados ou use bibliotecas de terceiros. | Use a classe interna Messenger para comunicação dissociada entre componentes. |
| Código Boilerplate (código padrão) | Escreva código repetitivo para notificações de alteração de propriedade e implementações de comando. | Use atributos e geradores de código-fonte para reduzir o código clichê. |
| Performance | Pode ter impacto no desempenho devido à reflexão e à geração de código em tempo de execução. | Os geradores de código-fonte fornecem geração de código em tempo de compilação, melhorando o desempenho. |
| Suporte de injeção de dependência | Requer configuração manual e gerenciamento dos ciclos de vida do modelo de exibição. | Suporte integrado para injeção de dependência para gerenciar ciclos de vida do modelo de exibição. |
| Curva de aprendizagem | Pode exigir uma compreensão mais profunda dos conceitos e padrões MVVM. | Mais fácil de aprender e usar com foco na simplicidade e produtividade. |
Para obter mais informações sobre o padrão de design MVVM, consulte Vinculação de dados do Windows e MVVM, Model-View-ViewModel (MVVM) e a documentação de referência para a Interface INotifyPropertyChanged.
O aplicativo WinUI Notes
O aplicativo final que você cria neste tutorial é uma versão refatorada do aplicativo WinUI Notes do tutorial Criar um aplicativo WinUI . O aplicativo permite que os usuários criem, salvem e carreguem várias notas. A interface do usuário do aplicativo original permanece a mesma, mas a arquitetura atualizada usa o MVVM Toolkit para vinculação de dados e gerenciamento de modelo de exibição.
AllNotesPage
Página de Observação
Sugestão
Ao criar aplicativos do Windows, você geralmente se refere a documentos de referência de API e documentos conceituais. Neste tutorial, você verá links embutidos no texto e em grupos rotulados como "Saiba mais nos documentos:". Estes links são opcionais; Você não precisa segui-los para concluir o tutorial. Eles são fornecidos caso você queira anotar onde encontrar as informações necessárias quando começar a criar seus próprios aplicativos.
Windows developer