MVVMCROSS je všestranný a rozšíriteľný rámec MVVM určený pre rozvoj medzi platformami, najmä v rámci ekosystému .NET. Podporuje širokú škálu platforiem, vrátane Xamarin.ios, Xamarin.android, Xamarin.Forms, Universal Windows Platform (UWP) a Framework Windows (WPF) [1] [2] [4]. Jednou z kľúčových funkcií MVVMCross je jeho schopnosť integrovať sa s inými rámcami a knižnicami, čím sa zvýši jeho užitočnosť pri zložitom vývoji aplikácií.
Integrácia s inými rámcami
1. Integrácia CSLA.NET: MVVMCross sa môže použiť popri CSLA.NET, rámci obchodného objektu. Zatiaľ čo CSLA.NET sa zameriava na obchodnú logiku a modelovanie údajov, MVVMCross sa zaoberá logikou používateľského rozhrania a na úrovni aplikácií. Vývojári môžu využívať rámec obchodného objektu CSLA.NET zdedením od „ViewModelbase` CSLA a implementáciou požiadaviek MVVMCross. Táto integrácia umožňuje zdieľanie kódu naprieč platformami pri zachovaní jasného oddelenia obáv [5].
2. Reaktívna integrácia: Aj keď MVVMCross a ReactiveUi sú rámce MVVM, slúžia rôznym účelom. MVVMCross sa viac zameriava na natívne mobilné aplikácie a zdieľanie kódov, zatiaľ čo ReactiveUI zdôrazňuje reaktívne programovanie pomocou reaktívnych rozšírení (RX). Aj keď môžu koexistovať, zvyčajne sa používajú na rôzne aspekty vývoja aplikácií. MVVMCross poskytuje komplexný súbor funkcií pre vývoj používateľského rozhrania, zatiaľ čo ReactiveUI je ideálny pre aplikácie vyžadujúce pokročilé asynchrónne operácie [7].
3. Xamarin.Forms a ďalšie rámce používateľského rozhrania: MVVMCross podporuje integráciu s Xamarin.Forms, čo vývojárom umožňuje vytvárať aplikácie medzi platformami so zdieľanou obchodnou logikou. Funguje tiež s inými rámcami používateľského rozhrania, ako sú Maui a WPF, pričom pri výbere vrstvy používateľského rozhrania [3] [7].
4. Plugin Framework: MVVMCross obsahuje rámec doplnkov, ktorý vývojárom umožňuje rozšíriť svoju funkciu pridaním doplnkov tretích strán pre funkcie, ako je umiestnenie GPS, lokalizácia a väzbové rozšírenia. Táto rozšíriteľnosť umožňuje vývojárom prispôsobiť rámec podľa ich potrieb projektu [1] [2].
Kľúčové funkcie uľahčujúce integráciu
- Inverzia kontroly (IOC) a injekcia závislosti: MVVMCross poskytuje kontajner IOC, ktorý uľahčuje injekciu závislosti, čo uľahčuje integráciu s inými rámcami riadením závislostí a služieb v rámci aplikácie [1] [4].
- Prispôsobiteľný väzbový motor: Rámec umožňuje vývojárom vytvárať vlastné väzby pre ich názory, ktoré môžu byť užitočné pri integrácii s inými komponentmi alebo rámcami používateľského rozhrania, ktoré vyžadujú špecifické mechanizmy väzby na údaje [1] [2].
- ViewModel to ViewModel Navigation: Táto funkcia pomáha spravovať logiku navigácie, ktorá je možné integrovať s navigačnými vzormi iných rámcov, aby sa zabezpečila konzistentná užívateľská skúsenosť na rôznych platformách [1] [2].
Stručne povedané, MVVMCross je navrhnutý tak, aby bol vysoko integrovateľný s inými rámcami a knižnicami, čo vývojárom umožňuje využívať svoje silné stránky v architektúre MVVM a zároveň zahŕňa ďalšie funkcie z iných nástrojov. Jeho rozšírenie a podpora pre rôzne platformy z neho robia všestrannú voľbu pre vývoj aplikácií viacerých platforiem.
Citácie:[1] https://github.com/mvvmcross/mvvmcross
[2] https://dotnet.libhunt.com/mvvmcross-alternatíva
[3] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx
[4] https://www.mvvmcross.com/documentation/getting-started/getting-started
[5] https://stackoverflow.com/questions/17373587/how-well-would-mvvvmcross-and-csla-not-work-together-together-in-a-Multi-platform-stratégia
[6] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-verview
[7] https://www.reactiveui.net/vs/mvvmcross
[8] https://www.mvvmcross.com
[9] https://github.com/rogerwcpt/xamarin-mvvvm-frameworks