Trieda nastavenia v MVVMCross hrá rozhodujúcu úlohu ako bootstrapper pre rámec, zodpovednú za inicializáciu a konfiguráciu infraštruktúry aplikácie. Je povinným komponentom v každom projekte špecifickom pre platformu, ako sú iOS, Android alebo UWP, a slúži niekoľkým kľúčovým funkciám:
1. Inicializácia rámca: Trieda nastavenia inicializuje rámec MVVMCross nastavením základných komponentov, ako je inverzia riadiaceho kontajnera (IOC), nástroj viazania do dát, vyhľadávanie ViewModel/View, navigačný systém a doplnky. Tento proces sa vyskytuje v dvoch hlavných krokoch: „inicializePrimary`“ a `inicializeCondary`. Prvá inicializuje základné komponenty na hlavnom vlákne, zatiaľ čo druhé vytvára služby platformy na pozadí [1] [9].
2. Vytvorenie triedy aplikácií: Trieda nastavenia je zodpovedná za vytvorenie inštancie triedy „App“, ktorá je definovaná v hlavnom projekte. Trieda `App` inicializuje obchodnú logiku a ViewModels aplikácie [4] [10].
3. Registrácia služieb: Poskytuje miesto na registráciu služieb a doplnkov špecifických pre platformu pomocou kontajnera IOC. To umožňuje vývojárom vložiť do svojej aplikácie závislosti, čo uľahčuje správu zložitej logiky na rôznych platformách [4] [10].
4. Prispôsobenie: Trieda nastavenia ponúka príležitosti na prispôsobenie metódami ako „inicializeFirstchance“ a `inicializelastChance`. Tieto metódy umožňujú vývojárom registrovať obchodné objekty alebo služby špecifické pre platformu, napríklad šifrovacie služby, skôr ako sa aplikácia plne inicializuje [10].
5. Ladenie a protokolovanie: Zúčastňuje sa aj na vytvorení mechanizmov ladenia a protokolovania, ako je vytvorenie inštancie „Debugtrace“, ktorá pomáha pri diagnostikovaní problémov počas vývoja [7].
Stručne povedané, trieda nastavenia je nevyhnutná pre bootstrapping Aplikácie MVVMCross, čím sa zabezpečí, že všetky potrebné komponenty sú správne inicializované a nakonfigurované pred spustením aplikácie. Pôsobí ako most medzi projektom UI špecifický pre platformu a hlavnou logikou definovanou v knižnici prenosnej knižnice triedy (PCL) alebo .NET Standard Library.
Citácie:[1] https://www.mvvmcross.com/documentation/tutorials/tipcalc/a-xamarinios-ui-project
[2] https://stackoverflow.com/questions/34329985/
[3] https://coderpad.io/blog/development/aguide-datatabase-unit-testing-with-pytest-and-sqlalchemy/
[4] https://leaware.com/creating-cross-platform-xamarin-applications-using-the-mvvvmcross-framework/
Https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvvm-apps-with-xamarin-mith-xamarin-mith-mith-with-xamarin-mith-mith-xamarin-and-mcross
[6] https://stackoverflow.com/questions/17602137/MVVMcross-how-does-his-view-get-get-t-the-the-viewModel/17602246
[7] https://www.codeproject.com/articles/863695/introduction-to-mvvmcross-platform
[8] https://nicksnettravels.builttoroam.com/post-2017-12-28-making-mvvvmcross-with-xamarin-forms-friction-friction-aspx/
[9] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-verview
[10] https://www.mvvmcross.com/documentation/advanced/custoughing-using-app-and-setup
[11] https://stackoverflow.com/questions/48132099/how-is-setup-class-instanted-in-mvvvvmcross-in-xamarin