MVVMcross je vsestranski in razširljiv MVVM okvir, zasnovan za razvoj med platformami, zlasti znotraj .NET ekosistema. Podpira široko paleto platform, vključno z xamarin.ios, xamarin.android, xamarin.forms, Universal Windows platform (UWP) in okvirom za predstavitev Windows (WPF) [1] [2] [4]. Ena ključnih značilnosti MVVMcross je njegova sposobnost integracije z drugimi okviri in knjižnicami, ki izboljšajo svojo uporabnost pri zapletenem razvoju aplikacij.
Integracija z drugimi okviri
1. CSLA.NET Integracija: MVVMcross se lahko uporablja skupaj s CSLA.NET, okvirom poslovnega predmeta. Medtem ko se CSLA.net osredotoča na poslovno logiko in modeliranje podatkov, MVVMcross obravnava uporabniški vmesnik in logiko na ravni aplikacije. Razvijalci lahko izkoristijo okvir poslovnega objekta CSLA.NET, tako da podedujejo iz CSLA "ViewModelbase" in izvajanju zahtev MVVMcrossa. Ta integracija omogoča skupno rabo kode na platformah, hkrati pa ohranja jasno ločitev pomislekov [5].
2. Integracija ReactiveUI: Čeprav sta MVVMcross in Reactiveui oba okvira MVVM, služita različnim namenom. MVVMcross je bolj osredotočen na domače mobilne aplikacije in skupno rabo kod, medtem ko Reactiveui poudarja reaktivno programiranje z uporabo reaktivnih podaljškov (RX). Medtem ko lahko sobivajo, se običajno uporabljajo za različne vidike razvoja aplikacij. MVVMcross ponuja izčrpen nabor funkcij za razvoj uporabniškega vmesnika, medtem ko je Reactiveui idealen za aplikacije, ki zahtevajo napredne asinhrone operacije [7].
3. Xamarin.Forms in drugi okviri uporabniškega vmesnika: MVVMcross podpira integracijo s xamarin.forms, kar razvijalcem omogoča, da zgradijo aplikacije med platformami s skupno poslovno logiko. Dobro deluje tudi z drugimi okviri uporabniškega vmesnika, kot sta Maui in WPF, kar zagotavlja prilagodljivost pri izbiri plasti uporabniškega vmesnika [3] [7].
4. Okvir vtičnikov: MVVMcross vključuje okvir vtičnikov, ki razvijalcem omogoča razširitev svoje funkcionalnosti z dodajanjem vtičnikov drugih proizvajalcev za funkcije, kot so lokacija GPS, lokalizacija in vezave. Ta razširljivost omogoča razvijalcem, da prilagodijo okvir glede na potrebe projekta [1] [2].
Ključne funkcije, ki olajšajo integracijo
- Inverzija nadzora (IK) in vbrizgavanje odvisnosti: MVVMcross zagotavlja vsebnik MOK, ki olajša vbrizgavanje odvisnosti, kar olajša integracijo z drugimi okviri z upravljanjem odvisnosti in storitev v aplikaciji [1] [4].
- Prilagodljiv vezivni motor: Okvir omogoča razvijalcem, da ustvarijo vezi po meri za svoje poglede, ki so lahko koristne pri integraciji z drugimi komponentami uporabniškega vmesnika ali okviri, ki zahtevajo posebne podatke o vezavi podatkov [1] [2].
- ViewModel to ViewModel Navigacija: Ta funkcija pomaga pri upravljanju navigacijske logike, ki jo je mogoče integrirati z navigacijskimi vzorci drugih okvirov, da se zagotovi dosledna uporabniška izkušnja na različnih platformah [1] [2].
Če povzamemo, je MVVMcross zasnovan tako, da je zelo integriran z drugimi okviri in knjižnicami, kar razvijalcem omogoča, da izkoristijo svoje prednosti v arhitekturi MVVM, hkrati pa vključujejo dodatne funkcionalnosti iz drugih orodij. Njegova razširljivost in podpora za različne platforme omogočata vsestransko izbiro za razvoj aplikacij med platformami.
Navedbe:[1] https://github.com/mvvmcross/mvvmcross
[2] https://dotnet.libhunt.com/mvvmcross-alternative
[3] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx
[4] https://www.mvvmcross.com/documentation/getting-started/getting-start
[5] https://stackoverflow.com/Questions/17373587/how-well-well-mvvmcross-and-csla-tne-twork-work-together-in-a-Multi-platform-Strategy
[6] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[7] https://www.reactiveui.net/vs/mvvmcross
[8] https://www.mvvmcross.com
[9] https://github.com/rogerwcpt/xamarin-mvvvm-frameworks