Programmering

Byg MVVM-applikationer med Windows Community Toolkit

Microsoft har altid været god til at arbejde med udviklere lige fra de tidligste dage som sprogleverandør. Dets program har udviklet sig gennem årene, fra en top-down, Redmond-drevet tilgang, der toppede med de almindelige MSDN-DVD'er af dokumentation, til nutidens samfundsbaserede program, der er pakket omkring Microsoft Docs, Microsoft Learn, et globalt team af Azure Developer Advocates, og et stadigt voksende sæt værktøjer og rammer udviklet på GitHub.

Windows Community Toolkit: et .NET-startsæt

Arbejdet med samfundet har produceret interessante resultater med mere nøjagtig og rettidig dokumentation ved hjælp af GitHub til at styre indhold og en række community-ledede open source-projekter. Et af de mere vigtige projekter er Windows Community Toolkit, en række funktioner, kontroller og tjenester til .NET- og UWP-applikationer. Det er et projekt, der kun bliver vigtigere med overgangen fra den ældre .NET Framework til .NET Core-baserede. NET 5 og udrulning af både Project Reunion og den platformoverskridende Multiplatform App UI (MAUI) ramme.

Windows Community Toolkit er ikke en monolitisk enhed, der skal sendes med dine applikationer. Det er et sæt NuGet-pakker, så du kan vælge, hvad du har brug for, og holde enhver kode og bibliotek overhead på et minimum. Hvis du bygger moderne Windows. NET-applikationer, er det et besøg værd, da det indeholder mange vigtige XAML-kontroller, der kan hjælpe med at levere en flot og brugervenlig applikation. Andre nyttige værktøjer inkluderer et sæt hjælpere til at forbedre applikationsydelsen, et sæt parsere til almindelige dataformater inklusive Markdown og kernekoden, der er nødvendig for at understøtte Windows 10's meddelelsesramme.

Tilføjelse af MVVM til værktøjssættet

En af de nyere tilføjelser til værktøjssættet er et nyt bibliotek til opbygning af applikationer ved hjælp af MVVM-designmønsteret. Model-view-viewmodel er kernen i den kommende MAUI-ramme, og .NET har brug for en god, hurtig implementering, hvis det skal lykkes. Resultatet er et relativt let sæt MVVM-værktøjer samt et sæt prøvekoder.

Der er meget at lide i den nye implementering af MVVM Windows Community Toolkit. Det mest nyttige er måske, at det er en forbedring af størrelsesordenen præstationsforbedring i forhold til sammenlignelige. Denne forbedring vil være kritisk for MAUI-applikationer, især når man målretter mod mobile platforme som Android og iOS. Det har muligvis ikke alle funktionerne i tungvægtsalternativer, men til de fleste formål er det et ideelt valg, og med nogle af de alternative .NET MVVM-værktøjer, der ikke længere udvikles, er det værd at se på det.

Gør din brugergrænseflade begivenhedsdrevet

MVVM-designmønsteret er beregnet til at understøtte begivenhedsdrevne brugergrænseflader. Kernen er en model, der fungerer som grænsefladen mellem din applikation og enhver back-end-forretningslogik eller -data. Din brugergrænseflade implementeres af visningen, ligesom det velkendte MVC (model view controller) mønster. MVVM adskiller sig fra andre lignende designmønstre i sit visningsmodel, som forbinder databindinger i visningen til dataene i modellen, hvilket giver en måde at repræsentere den ene tilstand til den anden på.

Din viewmodel-kode håndterer procesindgange og -udgange til og fra visningen ved hjælp af standard XAML-databindinger til kontrolelementer. Målet her er at holde koden i visningen til et minimum, så designere kan koncentrere sig om at producere brugeroplevelser, mens udviklere arbejder på backend-koden og på visningsmodelens hændelsesdrevne behandling af visningstilstand. Ved at håndhæve en adskillelse mellem visningen og modellen kan du fokusere udviklingen på applikationslogikken ved hjælp af prototype-kontroller, inden du skifter et endeligt design uden at påvirke den kode, der er skrevet under applikationsudviklingen.

Start med Microsoft.MVVM.Toolkit

Koden til det nye MVVM-værktøjssæt er meget nyt, men det er modent nok til at understøtte udvikling af prototype-applikationer. Måske er det største problem, at der endnu ikke er nogen dokumentation for Microsoft.Toolkit.MVVM på Microsoft Docs-webstedet, selvom lidt søgning finder den første tranche af dokumentation på GitHub.

Ligesom resten af ​​Windows Community Toolkit installeres MVVM Toolkit fra et Nuget-lager. Da det blev inspireret af det nu forældede MVVMLight, skulle det ikke være for svært at skifte fra det ældre værktøjssæt til Windows Community Toolkit.

Start med at downloade preview-frigivelsen af ​​MVVM Toolkit fra Nuget og installere den i din applikation i Visual Studio. Dette vil medføre eventuelle afhængigheder og oprette en ramme, som du kan bruge til at begynde at opbygge en MVVM-applikation.

Under emhætten: et notifikationssystem i aktion

Kort sagt er MVVM en messaging-baseret arkitektur, der overvåger hændelser fra både modellen og visningen og sender asynkrone meddelelser mellem de to ved hjælp af visningsmodellen. Du bliver nødt til at gøre dig bekendt med de grundlæggende baseklasser, der styrer, hvordan visningsmodellen reagerer på ændrede egenskaber i den underliggende model. Når et observerbart objekt i modellen skifter tilstand, rejser visningsmodellen en passende meddelelse og bruger den til at levere en hændelsesmeddelelse på tværs af en binding til en UI-kontrol i visningen.

Nøglen til betjening af MVVM Toolkit og årsagen til dens betydelige præstationsforbedringer i forhold til andre .NET MVVM-implementeringer er dens Messenger-klasse. Sådan forbinder du de forskellige elementer i en MVVM-applikation, implementerer og registrerer beskedhåndterere. Du kan tænke på det som et forenklet publicerings- og abonnementsystem, der kun tilbyder tjenester til modellen og udsigten. Modtagere og afsendere skal registreres og afregistreres, hvis de ikke længere er nødvendige. Hvis du f.eks. Bruger MVVM Toolkit til at drive en chat-app, og en bestemt bruger logger af, skal du fjerne dem fra applikationen for at forhindre hukommelseslækage.

Design til MVVM

At have en udgivelses- og abonnementsmodel i hjertet af modelvisningen giver meget mening. Det giver dig mulighed for at sikre, at alle dine kontrolbindinger er knyttet til meddelelsesendepunkter, hvilket giver dig en måde at programmatisk udbygge de kortlægninger, der er nødvendige for at linke visning og model på en måde, der skal skaleres mellem flere visninger og flere modeller.

At adskille visning og model på denne måde forenkler den samlede struktur i din applikation, især når du overvejer at du går mellem en deklarativ programmeringsmodel i din XAML-visning og en objektorienteret tilgang i din model. Brug af en messaging-baseret visningsmodel som et oversættelseslag mellem disse to meget forskellige måder at programmere reducerer risikoen og holder den nødvendige mængde kode bag i dine synspunkter til et minimum. Inden du skriver en kode, skal du sørge for, at dit applikationsdesign inkluderer disse tilknytninger og bindinger i detaljer sammen med de meddelelser, de bærer, da disse er dine interne API'er til al din integration mellem front-end og back-end.

.NET-samfundets arbejde med Windows Community Toolkit er vigtigt for platformens fremtid. Med betydelige ændringer i gang (overgangen til .NET 5, adskillelsen af ​​SDK og Windows i Project Reunion og den tværgående platform UI-model i MAUI) med et sæt referencekontroller og funktioner bliver stadig vigtigere. Du kan vælge og vælge de elementer, du vil have et boost på din egen .NET-rejse. MVVM Toolkit er muligvis en af ​​de nyeste dele i sættet, men det bliver sandsynligvis en af ​​de vigtigste.