„MVVMCross“ yra galinga įvairių platformų MVVM sistema, kuri pagerina „Xamarin“ vietinius projektus, įgalinant dalytis pateikimo sluoksniais ir UI logika įvairiose platformose. Čia yra keletas įprastų MVVMCross naudojimo atvejų „Xamarin“ vietiniuose projektuose:
1. Kryžminio platformos kodo pakartotinis naudojimas **
„MVVMCross“ leidžia kūrėjams maksimaliai padidinti kodo pakartotinį naudojimą, pateikiant „ViewModels“ ir „Business Logic“ nešiojamoje klasės bibliotekoje (PCL). Šį PCL gali būti nurodytas keliuose konkrečiai platformos projektams, tokiems kaip „Xamarin.android“ ir „Xamarin.ios“, užtikrinant, kad pagrindinė logika išliks pastovi, o vartotojo sąsaja gali būti pritaikyta kiekvienai platformai [1] [2].2. MVVM modelio įgyvendinimas **
„MVVMCross“ palengvina modelio-View-Viewmodel modelio (MVVM) modelio įgyvendinimą, kuris yra naudingas norint išlaikyti aiškų UI ir verslo logikos susirūpinimą. Šis modelis padeda sukurti laisvai sujungtas programas, todėl jas lengviau išbandyti ir išlaikyti [3] [5].3. Duomenų įrišimas ir navigacija **
„MVVMCross“ pateikia patikimas duomenų įrišimo galimybes, leidžiančias vaizdams sklandžiai prisijungti prie „ViewModels“. Ši funkcija palaiko įvairius įrišimo režimus ir keitiklius, padidindama programos vartotojo sąsajos lankstumą. Be to, „MVVMCross“ apima navigacijos sistemą, kuri supaprastina judėjimą tarp skirtingų programos rodinių [2] [5].4. Priklausomybės injekcija ir papildiniai **
„MVVMCross“ siūlo priklausomybės injekcijos (DI) konteinerį, leidžiantį kūrėjams registruotis ir išspręsti PCL platformai skirtas paslaugas. Ši funkcija yra labai svarbi norint integruoti konkrečias platformai skirtas funkcijas, nekontroliuojant kodo. Be to, „MVVMCross“ palaiko daugybę papildinių, skirtų bendroms funkcijoms, tokioms kaip duomenų bazės operacijos, tinklo ryšys ir dar daugiau, kuriuos galima lengvai integruoti į projektus per „NuGet“ paketus [1] [3].5. Konkrečios platformos vartotojo sąsajos pritaikymas **
Nors „Xamarin.Forms“ riboja vartotojo sąsajos pritaikymą visose platformose, „MVVMCross“ su „Xamarin Native“ leidžia kūrėjams kurti konkrečią platformos UIS. Tai ypač naudinga, kai programa reikalauja išvaizdos ir jaustis kiekvienoje platformoje. „MVVMCross“ užtikrina, kad nepaisant skirtingų UI įgyvendinimų, pagrindinė verslo logika išlieka dalijamasi ir nuosekli [1] [4].6. Vieneto bandymų ir plėtros efektyvumas **
Atskirdama verslo logiką į PCL, „MVVMCross“ leidžia lengviau rašyti vienetų testus, skirtus programos pagrindinei logikai. Šis atskyrimas taip pat pagreitina plėtrą, nes verslo logikos pakeitimams nereikia modifikuoti konkrečios platformos UI kodui [5].Apibendrinant galima pasakyti, kad „MVVMCross“ yra universalus „Xamarin“ vietinių projektų įrankis, siūlantis struktūrizuotą požiūrį į įvairių platformų plėtrą, išlaikant lankstumą kiekvienai platformai pritaikyti UIS. Jo funkcijos, tokios kaip „MVVM“ modelio palaikymas, duomenų įrišimas, priklausomybės injekcija ir plati papildinių ekosistema, yra idealus pasirinkimas sudėtingoms, įvairios platformos programoms.
Citatos:[1] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/
[2] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[3] https://dev.to/christian1006/creating-cross-platform-xamarin-application-sing-the-mvvmcross-framework-2920
[4] https://canbilgin.wordpress.com/tag/mvvmcross/
[5] https://www.mvvmcross.com/documentation/getting-started/getting-started
[6] https://www.mvvmcross.com/documentation/tutorials/TIPCalc/a-xamarin-forms-version
[7] https://stackoverflow.com/questions/32220007/what-does-mvvmcross-do-that-xamarin-doesnt-already
[8] https://stackoverflow.com/questions/38450264/xamarin-forms-vs-xamarin-mvvmcross