Mvvmcross und xamarin.formen sind zwei unterschiedliche Technologien, die in der plattformübergreifenden mobilen App-Entwicklung verwendet werden, die jeweils unterschiedliche Zwecke bedienen und einzigartige Vorteile bieten.
Übersicht über Xamarin.formen
Xamarin.Forms ist ein von Microsoft entwickeltes Framework, mit dem Entwickler plattformübergreifende Anwendungen unter Verwendung einer gemeinsam genutzten C# -Codebasis und XAML für die Benutzeroberfläche erstellen können. Es ermöglicht den Entwicklern, einmal zu schreiben und auf mehreren Plattformen zu laufen, einschließlich iOS, Android und UWP. Xamarin.Forms ist ideal für Projekte, bei denen eine konsistente Benutzeroberfläche über Plattformen hinweg gewünscht wird, und vereinfacht den Entwicklungsprozess durch eine einheitliche API für UI -Komponenten. Diese Konsistenz basiert jedoch auf Kosten der Flexibilität, da die Benutzeroberfläche auf eine Teilmenge gemeinsamer Elemente aus jeder Plattform beschränkt ist, was zu Einschränkungen bei der Erreichung des nativen Erscheinungsbilds oder der Anpassung der Benutzeroberfläche führen kann [4] [7].
Übersicht über mvvmcross
MVVMCROSS ist ein plattformübergreifendes MVVM-Framework (Modell-View-ViewModel), das Xamarin.IOS, Xamarin.android, Xamarin.Forms und andere Plattformen unterstützt. Es konzentriert sich auf die Trennung der Geschäftslogik von der Benutzeroberfläche und ermöglicht es Entwicklern, einen erheblichen Teil ihres Codes über verschiedene Plattformen hinweg zu teilen. MVVMCross bietet Funktionen wie Datenbindung, Navigation, Kontrollinversion und Abhängigkeitsinjektion, die die Entwicklung komplexer Anwendungen erleichtern. Im Gegensatz zu Xamarin.Forms erzwingt MVVMCross keinen bestimmten UI -Framework. Stattdessen können Entwickler auswählen, wie sie die Benutzeroberfläche für jede Plattform implementieren möchten, und bietet mehr Flexibilität bei der Erreichung nativer UI -Erfahrungen [7] [10].
Schlüsselunterschiede
1. UI -Implementierung:
.
.
2. Code Sharing:
- Beide Frameworks ermöglichen die Codefreigabe, aber MVVMCROSS konzentriert sich auf die Freigabe der Geschäftslogik (ViewModels) und ermöglicht unterschiedliche UI -Implementierungen. Xamarin.Forms teilt sowohl die Benutzeroberfläche als auch die Geschäftslogik.
3. Navigation und Datenbindung:
- MVVMCross bietet ein robustes Navigationssystem und Datenbindungsfunktionen, die in verschiedenen UI -Frameworks, einschließlich Xamarin.formen, funktionieren. Xamarin.Forms stützt sich auf seine eigenen Navigations- und Datenbindungsmechanismen.
4. Projektkomplexität:
- Für komplexe Projekte, die eine fortschrittliche UI-Anpassung oder plattformspezifische Funktionen erfordern, ist MVVMCross aufgrund seiner Flexibilität möglicherweise besser geeignet. Für einfachere Projekte, bei denen eine konsistente Benutzeroberfläche ausreicht, können Xamarin.formen einfacher implementieren.
5. Entwicklungsansatz:
- Xamarin.Forms wird häufig von Entwicklern bevorzugt, die mit XAML und .NET vertraut sind, da es eine einheitliche Entwicklungserfahrung bietet. MVVMCross ist für Projekte von Vorteil, bei denen die Geschäftslogik von der Benutzeroberfläche entkoppelt werden muss, sodass die UI -Implementierung auf jeder Plattform mehr Kontrolle ermöglicht.
Zusammenfassend, während beide Frameworks die plattformübergreifende Entwicklung unterstützen, konzentriert sich Xamarin.Forms darauf, die UI-Schicht über Plattformen hinweg zu teilen, während MVVMCROSS das Teilen der Geschäftslogik betont und flexiblere UI-Implementierungsentscheidungen ermöglicht. Die Wahl zwischen ihnen hängt von den Anforderungen des Projekts hinsichtlich der Anpassung der Benutzeroberfläche, der Komplexität und der Code -Sharing -Strategie ab.
Zitate:[1] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx
[2] https://github.com/rogerwcpt/xamarin-mvvm-frameworks
[3] https://www.mvmcross.com/documentation/tutorials/tipcalc/a-xamarin-forms-version
[4] https://stackoverflow.com/questions/38450264/xamarin-forms-vs-xamarin-mvmcross
[5] https://leaware.com/creating-cross-platform-xamarin-applications-using-the-mvmcross-framework/
[6] https://canbilgin.wordpress.com/tag/mvmcross/
[7] https://www.mvmcross.com/documentation/getting-started/getting-started
[8] https://www.reddit.com/r/csharp/comments/a9mph1/mvc_or_mvm_for_xamarin/
[9] https://canbilgin.wordpress.com/2017/03/26/xamarin-forms-anapplication-with-mvmcross/
[10] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvmcross/