Razred nastavitve v MVVMcross ima ključno vlogo kot zagon za okvir, ki je odgovoren za inicializacijo in konfiguriranje infrastrukture aplikacije. To je obvezna komponenta v vsakem projektu, specifičnem za platformo, kot so iOS, Android ali UWP, in služi več ključnimi funkcijami:
1. Okvirna inicializacija: Nastavitveni razred inicializira okvir MVVMCross, tako da nastavite bistvene komponente, kot so vsebnik inverzije krmiljenja (IOC), motor, ki veže podatke, iskanje pogledov/pogled, navigacijski sistem in vtičniki. Ta postopek se pojavi v dveh glavnih korakih: `Inicializeprimary` in` inicializeCondary`. Prva inicializira jedrne komponente na glavni niti, medtem ko slednja konstruira platformo v ozadju [1] [9].
2. Ustvarjanje razreda aplikacij: Razred nastavitve je odgovoren za ustvarjanje primera razreda `App`, ki je opredeljen v osnovnem projektu. Razred `App` inicializira poslovno logiko in ViewModels v aplikaciji [4] [10].
3. Registracija storitev: ponuja prostor za registracijo storitev in vtičnikov, specifičnih za platformo, s pomočjo vsebnika MOK. To razvijalcem omogoča, da v svojo aplikacijo vnesejo odvisnosti, kar olajša upravljanje kompleksne logike na različnih platformah [4] [10].
4. Prilagoditev: Razred nastavitve ponuja priložnosti za prilagajanje z metodami, kot sta `inicializefirstchance` in` inicializelastchance`. Te metode omogočajo razvijalcem, da registrirajo poslovne predmete ali storitve, specifične za platformo, kot so šifrirne storitve, preden se aplikacija v celoti inicializira [10].
5. Odpravljanje napak in beleženje: Vključen je tudi pri nastavitvi mehanizmov za odpravljanje napak in beleženja, kot je ustvarjanje primerka `Debugtrace`, ki pomaga pri diagnosticiranju vprašanj med razvojem [7].
Če povzamemo, je nastavitveni razred ključnega pomena za zagonske aplikacije MVVMcross, s čimer zagotavlja, da se vse potrebne komponente pravilno inicializirajo in konfigurirajo, preden se aplikacija zažene. Deluje kot most med projektom uporabniškega vmesnika, specifičnega za platformo, in osnovno logiko, opredeljeno v knjižnici prenosnih razredov (PCL) ali .NET Standard Library.
Navedbe:[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-tatabase-unit-testing-with-pytest-and-sqlalchemy/
[4] https://leaware.com/creating-cross-platform-xamarin-applications-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-link-to-the-viewModel/17602246
[7] https://www.codeproject.com/articles/863695/introduction-to-mvvmcross-platform
[8] https://nicksNettravels.builttoroam.com/post-2017-12-28------making-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-and-setup
[11] https://stackoverflow.com/questions/48132099/how-is-setup-class-instantiated-in-mvvmcross-in-xamarin