Programmering

Bygg MVVM-applikasjoner med Windows Community Toolkit

Microsoft har alltid vært flinke til å jobbe med utviklere, helt fra de tidligste dagene som språkleverandør. Programmet har utviklet seg gjennom årene, fra en top-down, Redmond-drevet tilnærming som nådde topp med de vanlige MSDN-DVDene med dokumentasjon, til dagens fellesskapsbaserte program pakket rundt Microsoft Docs, Microsoft Learn, et globalt team av Azure Developer Advocates, og et stadig voksende sett med verktøy og rammer utviklet på GitHub.

Windows Community Toolkit: et .NET startpakke

Å jobbe med samfunnet har gitt interessante resultater med mer nøyaktig og rettidig dokumentasjon ved bruk av GitHub for å administrere innhold og en serie fellesskapsledede open source-prosjekter. Et av de viktigste prosjektene er Windows Community Toolkit, en rekke funksjoner, kontroller og tjenester for .NET- og UWP-applikasjoner. Det er et prosjekt som bare kommer til å bli viktigere med overgangen fra eldre .NET Framework til. NET Core-basert. NET 5 og utrulling av både Project Reunion og det plattformformede Multiplatform App UI (MAUI) -rammeverket.

Windows Community Toolkit er ikke en monolitisk enhet som må sendes med applikasjonene dine. Det er et sett med NuGet-pakker, slik at du kan velge og velge det du trenger, og holde koden og biblioteket overhead til et minimum. Hvis du bygger moderne Windows .NET-applikasjoner, er det vel verdt å se, da det inneholder mange viktige XAML-kontroller som kan bidra til å levere et pent og brukervennlig program. Andre nyttige verktøy inkluderer et sett med hjelpere for å forbedre applikasjonsytelsen, et sett med parsere for vanlige dataformater, inkludert Markdown, og kjernekoden som trengs for å støtte Windows 10s varslingsrammeverk.

Legge til MVVM i verktøykassen

Et av de nyere tilleggene til verktøysettet er et nytt bibliotek for å bygge applikasjoner ved hjelp av MVVM-designmønsteret. Model-view-viewmodell er kjernen i det kommende MAUI-rammeverket, og .NET trenger en god, rask implementering hvis den skal lykkes. Resultatet er et relativt lett sett med MVVM-verktøy, samt et sett med prøvekode.

Det er mye å like i den nye implementeringen av MVVM Windows Community Toolkit. Kanskje det mest nyttige er at det er en forbedring av ytelsesorden i forhold til sammenlignbare. NET MVVM-verktøy, som medforfatter Michael Hawker, lederen for Windows Community Toolkit-prosjektet hos Microsoft, påpekte i en presentasjon på UnoConf forrige uke. Denne forbedringen vil være avgjørende for MAUI-applikasjoner, spesielt når du målretter mot mobile plattformer som Android og iOS. Det har kanskje ikke alle funksjonene i tunge alternativer, men for de fleste formål er det et ideelt valg, og med noen av de alternative .NET MVVM-verktøyene som ikke lenger utvikles, er det verdt å se.

Gjør brukergrensesnittet ditt hendelsesdrevet

MVVM-designmønsteret er ment å støtte hendelsesdrevne brukergrensesnitt. I hjertet er en modell som fungerer som grensesnittet mellom applikasjonen din og enhver backend-forretningslogikk eller data. Brukergrensesnittet ditt er implementert av visningen, omtrent som det velkjente MVC-mønsteret. MVVM skiller seg fra andre lignende designmønstre i sitt visningsmodell, som knytter databindinger i visningen til dataene i modellen, og gir en måte å representere tilstanden til den ene til den andre.

Visningsmodellkoden din håndterer prosesseringsinnganger og -utganger til og fra visningen, ved hjelp av standard XAML-databindinger til kontroller. Målet her er å holde koden i visningen til et minimum slik at designere kan konsentrere seg om å produsere brukeropplevelser mens utviklere jobber med back-end-koden og på visningsmodellens hendelsesdrevne prosessering av visningstilstand. Ved å håndheve et skille mellom visningen og modellen kan du fokusere utviklingen på applikasjonslogikken ved å bruke prototypekontroller før du bytter inn et endelig design uten å påvirke koden som er skrevet under applikasjonsutviklingen.

Start med Microsoft.MVVM.Toolkit

Koden for den nye MVVM-verktøykassen er veldig ny, men den er moden nok til å støtte utvikling av prototype-applikasjoner. Kanskje det største problemet er at det ikke er noen dokumentasjon for Microsoft.Toolkit.MVVM på Microsoft Docs-nettstedet ennå, men litt søking vil finne den første mengden dokumentasjon på GitHub.

Som resten av Windows Community Toolkit, installeres MVVM Toolkit fra et Nuget-depot. Ettersom det ble inspirert av det nå utdaterte MVVMLight, bør det ikke være for vanskelig å overføre fra den eldre verktøysettet til Windows Community Toolkit.

Start med å laste ned forhåndsversjonen av MVVM Toolkit fra Nuget og installere den i applikasjonen din i Visual Studio. Dette vil føre til eventuelle avhengigheter og sette opp et rammeverk som du kan bruke til å begynne å bygge et MVVM-program.

Under panseret: et varslingssystem i aksjon

I hjertet er MVVM en meldingsbasert arkitektur som overvåker hendelser fra både modellen og visningen, og sender asynkrone varsler mellom de to ved hjelp av visningsmodellen. Du må gjøre deg kjent med kjernebaseklassene som styrer hvordan visningsmodellen reagerer på endrede egenskaper i den underliggende modellen. Når et observerbart objekt i modellen endrer tilstand, reiser visningsmodellen et passende varsel og bruker det til å levere en hendelsesmelding over en binding til en UI-kontroll i visningen.

Nøkkelen til drift av MVVM Toolkit, og årsaken til dens betydelige ytelsesforbedringer i forhold til andre .NET MVVM-implementeringer, er Messenger-klassen. Slik kobler du de forskjellige elementene i en MVVM-applikasjon, implementerer og registrerer meldingsbehandlere. Du kan tenke på det som et forenklet publiserings- og abonnementsystem, og tilbyr bare tjenester til modellen og utsikten. Mottakere og avsendere må registreres og avregistreres hvis det ikke lenger er behov for det. Hvis du for eksempel bruker MVVM Toolkit til å drive en chat-app, og en bestemt bruker logger av, må du avregistrere dem fra applikasjonen for å forhindre minnelekkasjer.

Design for MVVM

Å ha en publiserings- og abonnementsmodell i hjertet av modellvisningen gir mye mening. Det lar deg sikre at alle kontrollbindinger er knyttet til endepunkter for meldinger, noe som gir deg en måte å programmere programmene som er nødvendige for å koble visning og modell på en måte som skal skaleres mellom flere visninger og flere modeller.

Å skille visning og modell på denne måten forenkler den generelle strukturen i applikasjonen din, spesielt når du vurderer at du går mellom en deklarativ programmeringsmodell i XAML-visningen og en objektorientert tilnærming i modellen din. Å bruke et meldingsbasert visningsmodell som et oversettingslag mellom disse to svært forskjellige måtene å programmere på, reduserer risikoen og holder den nødvendige mengden kode bak i visningene dine til et minimum. Før du skriver noen kode, må du sørge for at applikasjonsdesignet inneholder disse tilordningene og bindingene i detalj, sammen med meldingene de bærer, da dette er dine interne API-er for all integrasjonen din mellom frontend og backend.

.NET-fellesskapets arbeid med Windows Community Toolkit er viktig for fremtidens plattform. Med betydelige endringer på gang (overgangen til .NET 5, separasjonen av SDK og Windows i Project Reunion, og UI-modellen på tvers i MAUI) som har et sett med referansekontroller og funksjoner blir stadig viktigere. Du kan velge og velge elementene du vil få et løft på din egen. NET-reise. MVVM Toolkit kan være en av de nyeste delene av settet, men det blir sannsynligvis en av de viktigste.

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