Sdílet prostřednictvím


Datové vazby, injektáž závislostí a testování jednotek ve WinUI

Tato série tutoriálů ukazuje, jak implementovat datové vazby, vkládání závislostí a jednotkové testování pomocí návrhového vzoru Model-View-ViewModel (MVVM) a sady nástrojů MVVM v aplikaci WinUI 3. Vychází z kurzu Vytvoření aplikace WinUI a ukazuje, jak aktualizovat modely zobrazení tak, aby využívaly MVVM Toolkit a rozdíly mezi MVVM Toolkit a tradičními přístupy MVVM.

Kód pro účely tohoto kurzu si můžete stáhnout nebo zobrazit z úložiště GitHub.

V tomto návodu se naučíte, jak:

  • Seznamte se s rozdíly mezi MVVM Toolkit a tradičními přístupy MVVM.
  • Vytvořte samostatný projekt knihovny tříd, který bude obsahovat modely ViewModel a služby pro lepší testovatelnost.
  • Implementujte datovou vazbu v aplikaci WinUI pomocí MVVM Toolkit.
  • Přidejte AllNotesViewModel a NoteViewModel modely pohledů a využijte tak MVVM Toolkit.
  • Integrovat vkládání závislostí pro správu ViewModelů a služeb.
  • Vytvořte projekt pro jednotkové testy pro testování vašich ViewModelů a služeb.

Požadavky

Pro absolvování tohoto kurzu musí být splněné následující požadavky:

  • Visual Studio 2022 (verze 17.14 nebo novější) nebo Visual Studio 2026 s nainstalovanou úlohou vývoje aplikací WinUI .
  • Počáteční projekt vytvořený podle kroků v kurzu Vytvoření aplikace WinUI . Pokud už tento kurz znáte, můžete si stáhnout kód, abyste mohli začít pracovat z úložiště GitHub.

Co je MVVM Toolkit?

MVVM Toolkit je moderní, odlehčená a rychlá knihovna, která vám pomůže implementovat vzor návrhu MVVM v aplikacích .NET. Je součástí sady nástrojů .NET Community Toolkit a poskytuje sadu nástrojů a nástrojů pro zjednodušení vývoje aplikací založených na MVVM. Sada nástrojů MVVM obsahuje funkce, jako jsou:

  • ObservableObject: Základní třída, která implementuje INotifyPropertyChanged rozhraní, což umožňuje vytvořit modely zobrazení, které upozorní na změny vlastností.
  • RelayCommand: Implementace příkazu, která umožňuje svázat akce uživatelského rozhraní s metodami v modelu zobrazení.
  • Messenger: Systém zasílání zpráv, který umožňuje komunikaci mezi různými částmi aplikace bez těsného párování.
  • Atributy: Sada atributů, které můžete použít ke generování často používaného kódu, jako jsou oznámení o změně vlastností a implementace příkazů.
  • Generátory zdrojů: Generování kódu v době kompilace, které snižuje často používaný kód a zlepšuje výkon.
  • Podpora injektáže závislostí: Integrovaná podpora injektáže závislostí pro správu životního cyklu zobrazení modelů a služeb

Sada MVVM Toolkit je navržená tak, aby byla snadno použitelná a integrovaná do stávajících projektů. Je kompatibilní s různými platformami .NET, včetně WinUI, WPF a .NET MAUI. Můžete si prohlédnout některé ukázkové aplikace v úložišti GitHub nebo ukázkovou aplikaci v Microsoft Storu a podívat se, jak se dá sada MVVM Toolkit používat v různých scénářích.

Jak se sada MVVM Toolkit porovnává s tradičními přístupy MVVM?

Sada MVVM Toolkit snižuje množství často používaného kódu ViewModel a zjednodušuje mnoho aspektů implementace vzoru návrhu MVVM v porovnání s tradičními přístupy. Tady jsou některé klíčové rozdíly:

Vlastnost Tradiční přístup MVVM Přístup MVVM Toolkit
Oznámení o změně vlastnosti Ručně implementujte INotifyPropertyChanged v základní třídě a vyvolejte PropertyChanged události pro každou vlastnost. Použijte metodu SetProperty ke zdědění z ObservableObject a automatickému vyvolání PropertyChanged událostí.
Implementace příkazů Ručně implementujte ICommand pro každý příkaz. Pomocí RelayCommand snadno vytvářejte příkazy s minimální šablonou.
Messaging Implementujte vlastní systémy zasílání zpráv nebo používejte knihovny třetích stran. K oddělení komunikace mezi komponentami použijte integrovanou Messenger třídu.
Šablonový kód Napište opakující se kód pro oznámení o změnách vlastností a implementace příkazů. Ke snížení často používaného kódu použijte atributy a generátory zdrojů.
Performance Může mít kvůli reflexi a generování kódu za běhu režijní náklady na výkon. Generátory zdrojů poskytují generování kódu v době kompilace a zlepšují výkon.
Podpora injektování závislostí Vyžaduje ruční správu a nastavení životních cyklů modelu zobrazení. Integrovaná podpora injektáže závislostí pro správu životního cyklu modelu
Křivka učení Může vyžadovat hlubší pochopení konceptů a vzorů MVVM. Snadnější učení a používání se zaměřením na jednoduchost a produktivitu.

Další informace o vzoru návrhu MVVM najdete v tématu Datové vazby Windows a MVVM, Model-View-ViewModel (MVVM) a referenční dokumentaci pro rozhraní INotifyPropertyChanged.

Aplikace Poznámky WinUI

Poslední aplikace, kterou vytvoříte v tomto kurzu, je refaktorovaná verze aplikace WinUI Notes z kurzu Vytvoření aplikace WinUI . Aplikace umožňuje uživatelům vytvářet, ukládat a načítat více poznámek. Uživatelské rozhraní původní aplikace zůstane stejné, ale aktualizovaná architektura používá MVVM Toolkit pro datové vazby a správu modelů zobrazení.

AllNotesPage

Snímek obrazovky aplikace WinUI Notes zobrazující tři uložené poznámky v zobrazení AllNotesPage

Poznámková stránka

Snímek obrazovky aplikace Poznámky WinUI s prázdnou stránkou poznámky v zobrazení Poznámkové stránky

Návod

Při vytváření aplikací pro Windows často odkazujete na referenční dokumenty k rozhraní API a koncepční dokumenty. V tomto kurzu uvidíte odkazy v textu a ve skupinách označených jako "Další informace v dokumentaci:". Tyto odkazy jsou volitelné; Abyste mohli absolvovat kurz, nemusíte je dodržovat. Jsou k dispozici v případě, že si chcete poznamenat, kde najdete informace, které budete potřebovat, když začnete vytvářet vlastní aplikace.