Udostępnij przez


Powiązanie danych, wstrzykiwanie zależności i testowanie jednostkowe w usłudze WinUI

W tej serii samouczków pokazano, jak zaimplementować powiązanie danych, wstrzykiwanie zależności i testowanie jednostkowe przy użyciu wzorca projektowego model-View-ViewModel ( MVVM) i zestawu narzędzi MVVM w aplikacji WinUI 3. Opiera się on na samouczku Tworzenie aplikacji WinUI i pokazuje, jak zaktualizować modele widoku w celu wykorzystania zestawu narzędzi MVVM Toolkit oraz różnic między zestawem narzędzi MVVM Toolkit a tradycyjnymi metodami MVVM.

Możesz pobrać lub wyświetlić kod tego samouczka z repozytorium GitHub.

W tym poradniku nauczysz się, jak:

  • Poznaj różnice między zestawem narzędzi MVVM Toolkit i tradycyjnymi podejściami MVVM.
  • Utwórz oddzielny projekt biblioteki klas do przechowywania modelu ViewModels i usług w celu zwiększenia możliwości testowania.
  • Zaimplementuj powiązanie danych w aplikacji WinUI przy użyciu zestawu narzędzi MVVM Toolkit.
  • Dodaj modele widoku AllNotesViewModel i NoteViewModel aby wykorzystać zestaw narzędzi MVVM Toolkit.
  • Zintegruj wstrzykiwanie zależności, aby zarządzać modelami widoku i usługami.
  • Utwórz projekt testu jednostkowego do testowania modeli widoków i usług.

Wymagania wstępne

Do wykonania kroków tego samouczka niezbędne jest spełnienie następujących wymagań wstępnych:

Co to jest zestaw narzędzi MVVM?

Zestaw narzędzi MVVM Toolkit to nowoczesna, uproszczona i szybka biblioteka, która ułatwia implementowanie wzorca projektowego MVVM w aplikacjach platformy .NET. Jest on częścią zestawu narzędzi .NET Community Toolkit i udostępnia zestaw narzędzi, które upraszczają tworzenie aplikacji opartych na maszynie MVVM. Zestaw narzędzi MVVM Zawiera takie funkcje jak:

  • ObservableObject: klasa bazowa, która implementuje INotifyPropertyChanged interfejs, dzięki czemu można tworzyć modele wyświetlania, które powiadamiają widok zmian właściwości.
  • RelayCommand: implementacja polecenia, która umożliwia powiązanie akcji interfejsu użytkownika z metodami w modelu widoku.
  • Messenger: system obsługi komunikatów, który umożliwia komunikację między różnymi częściami aplikacji bez ścisłego sprzężenia.
  • Atrybuty: Zestaw atrybutów, których można użyć do generowania szablonowego kodu, takiego jak powiadomienia o zmianie właściwości i implementacje poleceń.
  • Generatory kodu źródłowego: Generowanie kodu w czasie kompilacji, które zmniejsza powtarzalny kod i poprawia wydajność.
  • Obsługa wstrzykiwania zależności: wbudowana obsługa wstrzykiwania zależności w celu zarządzania cyklem życia modeli i usług widoku.

Zestaw narzędzi MVVM Toolkit został zaprojektowany tak, aby był łatwy w użyciu i integrowany z istniejącymi projektami. Jest ona zgodna z różnymi platformami .NET, w tym WinUI, WPF i .NET MAUI. Możesz zapoznać się z przykładowymi aplikacjami w repozytorium GitHub lub przykładową aplikacją w Sklepie Microsoft Store, aby zobaczyć, jak można używać zestawu narzędzi MVVM w różnych scenariuszach.

W jaki sposób zestaw narzędzi MVVM Toolkit porównuje się z tradycyjnymi podejściami MVVM?

Zestaw narzędzi MVVM zmniejsza ilość standardowego kodu ViewModel i upraszcza wiele aspektów implementowania wzorca projektowego MVVM w porównaniu z tradycyjnymi podejściami. Oto kilka kluczowych różnic:

Funkcja Tradycyjne podejście MVVM Podejście zestawu narzędzi MVVM
Powiadomienie o zmianie własności Ręcznie zaimplementuj INotifyPropertyChanged w klasie bazowej i wywołuj zdarzenia PropertyChanged dla każdej właściwości. Dziedzicz z ObservableObject i użyj metody SetProperty, aby automatycznie generować zdarzenia PropertyChanged.
Implementacja poleceń Ręcznie zaimplementuj ICommand dla każdego polecenia. Użyj RelayCommand do łatwego tworzenia poleceń z minimalną ilością kodu.
Messaging Zaimplementuj niestandardowe systemy obsługi komunikatów lub użyj bibliotek innych firm. Użyj wbudowanej Messenger klasy do oddzielenia komunikacji między składnikami.
Kod szablonowy Napisz powtarzalny kod dla powiadomień o zmianie właściwości i implementacji poleceń. Użyj atrybutów i generatorów źródłowych, aby zmniejszyć standardowy kod.
Performance Może mieć obciążenie związane z wydajnością z powodu odbicia i generowania kodu w czasie wykonywania. Generatory źródeł zapewniają generowanie kodu w czasie kompilacji, zwiększając wydajność.
Obsługa wstrzykiwania zależności Wymaga ręcznej konfiguracji i zarządzania cyklami życia modelu wyświetlania. Wbudowana obsługa wstrzykiwania zależności w celu zarządzania cyklami życia modelu.
Krzywa uczenia Może wymagać głębszego zrozumienia koncepcji i wzorców MVVM. Łatwiejsze do nauki i użycia z naciskiem na prostotę i produktywność.

Aby uzyskać więcej informacji na temat wzorca projektowania MVVM, zobacz Powiązania danych systemu Windows i MVVM, Model-View-ViewModel (MVVM) oraz dokumentację referencyjną interfejsu INotifyPropertyChanged.

Aplikacja Notatek WinUI

Końcowa aplikacja, którą utworzysz w tym samouczku, to zrefaktoryzowana wersja aplikacji WinUI Notes z samouczka Tworzenie aplikacji WinUI. Aplikacja umożliwia użytkownikom tworzenie, zapisywanie i ładowanie wielu notatek. Interfejs użytkownika oryginalnej aplikacji pozostaje taki sam, ale zaktualizowana architektura używa zestawu NARZĘDZI MVVM Toolkit do tworzenia powiązań danych i zarządzania modelami widoku.

AllNotesPage

Zrzut ekranu aplikacji Notatki WinUI z wyświetlonymi trzema zapisanymi notatkami w widoku AllNotesPage.

NotePage

Zrzut ekranu aplikacji Notatek WinUI przedstawiający pustą stronę notatek w widoku NotePage.

Wskazówka

Podczas tworzenia aplikacji dla systemu Windows często odwołujesz się do dokumentacji referencyjnej API i dokumentacji koncepcyjnej. W tym samouczku zobaczysz linki wbudowane w tekście oraz w grupach z oznaczeniem "Dowiedz się więcej w dokumentacji:". Te linki są opcjonalne; Nie musisz ich obserwować, aby ukończyć samouczek. Są one udostępniane w przypadku, gdy chcesz zanotować, gdzie można znaleźć potrzebne informacje, gdy zaczniesz tworzyć własne aplikacje.