MVVMCROSS er en alsidig og udvidelig MVVM-ramme designet til udvikling af tværplatform, især inden for .NET-økosystemet. Det understøtter en lang række platforme, herunder Xamarin.ios, Xamarin.Android, Xamarin.Forms, Universal Windows Platform (UWP) og Windows Presentation Framework (WPF) [1] [2] [4]. En af nøglefunktionerne i MVVMCROSS er dens evne til at integrere med andre rammer og biblioteker, hvilket forbedrer dens anvendelighed i kompleks applikationsudvikling.
Integration med andre rammer
1. CSLA.NET Integration: MVVMCROSS kan bruges sammen med CSLA.NET, en forretningsobjektramme. Mens CSLA.NET fokuserer på forretningslogik og datamodellering, håndterer MVVMCROSS UI- og applikationsniveau-logikken. Udviklere kan udnytte CSLA.NETs forretningsobjektramme ved at arve fra CSLAs 'ViewModelBase' og implementere MVVMCross's krav. Denne integration giver mulighed for kodedeling på tværs af platforme, mens den opretholder en klar adskillelse af bekymringer [5].
2. reaktiv integration: Selvom MVVMCROSS og reaktiveui begge er MVVM -rammer, tjener de forskellige formål. MVVMCROSS er mere fokuseret på indfødte mobile applikationer og kodedeling, mens Reactiveui understreger reaktiv programmering ved hjælp af reaktive udvidelser (RX). Mens de kan sameksistere, bruges de typisk til forskellige aspekter af applikationsudvikling. MVVMCROSS giver et omfattende sæt funktioner til UI -udvikling, hvorimod Reactiveui er ideel til applikationer, der kræver avancerede asynkrone operationer [7].
3. Xamarin.Forms og andre UI-rammer: MVVMCross understøtter integration med Xamarin.Forms, hvilket giver udviklere mulighed for at opbygge applikationer på tværs af platform med delt forretningslogik. Det fungerer også godt med andre UI -rammer som Maui og WPF, hvilket giver fleksibilitet i valg af UI -laget [3] [7].
4. Plugin Framework: MVVMCROSS inkluderer en plugin-ramme, der gør det muligt for udviklere at udvide sin funktionalitet ved at tilføje tredjeparts plugins til funktioner såsom GPS-placering, lokalisering og bindingsudvidelser. Denne udvidelighed giver udviklere mulighed for at tilpasse rammen i henhold til deres projektbehov [1] [2].
Nøglefunktioner, der letter integration
- Inversion of Control (IOC) og afhængighedsinjektion: MVVMCROSS giver en IOC -container, der letter afhængighedsinjektion, hvilket gør det lettere at integrere med andre rammer ved at styre afhængigheder og tjenester på tværs af applikationen [1] [4].
- Tilpaselig bindingsmotor: Rammen giver udviklere mulighed for at oprette brugerdefinerede bindinger til deres synspunkter, hvilket kan være nyttige, når de integreres med andre UI -komponenter eller rammer, der kræver specifikke databindingsmekanismer [1] [2].
- ViewModel til ViewModel Navigation: Denne funktion hjælper med at administrere navigationslogik, som kan integreres med andre rammernes navigationsmønstre for at sikre en konsekvent brugeroplevelse på tværs af forskellige platforme [1] [2].
Sammenfattende er MVVMCROSS designet til at være meget integrerbar med andre rammer og biblioteker, hvilket giver udviklere mulighed for at udnytte sine styrker inden for MVVM -arkitektur, samtidig med at der er yderligere funktionaliteter fra andre værktøjer. Dens udvidelighed og support til forskellige platforme gør det til et alsidigt valg til udvikling af tværplatform.
Citater:[1] https://github.com/mvvmcross/mvvmcross
[2] https://dotnet.libhunt.com/mvvmcross-alternatives
[3] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx
[4] https://www.mvvmcross.com/documentation/getting-started/getting-started
)
[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