„MVVMCross“ sąrankos klasė vaidina lemiamą sistemos įkrovos vaidmenį, atsakingą už programos infrastruktūros inicijavimą ir konfigūravimą. Tai yra privalomas kiekvieno platformos specifinio projekto, tokio kaip „iOS“, „Android“ ar UWP, komponentas, ir jis teikia keletą pagrindinių funkcijų:
1. Framework inicijavimas: Sąrankos klasė inicijuoja MVVMCross Framework, nustatydami esminius komponentus, tokius kaip valdymo (IOC) konteinerio inversija, duomenų surišimo variklis, „ViewModel“/„View“ paieškos, navigacijos sistema ir papildiniai. Šis procesas vyksta dviem pagrindiniais etapais: „InicializePrimary“ ir „Inicijuojama, kad“. Pirmieji inicijuoja pagrindinius pagrindinio gijos komponentus, o antrosios - fone sukonstruoja platformos paslaugas [1] [9].
2. App Class Creation: Sąrankos klasė yra atsakinga už „programos“ klasės egzemplioriaus, kuris yra apibrėžtas pagrindiniame projekte, sukūrimą. „App“ klasė inicijuoja programos verslo logiką ir „ViewModels“ [4] [10].
3. Paslaugų registracija: Tai yra vieta, kur galima registruoti konkrečias platformos paslaugas ir papildinius, naudojant IOC konteinerį. Tai leidžia kūrėjams į savo programą įšvirkšti priklausomybes, todėl lengviau valdyti sudėtingą logiką skirtingose platformose [4] [10].
4. Tinkinimas: Sąrankos klasė siūlo galimybes pritaikyti naudojant tokius metodus kaip „InitializeFirstChance“ ir „Inicializelastchance“. Šie metodai leidžia kūrėjams registruoti konkrečias platformos verslo objektus ar paslaugas, tokias kaip šifravimo paslaugos, prieš pradedant programą visiškai inicijuoti [10].
5. Derinimas ir registravimas: jis taip pat susijęs su derinimo ir registravimo mechanizmų nustatymu, pavyzdžiui, sukuriant „Debugtrace“ egzempliorių, kuris padeda diagnozuoti problemas plėtros metu [7].
Apibendrinant galima pasakyti, kad sąrankos klasė yra būtina norint įkrauti MVVMCross programas, užtikrinant, kad visi būtini komponentai būtų tinkamai inicijuoti ir sukonfigūruoti prieš pradedant programą. Jis veikia kaip tiltas tarp konkrečios platformos UI projekto ir pagrindinės logikos, apibrėžtos nešiojamojoje klasės bibliotekoje (PCL) arba .NET standartinėje bibliotekoje.
Citatos:[1] https://www.mvvmcross.com/documentation/tutorials/TIPCalc/a-xamarinios-ui-Project
[2] https://stackoverflow.com/questions/34329985/
[3] https://coderpad.io/blog/development/a-guide-to-database-unit-testting-with-pytest-and-sqlalchemy/
[4] https://leaware.com/creating-cross-platform-xamarin-application-using-the-mvvmcross-framework/
[5] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/August/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[6] https://stackoverflow.com/questions/17602137/mvvmcross-how-does-this-view-get-linkme--the-viewmodel/17602246
[7] https://www.codeproject.com/articles/863695/introduction-to-mvvmcross-platform
[8] https://nicksnettravels.builttoroam.com/post-2017-12-28-ming-mvvmcross-with-xamarin-forms-friction-free-aspx/
[9] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[10] https://www.mvvmcross.com/documentation/advanced/customizing-using-app ir-setup
[11] https://stackoverflow.com/questions/48132099/how-is-setup-class-instantation-in-mvvmcross-in-xamarin