Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Esta série de tutoriais demonstra como implementar a associação de dados, a injeção de dependência e o teste de unidade com o padrão de design MVVM (Model-View-ViewModel) e o Kit de Ferramentas MVVM 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 Kit de Ferramentas MVVM e as diferenças entre o Kit de Ferramentas MVVM e as abordagens MVVM tradicionais.
Você pode baixar ou exibir o código deste tutorial no repositório do GitHub.
Neste tutorial, você aprenderá como:
- Entenda as diferenças entre o Kit de Ferramentas MVVM e as abordagens MVVM tradicionais.
- Crie um projeto separado de biblioteca de classes para armazenar os ViewModels e serviços, melhorando assim a capacidade de teste.
- Implemente a associação de dados em seu aplicativo WinUI usando o Kit de Ferramentas do MVVM.
- Adicione
AllNotesViewModeleNoteViewModelmodelos de visualização para aproveitar o Kit de Ferramentas MVVM. - Integre a injeção de dependência para gerenciar ViewModels e serviços.
- Crie um projeto de teste de unidade para testar seus serviços e ViewModels.
Pré-requisitos
Para concluir este tutorial, você precisará 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á estiver familiarizado com o tutorial, poderá baixar o código para começar aqui no repositório do GitHub.
O que é o Kit de Ferramentas MVVM?
O Kit de Ferramentas MVVM é 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 Kit de Ferramentas MVVM inclui recursos como:
-
ObservableObject: uma classe base que implementa a
INotifyPropertyChangedinterface, para que você possa criar modelos de exibição que notifiquem a exibição de alterações de propriedade. - RelayCommand: uma implementação de comando que permite associar ações de 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 apertado.
- 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 código repetitivo 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 Kit de Ferramentas MVVM foi projetado para ser fácil de usar e integrar em seus projetos existentes. Ele é 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 Kit de Ferramentas MVVM pode ser usado em diferentes cenários.
Como o Kit de Ferramentas MVVM se compara às abordagens MVVM tradicionais?
O Kit de Ferramentas MVVM reduz a quantidade de código ViewModel clichê e simplifica muitos aspectos da implementação do padrão de design MVVM em comparação com as abordagens tradicionais. Aqui estão algumas das principais diferenças:
| Característica | Abordagem MVVM tradicional | Abordagem do Kit de Ferramentas do MVVM |
|---|---|---|
| Notificação de alteração de propriedade | Implemente INotifyPropertyChanged manualmente em uma classe base e gere PropertyChanged eventos para cada propriedade. |
Herda de ObservableObject e use o método SetProperty para gerar eventos PropertyChanged automaticamente. |
| Implementação de comando | Implemente ICommand manualmente para cada comando. |
Use RelayCommand para criar comandos facilmente com o mínimo de clichês. |
| Messaging | Implemente sistemas de mensagens personalizados ou use bibliotecas de terceiros. | Use a classe interna Messenger para comunicação desacoplada entre componentes. |
| Código clichê | Escreva código repetitivo para notificações de alteração de propriedade e implementações de comando. | Use atributos e geradores de origem para reduzir o código clichê. |
| Performance | Pode ter sobrecarga de desempenho devido à reflexão e geração de código em tempo de execução. | Os geradores de origem fornecem geração de código em tempo de compilação, melhorando o desempenho. |
| Suporte à injeção de dependência | Requer a instalação manual e o gerenciamento de ciclos de vida do modelo de exibição. | Suporte interno 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 do 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 associação de dados do Windows e MVVM, MVVM (Model-View-ViewModel) e a documentação de referência para a interface INotifyPropertyChanged.
O aplicativo Notas do WinUI
O aplicativo final criado neste tutorial é uma versão refatorada do aplicativo WinUI Notes no tutorial Criar um aplicativo WinUI . O aplicativo permite que os usuários criem, salvem e carreguem várias anotações. A interface do usuário do aplicativo original permanece a mesma, mas a arquitetura atualizada usa o Kit de Ferramentas MVVM para associação de dados e gerenciamento de modelo de exibição.
AllNotesPage
NotePage
Dica
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:". Esses 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