MVVMCross is een veelzijdig platformonafhankelijke MVVM-framework dat verschillende .NET-platforms ondersteunt, waaronder Xamarin.ios, Xamarin.android, Xamarin.mac, Xamarin.Forms, Universal Windows Platform (UWP) en Windows Presentation Framework (WPF) [1]. Het biedt functies zoals MVVM-architectuur, navigatie, gegevensbinding, platformspecifieke ondersteuning en afhankelijkheidsinjectie [1]. Gezien de flexibiliteit en compatibiliteit met meerdere platforms, kan MVVMCross worden gebruikt naast andere .NET -frameworks zoals csla.net.
MVVMCROSS gebruiken met csla.net
CSLA.NET is een zakelijk objectkader dat kan worden gebruikt om bedrijfslogica en gegevenstoegang te beheren. Het ondersteunt meerdere platforms en kan worden geïntegreerd met MVVM -frameworks om de voordelen van beide architecturen te benutten. Bij het combineren van CSLA.NET met MVVMCross, kunnen ontwikkelaars CSLA.NET gebruiken voor bedrijfslogica en gegevensbeheer, terwijl MVVMCross wordt gebruikt voor UI-gerelateerde taken en compatibiliteit met platformonafhankelijke.
Integratiebenadering:
1. Bedrijfslogica met CSLA.NET: gebruik CSLA.NET om bedrijfsobjecten te definiëren en gegevenstoegang te beheren. CSLA.NET biedt functies zoals gegevensvalidatie, bedrijfsregels en data -persistentie, die essentieel zijn voor robuuste bedrijfslogica.
2. UI en platformonafhankelijke ondersteuning met MVVMCross: implementeer MVVMCross voor de UI-laag, gebruik van de MVVM-architectuur, gegevensbinding en cross-platformondersteuning. Hiermee kunt u een consistente gebruikersinterface maken op verschillende platforms.
3. ViewModel -integratie: om CSLA.NET te integreren met MVVMCross, kunt u erven van CSLA.net's `ViewModelBase` (niet` ViewModel`) en de vereisten van MVVMCross in dezelfde klasse implementeren. Met deze aanpak kunt u de sterke punten van beide frameworks combineren met behoud van een schone architectuur [2].
Uitdagingen en overwegingen:
- Portable Class Libraries (PCL's): CSLA.NET Business Objects zijn mogelijk niet compatibel met PCLS vanwege hun complexiteit, waarvoor projectkoppeling nodig is in plaats van PCL's direct te gebruiken [2].
- Platformbeperkingen: let op platformspecifieke beperkingen, zoals reflectiebeperkingen in bepaalde omgevingen zoals Silverlight of WP8 [2].
Samenvattend kan MVVMCross effectief worden gebruikt met CSLA.NET door gebruik te maken van CSLA.NET voor bedrijfslogica en MVVMCross voor ondersteuning voor UI en platformoverschrijdende ondersteuning. Met deze combinatie kunnen ontwikkelaars robuuste, onderhoudbare applicaties op meerdere platforms maken.
Citaten:[1] https://www.mvvmcross.com/documentation/getting-started/getting-started
[2] https://stackoverflow.com/questions/17373587/how-well-would-mvvmcross-and-csla-net-work-together-in-a-multi-platform-strategie
[3] https://stackoverflow.com/questions/75320482/can-not-stall-mvvmcross-9-0-9-net6-creating-a-new-android-in-vs202222
[4] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[5] https://stackoverflow.com/questions/49688230/mvvmcross-core-platform-5-7-0-was-gerestored-utramework-version-v4-6-1
[6] https://github.com/mvvmcross/mvvmcross
[7] https://www.mvvmcross.com
[8] https://cslanet.com/old-forum/8575.html