Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Hva er de viktigste forskjellene mellom å bruke MVVMCROSS og XAMARIN.FORMS


Hva er de viktigste forskjellene mellom å bruke MVVMCROSS og XAMARIN.FORMS


MVVMCROSS og XAMARIN.FORMS er to distinkte teknologier som brukes i utvikling av mobilapper på tvers av plattformer, som hver betjener forskjellige formål og tilbyr unike fordeler.

Oversikt over Xamarin.Forms

Xamarin.Forms er et rammeverk utviklet av Microsoft som lar utviklere lage tverrplattform-applikasjoner ved hjelp av en delt C# -kodebase og XAML for brukergrensesnittet. Det gjør det mulig for utviklere å skrive en gang og kjøre på flere plattformer, inkludert iOS, Android og UWP. Xamarin.Forms er ideell for prosjekter der en jevn brukergrensesnitt på tvers av plattformer er ønsket, og det forenkler utviklingsprosessen ved å tilby et enhetlig API for UI -komponenter. Imidlertid kommer denne konsistensen på bekostning av fleksibilitet, ettersom brukergrensesnittet er begrenset til en delmengde av vanlige elementer fra hver plattform, noe som kan føre til begrensninger i å oppnå innfødt utseende og følelse eller avansert UI -tilpasning [4] [7].

Oversikt over MVVMCROSS

MVVMCROSS er et tverrplattform MVVM (Model-View-ViewModel) rammeverk som støtter Xamarin.ios, Xamarin.android, Xamarin.Forms og andre plattformer. Den fokuserer på å skille forretningslogikken fra brukergrensesnittet, slik at utviklere kan dele en betydelig del av koden på tvers av forskjellige plattformer. MVVMCROSS gir funksjoner som databinding, navigasjon, inversjon av kontroll og avhengighetsinjeksjon, som letter utviklingen av komplekse applikasjoner. I motsetning til Xamarin.Forms, håndhever ikke MVVMCROSS ikke et spesifikt brukergrensesnittsramme; I stedet lar det utviklere velge hvordan de ønsker å implementere brukergrensesnittet for hver plattform, og tilbyr mer fleksibilitet i å oppnå innfødte UI -opplevelser [7] [10].

Nøkkelforskjeller

1. UI -implementering:
- Xamarin.Forms: Bruker et delt UI -lag på tvers av plattformer, noe som forenkler utvikling, men kan begrense tilpasning og innfødt utseende.
- MVVMCROSS: Tillater innfødt UI-implementering på hver plattform eller delt brukergrensesnitt med Xamarin.Forms, og gir mer fleksibilitet i å oppnå plattformspesifikke UI-design.

2. Kodedeling:
- Begge rammene muliggjør kodedeling, men MVVMCROSS fokuserer på å dele forretningslogikken (ViewModels) mens de tillater forskjellige UI -implementeringer. Xamarin.Forms deler både brukergrensesnittet og forretningslogikken.

3. Navigasjon og databinding:
- MVVMCROSS gir et robust navigasjonssystem og databindingsfunksjoner som fungerer på tvers av forskjellige UI -rammer, inkludert Xamarin.Forms. Xamarin.Forms er avhengig av sine egne navigasjons- og databindingsmekanismer.

4. Prosjektkompleksitet:
- For komplekse prosjekter som krever avansert UI-tilpasning eller plattformspesifikke funksjoner, kan MVVMCROSS være mer egnet på grunn av fleksibiliteten. For enklere prosjekter der en konsistent brukergrensesnitt er tilstrekkelig, kan xamarin. Former være mer enkel å implementere.

5. Utviklingsmetode:
- Xamarin.Forms er ofte foretrukket av utviklere som er kjent med XAML og .NET, ettersom det gir en enhetlig utviklingsopplevelse. MVVMCROSS er gunstig for prosjekter der forretningslogikken må kobles fra UI, noe som gir mer kontroll over UI -implementeringen på hver plattform.

Oppsummert, mens begge rammer støtter utvikling av tverrplattform, fokuserer Xamarin.Forms på å dele UI-laget på tvers av plattformer, mens MVVMCROSS legger vekt på å dele forretningslogikken og gir mulighet for mer fleksible UI-implementeringsvalg. Valget mellom dem avhenger av prosjektets krav angående UI -tilpasning, kompleksitet og deling av kodedeling.

Sitasjoner:
[1] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx
[2] https://github.com/rogerwcpt/xamarin-mvvm-rammer
[3] https://www.mvvmcross.com/documentation/tutorials/tipcalc/a-xamarin-forms-versjon
[4] https://stackoverflow.com/questions/38450264/xamarin-forms-vs-xamarin-mvmcross
[5] https://leaware.com/creating-cross-platform-xamarin-applications-sing-the-mvvmcross-ramwork/
[6] https://canbilgin.wordpress.com/tag/mvvmcross/
[7] https://www.mvvmcross.com/documentation/getting-started/getting-started
[8] https://www.reddit.com/r/csharp/comments/a9mph1/mvc_or_mvvm_for_xamarin/
[9] https://canbilgin.wordpress.com/2017/03/26/xamarin-forms-application-with-mvmcross/
[10] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/