Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Vilka är de viktigaste skillnaderna mellan att använda MVVMCross med Xamarin.Forms och Xamarin Native


Vilka är de viktigaste skillnaderna mellan att använda MVVMCross med Xamarin.Forms och Xamarin Native


Vid jämförelse av användningen av MVVMCross med Xamarin.Forms och Xamarin Native, uppstår flera viktiga skillnader, främst när det gäller UI -flexibilitet, koddelning och utvecklingsmetod.

UI flexibilitet och kontroll

- Xamarin.Forms: Detta ramverk tillhandahåller ett delat UI -lager över plattformar, vilket förenklar utvecklingen genom att låta dig skriva UI -kod en gång och distribuera den på flera plattformar. Detta delade UI kan emellertid begränsa anpassningen till plattformsspecifika funktioner, vilket kräver anpassade renderare för mer avancerade UI-element [7] [9]. MVVMCross kan användas med Xamarin.Forms för att hantera affärslogik och navigering, men UI förblir standardiserad över plattformar [1] [10].

- Xamarin Native: När du använder Xamarin -infödda med MVVMCross har du fullständig kontroll över användargränssnittet för varje plattform. Detta möjliggör plattformsspecifika UI-implementeringar, vilket maximerar det ursprungliga utseendet och känslan för varje plattform. Även om detta tillvägagångssätt kräver mer ansträngning för att utveckla separata UI -lager för iOS och Android, erbjuder den större flexibilitet och anpassning [7] [9].

Koddelning och återanvändning

- Xamarin.Forms: Med Xamarin.Forms kan du inte bara dela affärslogiken (via MVVMCross) utan också UI -koden över plattformar. Detta förenklar utvecklingen och minskar mängden kod du behöver underhålla. UI är emellertid begränsad till en vanlig uppsättning element som fungerar på alla plattformar [4] [10].

- Xamarin Native: I en infödd Xamarin -installation med MVVMCross kan du dela affärslogiken (ViewModels) över plattformar, men du måste implementera användargränssnittet separat för varje plattform. Detta tillvägagångssätt möjliggör mer återanvändning av kod i presentationslagret och UI-logiken när du använder MVVMCross, men kräver fortfarande plattformsspecifik UI-utveckling [9].

Utvecklingsstrategi

- Xamarin.Forms: Utveckling med Xamarin.Forms och MVVMCross föredras ofta av utvecklare utan omfattande mobilupplevelse, eftersom det förenklar UI-utvecklingen av plattformar. Ramverket hanterar mycket av den underliggande komplexiteten, vilket gör att utvecklare kan fokusera på delad logik och UI [4] [10].

-Xamarin Native: Native Xamarin Development with MVVMCross gynnas vanligtvis av utvecklare som vill ha finkornig kontroll över användargränssnittet och är bekväma med plattformsspecifik utveckling. Detta tillvägagångssätt kräver mer expertis inom infödda iOS och Android -utveckling men erbjuder större flexibilitet i UI -design och implementering [7] [9].

navigering och bindning

- Xamarin.Forms med MVVMCross: Navigation i Xamarin.Forms med MVVMCross hanteras på ViewModel -nivån, vilket möjliggör en ren separering av problem. MVVMCross tillhandahåller förbättrade bindningsfunktioner, såsom fallbackvärden, även om det saknar vissa funktioner som källegenskapen som finns i standard Xamarin.Forms bindningar [2] [10].

- Xamarin infödd med MVVMCross: I infödda Xamarin -projekt hanterar MVVMCross navigering och visning/viewmodellparning, vilket möjliggör en konsekvent MVVM -arkitektur över plattformar. Denna installation gör det möjligt för utvecklare att utnyttja plattformsspecifika navigationsmönster samtidigt som ett delat affärslogiklager bibehålls [3] [9].

Sammanfattningsvis, medan båda tillvägagångssätten kan utnyttja MVVMCross för MVVM-arkitektur, erbjuder Xamarin.Forms ett delat UI-lager med mindre kontroll över plattformsspecifika UI-funktioner, medan Xamarin Native ger full kontroll över UI-anpassning men kräver mer utvecklingsinsatser för separata UI-implementeringar.

Citeringar:
[1] https://www.mvvmcross.com/documentation/platform/xamarin.forms/xamarin-forms
[2] https://www.xamarinhelp.com/use-xamarin-forms-mvvm-framework/
[3] https://canbilgin.wordpress.com/tag/mvvmcross/
[4] https://www.mvvmcross.com/documentation/geting-started/geting-started
[5] https://www.reddit.com/r/androiddev/comments/6cseds/what_are_the_disadvantages_of_xamarin_for_android/
[6] https://canbilgin.wordpress.com/2017/03/26/xamarin-forms-application-with-mvvmcross/
[7] https://stackoverflow.com/questions/38450264/xamarin-forms-vs-xamarin-mvvmcross
]
[9] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/
[10] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx