MVVMCROSS og XAMARIN.FORMS er to forskellige teknologier, der bruges i cross-platform mobil appudvikling, der hver især tjener forskellige formål og tilbyder unikke fordele.
Oversigt over Xamarin.Forms
Xamarin.Forms er en ramme udviklet af Microsoft, der giver udviklere mulighed for at oprette tværplatformapplikationer ved hjælp af en delt C# codebase og XAML til brugergrænsefladen. Det gør det muligt for udviklere at skrive en gang og køre på flere platforme, herunder iOS, Android og UWP. Xamarin.Forms er ideel til projekter, hvor der ønskes en konsistent brugergrænseflade på tværs af platforme, og det forenkler udviklingsprocessen ved at tilvejebringe et samlet API til UI -komponenter. Imidlertid kommer denne konsistens på bekostning af fleksibilitet, da brugergrænsefladen er begrænset til en undergruppe af fælles elementer fra hver platform, hvilket kan føre til begrænsninger i opnåelse af indfødte look og følelser eller avanceret UI -tilpasning [4] [7].
Oversigt over MVVMCross
MVVMCROSS er en cross-platform MVVM (model-view-viewModel) ramme, der understøtter xamarin.ios, xamarin.android, xamarin.forms og andre platforme. Det fokuserer på at adskille forretningslogikken fra UI, så udviklere kan dele en betydelig del af deres kode på tværs af forskellige platforme. MVVMCROSS leverer funktioner såsom databinding, navigation, inversion af kontrol og afhængighedsinjektion, som letter udviklingen af komplekse applikationer. I modsætning til Xamarin.Forms håndhæver MVVMCROSS ikke en specifik UI -ramme; I stedet giver det udviklere mulighed for at vælge, hvordan de ønsker at implementere brugergrænsefladen for hver platform, hvilket tilbyder mere fleksibilitet til at opnå indfødte UI -oplevelser [7] [10].
Nøgleforskelle
1. UI -implementering:
- Xamarin.Forms: bruger et delt UI -lag på tværs af platforme, der forenkler udviklingen, men kan begrænse tilpasning og indfødte udseende.
- MVVMCROSS: Tillader indbygget UI-implementering på hver platform eller delt UI med Xamarin.Forms, hvilket giver mere fleksibilitet til at opnå platformspecifikke UI-design.
2. kodedeling:
- Begge rammer muliggør kodedeling, men MVVMCross fokuserer på at dele forretningslogikken (ViewModels), mens de tillader forskellige UI -implementeringer. Xamarin.Forms deler både UI og forretningslogik.
3. Navigation og databinding:
- MVVMCROSS leverer et robust navigationssystem og databindingsfunktioner, der fungerer på tværs af forskellige UI -rammer, inklusive Xamarin.Forms. Xamarin.Forms er afhængig af sine egne navigations- og databindingsmekanismer.
4. Projektkompleksitet:
- For komplekse projekter, der kræver avanceret UI-tilpasning eller platformspecifikke funktioner, er MVVMCross muligvis mere egnet på grund af dens fleksibilitet. For enklere projekter, hvor en konsekvent brugergrænseflade er tilstrækkelig, kan Xamarin.Forms være mere ligetil at implementere.
5. Udviklingsmetode:
- Xamarin.Forms foretrækkes ofte af udviklere, der er bekendt med XAML og .NET, da det giver en samlet udviklingsoplevelse. MVVMCROSS er fordelagtig for projekter, hvor forretningslogikken skal afkobles fra UI, hvilket giver mulighed for mere kontrol over UI -implementeringen på hver platform.
Sammenfattende, mens begge rammer understøtter udvikling på tværs af platform, fokuserer Xamarin.Forms på at dele UI-laget på tværs af platforme, mens MVVMCross understreger at dele forretningslogikken og giver mulighed for mere fleksible UI-implementeringsvalg. Valget mellem dem afhænger af projektets krav til UI -tilpasning, kompleksitet og kodningsdelingsstrategi.
Citater:[1] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx
[2] https://github.com/rogerwcpt/xamarin-mvvvm-frameworks
[3] https://www.mvvmcross.com/documentation/tutorials/tipcalc/a-xamarin-forms-version
[4] https://stackoverflow.com/questions/38450264/xamarin-forms-vs-xamarin-mvvmcross
)
[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-mvvmcross/
[10] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/