Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez az oktatóanyag-sorozat bemutatja, hogyan implementálhat adatkötést, függőséginjektálást és egységtesztelést a Model-View-ViewModel (MVVM) tervezési mintával és az MVVM Toolkittel egy WinUI-alkalmazásban. A WinUI 3 jegyzetalkalmazás készítése oktatóanyagra épül, és bemutatja, hogyan frissítheti nézetmodelljeit az MVVM Toolkitet használva, valamint ismerteti az MVVM Toolkit és a hagyományos MVVM-megközelítések közötti különbségeket.
Az oktatóanyag kódját a GitHub-adattárból töltheti le vagy tekintheti meg.
Ebben az oktatóanyagban a következőket sajátíthatja el:
- Ismerje meg az MVVM-eszközkészlet és a hagyományos MVVM-megközelítések közötti különbségeket.
- Hozzon létre egy külön osztálytárprojektet a ViewModels és a szolgáltatások tárolásához a jobb tesztelhetőség érdekében.
- Implementálja az adatkötést a WinUI-alkalmazásban az MVVM Eszközkészlettel.
- A
AllNotesViewModelésNoteViewModelmegjelenítési modellek hozzáadása az MVVM-eszközkészlet kihasználásához. - Integrálja a függőséginjektálást a ViewModels és a szolgáltatások kezeléséhez.
- Hozzon létre egy egységtesztelési projektet a ViewModels és a szolgáltatások teszteléséhez.
Előfeltételek
Az oktatóanyag teljesítéséhez a következő előfeltételekre lesz szüksége:
- Visual Studio 2026 , telepített WinUI alkalmazásfejlesztési számítási feladattal.
- Egy kezdőprojekt, amelyet a WinUI 3 jegyzetalkalmazás létrehozása oktatóanyag lépéseit követve hoztak létre. Ha már ismeri az oktatóanyagot, letöltheti a kódot az első lépésekhez a GitHub-adattárból.
Mi az MVVM-eszközkészlet?
Az MVVM eszközkészlet egy modern, könnyű és gyors kódtár, amely segít implementálni az MVVM tervezési mintáját a .NET-alkalmazásokban. Ez a .NET közösségi eszközkészlet része, és olyan eszközöket és segédprogramokat biztosít, amelyek leegyszerűsítik az MVVM-alapú alkalmazások fejlesztését. Az MVVM eszközkészlet olyan funkciókat tartalmaz, mint például:
-
ObservableObject: Egy alaposztály, amely implementálja az
INotifyPropertyChangedinterfészt, így olyan nézetmodelleket hozhat létre, amelyek értesítik a tulajdonságváltozások nézetét. - RelayCommand: Parancs implementáció, amellyel felhasználói felületi műveleteket köthet a nézetmodell metódusaihoz.
- Messenger: Egy üzenetkezelő rendszer, amely szoros összekapcsolás nélkül teszi lehetővé az alkalmazás különböző részei közötti kommunikációt.
- Attribútumok: Olyan attribútumok készlete, amelyekkel sablonkódot hozhat létre, például tulajdonságmódosítási értesítéseket és parancs implementációkat.
- Forrásgenerátorok: Fordítási idejű kódgenerálás, amely csökkenti a sablonkódot és javítja a teljesítményt.
- Függőséginjektálás támogatása: A függőséginjektálás beépített támogatása a nézetmodellek és szolgáltatások életciklusának kezeléséhez.
Az MVVM eszközkészletet úgy tervezték, hogy könnyen használható legyen, és integrálható legyen a meglévő projektjeibe. Kompatibilis a különböző .NET-platformokkal, beleértve a WinUI-t, a WPF-et és a .NET MAUI-t. Néhány mintaalkalmazást a GitHub-adattárban vagy a Microsoft Store mintaalkalmazásában tekinthet meg, hogy az MVVM-eszközkészlet hogyan használható különböző helyzetekben.
Hogyan hasonlítja össze az MVVM-eszközkészlet a hagyományos MVVM-megközelítéseket?
Az MVVM-eszközkészlet csökkenti a Sablon ViewModel-kód mennyiségét, és leegyszerűsíti az MVVM tervezési minta implementálásának számos aspektusát a hagyományos megközelítésekhez képest. Íme néhány lényeges különbség:
| Tulajdonság | Hagyományos MVVM-megközelítés | MVVM Toolkit megközelítés |
|---|---|---|
| Tulajdonságmódosítási értesítés | Manuálisan implementáljon INotifyPropertyChanged egy alaposztályt, és eseményeket emeljen ki PropertyChanged az egyes tulajdonságokhoz. |
Örököljön a(z) ObservableObject osztályból, és használja a SetProperty metódust a(z) PropertyChanged események automatikus kiváltásához. |
| Parancs implementálása | Manuálisan implementáljuk ICommand az egyes parancsokat. |
A RelayCommand segítségével egyszerűen hozhat létre parancsokat minimális sablonnal. |
| Messaging | Egyéni üzenetkezelési rendszerek implementálása vagy külső kódtárak használata. | Használja a beépített osztályt Messenger az összetevők közötti leválasztott kommunikációhoz. |
| Boilerplate-kód | Ismétlődő kód írása a tulajdonságmódosítási értesítésekhez és a parancs implementációihoz. | Attribútumok és forrásgenerátorok használata a sablonkód csökkentéséhez. |
| Performance | A tükrözés és a futtatókörnyezeti kódgenerálás miatt előfordulhat, hogy a teljesítmény többletterheléssel jár. | A forrásgenerátorok fordítási idejű kódgenerálást biztosítanak, ami javítja a teljesítményt. |
| Függőséginjektálás támogatása | A nézetmodellek életciklusának manuális beállítását és kezelését igényli. | A függőséginjektálás beépített támogatása a nézetmodellek életciklusának kezeléséhez. |
| Tanulási görbe | Előfordulhat, hogy az MVVM fogalmainak és mintáinak mélyebb megértésére van szükség. | Könnyebben elsajátítható és használható, az egyszerűségre és a hatékonyságra összpontosítva. |
Az MVVM tervezési mintájának további hátterét lásd: Windows-adatkötés és MVVM, Model-View-ViewModel (MVVM) és az INotifyPropertyChanged Interface referenciadokumentációja.
A WinUI Notes alkalmazás
Az oktatóanyagban szereplő utolsó alkalmazás a WinUI Notes alkalmazás újratervezett verziója, amely a WinUI 3 jegyzetalkalmazás buildelési oktatóanyagából származik. Az alkalmazás lehetővé teszi, hogy a felhasználók több jegyzetet hozzanak létre, mentsenek és töltsenek be. Az eredeti alkalmazás felhasználói felülete változatlan marad, de a frissített architektúra az MVVM Eszközkészletet használja az adatkötéshez és a modellkezelés megtekintéséhez.
AllNotesPage
NotePage
Jótanács
Windows-alkalmazások létrehozásakor gyakran hivatkozik API-referencia-dokumentumokra és fogalmi dokumentumokra. Ebben az oktatóanyagban beágyazott hivatkozások jelennek meg a szövegben és a "További információ a dokumentumokban:" címkével ellátott csoportokban. Ezek a hivatkozások nem kötelezőek; az oktatóanyag elvégzéséhez nem kell követnie őket. Ezek abban az esetben vannak megadva, ha fel szeretné jegyezni, hogy hol találja meg a szükséges információkat, amikor saját alkalmazásokat hoz létre.
Windows developer