Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Wat zijn de belangrijkste verschillen tussen het gebruik van mvvmcross en xamarin.forms


Wat zijn de belangrijkste verschillen tussen het gebruik van mvvmcross en xamarin.forms


MVVMCross en Xamarin.Forms zijn twee verschillende technologieën die worden gebruikt in de ontwikkeling van cross-platform mobiele apps, die elk verschillende doeleinden dienen en unieke voordelen bieden.

Overzicht van Xamarin.Forms

Xamarin.Forms is een framework dat is ontwikkeld door Microsoft waarmee ontwikkelaars platformonafhankelijke toepassingen kunnen maken met behulp van een gedeelde C# Codebase en XAML voor de gebruikersinterface. Het stelt ontwikkelaars in staat om eenmaal te schrijven en op meerdere platforms te draaien, waaronder iOS, Android en UWP. Xamarin.Forms is ideaal voor projecten waarbij een consistente gebruikersinterface tussen platforms gewenst is, en het vereenvoudigt het ontwikkelingsproces door een uniforme API voor UI -componenten te bieden. Deze consistentie komt echter ten koste van flexibiliteit, omdat de gebruikersinterface beperkt is tot een subset van gemeenschappelijke elementen van elk platform, wat kan leiden tot beperkingen bij het bereiken van native look en feel of geavanceerde UI -aanpassing [4] [7].

Overzicht van MVVMCross

MVVMCross is een platformonafhankelijke MVVM (Model-View-ViewModel) framework dat Xamarin.ios, Xamarin.android, Xamarin.Forms en andere platforms ondersteunt. Het richt zich op het scheiden van de bedrijfslogica van de gebruikersinterface, waardoor ontwikkelaars een aanzienlijk deel van hun code op verschillende platforms kunnen delen. MVVMCross biedt functies zoals gegevensbinding, navigatie, inversie van controle en afhankelijkheidsinjectie, die de ontwikkeling van complexe toepassingen vergemakkelijken. In tegenstelling tot Xamarin.Forms handhaaft MVVMCross geen specifiek UI -framework; In plaats daarvan kunnen ontwikkelaars kiezen hoe ze de gebruikersinterface voor elk platform willen implementeren, waardoor meer flexibiliteit wordt geboden bij het bereiken van native UI -ervaringen [7] [10].

Belangrijkste verschillen

1. UI -implementatie:
- Xamarin.Forms: maakt gebruik van een gedeelde UI -laag op platforms, die de ontwikkeling vereenvoudigt maar de aanpassing en native look en feel kan beperken.
- MVVMCross: maakt native UI-implementatie mogelijk op elk platform of gedeelde UI met Xamarin.Forms, waardoor meer flexibiliteit wordt geboden bij het bereiken van platformspecifieke UI-ontwerpen.

2. Code delen:
- Beide frameworks maken codewisseling mogelijk, maar MVVMCross richt zich op het delen van de bedrijfslogica (ViewModels) en tegelijkertijd verschillende UI -implementaties toe te staan. Xamarin.Forms deelt zowel de gebruikersinterface als de bedrijfslogica.

3. Navigatie en gegevensbinding:
- MVVMCROSS biedt een robuust navigatiesysteem en gegevensbindende mogelijkheden die werken in verschillende UI -frameworks, waaronder Xamarin.Forms. Xamarin.Forms vertrouwt op zijn eigen navigatie- en gegevensbindende mechanismen.

4. Projectcomplexiteit:
- Voor complexe projecten die geavanceerde UI-aanpassing of platformspecifieke functies vereisen, kan MVVMCross meer geschikt zijn vanwege de flexibiliteit. Voor eenvoudigere projecten waar een consistente UI voldoende is, kunnen Xamarin.Forms eenvoudiger zijn om te implementeren.

5. Ontwikkelingsbenadering:
- Xamarin.Forms heeft vaak de voorkeur van ontwikkelaars die bekend zijn met XAML en .NET, omdat het een uniforme ontwikkelingservaring biedt. MVVMCross is gunstig voor projecten waarbij de bedrijfslogica van de gebruikersinterface moet worden ontkoppeld, waardoor meer controle over de UI -implementatie op elk platform mogelijk is.

Samenvattend, terwijl beide frameworks cross-platform ontwikkeling ondersteunen, richt Xamarin.Forms zich op het delen van de UI-laag op platforms, terwijl MVVMCross de nadruk legt op het delen van de bedrijfslogica en flexibelere UI-implementatiekeuzes mogelijk maken. De keuze tussen hen hangt af van de vereisten van het project met betrekking tot aanpassing, complexiteit en strategie voor het delen van codes.

Citaten:
[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
[5] https://lealware.com/creating-cross-platform-xamarin-applications-using-the-mvvmcross-framework/
[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-projecten-with-mvvmcross/