Programovanie

Vytváranie aplikácií MVVM pomocou balíka Windows Community Toolkit

Spoločnosť Microsoft vždy dobre pracovala s vývojármi, a to už od svojich začiatkov ako predajca jazykov. Jeho program sa vyvíjal v priebehu rokov, od prístupu zhora nadol zameraného na Redmonda, ktorý vyvrcholil pravidelnými DVD dokumentáciami na serveri MSDN, až po dnešný komunitný program obklopený programami Microsoft Docs, Microsoft Learn, globálnym tímom Azure Developer Advocates, a neustále rastúca sada nástrojov a rámcov vyvinutých na GitHub.

Windows Community Toolkit: štartovacia súprava .NET

Spolupráca s komunitou priniesla zaujímavé výsledky s presnejšou a včasnejšou dokumentáciou pomocou GitHubu na správu obsahu a série komunitných open source projektov. Jedným z dôležitejších projektov je Windows Community Toolkit, rad funkcií, ovládacích prvkov a služieb pre aplikácie .NET a UWP. Je to projekt, ktorý bude dôležitejší až po prechode od staršieho .NET Framework k .NET Core založenému na .NET 5 a zavedení Project Reunion a multiplatformného multiplatformového používateľského rozhrania aplikácií (MAUI).

Sada Windows Community Toolkit nie je monolitická entita, ktorú je potrebné dodať s vašimi aplikáciami. Je to sada balíkov NuGet, takže si môžete vybrať, čo potrebujete, a tak minimalizovať všetky náklady na kód a knižnicu. Ak vytvárate moderné aplikácie pre Windows .NET, stojí za to si ich pozrieť, pretože obsahuje mnoho dôležitých ovládacích prvkov XAML, ktoré vám môžu pomôcť dodať dobre vyzerajúcu a užívateľsky príjemnú aplikáciu. Medzi ďalšie užitočné nástroje patrí sada pomocníkov na zlepšenie výkonu aplikácií, sada analyzátorov pre bežné formáty údajov vrátane Markdown a základný kód potrebný na podporu oznamovacieho rámca systému Windows 10.

Pridanie MVVM do sady nástrojov

Jedným z najnovších prírastkov do sady nástrojov je nová knižnica pre vytváranie aplikácií pomocou návrhového vzoru MVVM. Model-view-viewmodel je jadrom nadchádzajúceho rámca MAUI a ak má byť .NET úspešný, potrebuje dobrú a rýchlu implementáciu. Výsledkom je relatívne ľahká sada nástrojov MVVM, ako aj sada vzorového kódu.

V novej implementácii balíka MVVM Windows Community Toolkit sa môže veľa páčiť. Snáď najužitočnejšie je, že ide o rádové zvýšenie výkonu oproti porovnateľným nástrojom .NET MVVM, ako uviedol jeho spoluautor Michael Hawker, vedúci projektu Windows Community Toolkit v spoločnosti Microsoft, minulý týždeň na prezentácii na UnoConf. Toto zlepšenie bude pre aplikácie MAUI rozhodujúce, najmä pri zacielení na mobilné platformy, ako sú Android a iOS. Možno nemá všetky funkcie alternatív ťažkej váhy, ale pre väčšinu účelov je to ideálna voľba a s niektorými alternatívnymi nástrojmi .NET MVVM, ktoré sa už nevyvíjajú, stojí za to si ich pozrieť.

Urobte svoje UI založené na udalostiach

Návrhový vzor MVVM je určený na podporu používateľských rozhraní riadených udalosťami. Jeho jadrom je model, ktorý slúži ako rozhranie medzi vašou aplikáciou a ľubovoľnou back-endovou obchodnou logikou alebo údajmi. Vaše používateľské rozhranie je implementované zobrazením, podobne ako známy vzor MVC (model view controller). MVVM sa líši od ostatných podobných návrhových vzorov vo svojom modeli zobrazenia, ktorý spája dátové väzby v zobrazení s údajmi v modeli a poskytuje spôsob reprezentácie stavu jedného k druhému.

Váš kód modelu prehliadača spracováva vstupy a výstupy do a z pohľadu pomocou štandardných dátových väzieb XAML na ovládacie prvky. Cieľom je udržať kód v zobrazení na minimálnej úrovni, aby sa návrhári mohli sústrediť na vytváranie používateľských skúseností, zatiaľ čo vývojári pracujú na back-endovom kóde a na stave zobrazenia riadenom udalosťami daného modelu. Vynútením oddelenia medzi pohľadom a modelom môžete vývoj zamerať na logiku aplikácie pomocou prototypových ovládacích prvkov pred prepnutím do konečného návrhu bez ovplyvnenia kódu, ktorý bol napísaný počas vývoja aplikácie.

Začnite s Microsoft.MVVM.Toolkit

Kód pre novú sadu nástrojov MVVM je veľmi nový, ale je dostatočne vyspelý na to, aby podporoval vývoj prototypových aplikácií. Asi najväčším problémom je, že zatiaľ neexistuje žiadna dokumentácia pre Microsoft.Toolkit.MVVM na webe Microsoft Docs, aj keď malým hľadaním nájdete počiatočnú tranžu dokumentácie na GitHub.

Rovnako ako zvyšok balíka Windows Community Toolkit sa aj MVVM Toolkit inštaluje z úložiska Nuget. Pretože to bolo inšpirované dnes už zastaranou MVVMLight, prechod zo staršej sady nástrojov na Windows Community Toolkit by nemal byť príliš náročný.

Začnite stiahnutím ukážkovej verzie súboru MVVM Toolkit z Nugetu a jeho inštaláciou do svojej aplikácie v Visual Studio. To prinesie všetky závislosti a nastaví rámec, ktorý môžete použiť na začatie vytvárania aplikácie MVVM.

Pod kapotou: systém upozornení v akcii

MVVM je v jadre architektúra založená na zasielaní správ, ktorá monitoruje udalosti z modelu aj zo zobrazenia a odosiela medzi nimi asynchrónne oznámenia pomocou modelu zobrazenia. Budete sa musieť oboznámiť so základnými základnými triedami, ktoré určujú, ako model zobrazenia reaguje na zmenené vlastnosti v základnom modeli. Keď pozorovateľný objekt v modeli zmení stav, model pohľadu vyvolá príslušné oznámenie a použije ho na doručenie správy o udalosti cez väzbu na ovládací prvok používateľského rozhrania v zobrazení.

Kľúčom k fungovaniu súboru MVVM Toolkit a dôvodom jeho významného zvýšenia výkonu oproti iným implementáciám .NET MVVM je jeho trieda Messenger. Takto prepojíte rôzne prvky aplikácie MVVM, implementujete a registrujete obslužné programy správ. Môžete si to predstaviť ako zjednodušený systém publikovania a prihlasovania, ktorý ponúka iba služby modelu a zobrazenia. Príjemcovia a odosielatelia je potrebné zaregistrovať a zrušiť registráciu, ak už nie sú potrebné. Napríklad ak na napájanie chatovacej aplikácie používate MVVM Toolkit a konkrétny používateľ sa odhlási, musíte ho z aplikácie odhlásiť, aby ste predišli úniku pamäte.

Projektovanie pre MVVM

Mať v strede pohľadu na model model na publikovanie a prihlásenie na odber má veľký zmysel. Umožňuje vám zaistiť, aby všetky vaše väzby ovládacích prvkov boli spojené s koncovými bodmi správy, čo vám dáva možnosť programovo vytvoriť mapovania potrebné na prepojenie zobrazenia a modelu spôsobom, ktorý by sa mal škálovať medzi viacerými zobrazeniami a viacerými modelmi.

Oddelenie zobrazenia a modelu týmto spôsobom zjednodušuje celkovú štruktúru vašej aplikácie, najmä keď sa domnievate, že prechádzate medzi deklaratívnym programovacím modelom v zobrazení XAML a objektovo orientovaným prístupom vo vašom modeli. Použitie viewmodelu založeného na zasielaní správ ako prekladovej vrstvy medzi týmito dvoma veľmi odlišnými spôsobmi programovania znižuje riziko a udržiava množstvo potrebného kódu na pozadí vo vašich pohľadoch na minimum. Predtým, ako napíšete akýkoľvek kód, skontrolujte, či návrh vašej aplikácie obsahuje tieto mapovania a väzby podrobne spolu so správami, ktoré prenášajú, pretože ide o vaše interné rozhrania API pre celú vašu integráciu medzi klientom a klientom.

Práca komunity .NET na balíku Windows Community Toolkit je dôležitá pre budúcnosť platformy. S prebiehajúcimi významnými zmenami (prechod na .NET 5, oddelenie SDK a Windows v Project Reunion a model multiplatformného používateľského rozhrania v MAUI) je čoraz dôležitejšie mať sadu referenčných ovládacích prvkov a funkcií. Môžete si vybrať a zvoliť prvky, ktoré chcete vylepšiť na svojej vlastnej ceste .NET. Sada MVVM Toolkit môže byť jednou z najnovších častí súpravy, ale pravdepodobne sa stane jednou z najdôležitejších.

$config[zx-auto] not found$config[zx-overlay] not found